mirror of
https://github.com/ansible/awx.git
synced 2026-01-28 00:51:27 -03:30
113 lines
2.4 KiB
JavaScript
113 lines
2.4 KiB
JavaScript
const ENCRYPTED_VALUE = '$encrypted$';
|
|
|
|
let Base;
|
|
let Project;
|
|
let JobTemplate;
|
|
let Inventory;
|
|
let InventorySource;
|
|
|
|
function createFormSchema (method, config) {
|
|
if (!config) {
|
|
config = method;
|
|
method = 'GET';
|
|
}
|
|
|
|
const schema = Object.assign({}, this.options(`actions.${method.toUpperCase()}`));
|
|
|
|
if (config && config.omit) {
|
|
config.omit.forEach(key => delete schema[key]);
|
|
}
|
|
|
|
Object.keys(schema).forEach(key => {
|
|
schema[key].id = key;
|
|
|
|
if (this.has(key)) {
|
|
schema[key]._value = this.get(key);
|
|
}
|
|
});
|
|
|
|
return schema;
|
|
}
|
|
|
|
function assignInputGroupValues (inputs) {
|
|
if (!inputs) {
|
|
return [];
|
|
}
|
|
|
|
return inputs.map(input => {
|
|
const value = this.get(`inputs.${input.id}`);
|
|
|
|
input._value = value;
|
|
input._encrypted = value === ENCRYPTED_VALUE;
|
|
|
|
return input;
|
|
});
|
|
}
|
|
|
|
function setDependentResources (id) {
|
|
this.dependentResources = [
|
|
{
|
|
model: new Project(),
|
|
params: {
|
|
credential: id
|
|
}
|
|
},
|
|
{
|
|
model: new JobTemplate(),
|
|
params: {
|
|
credential: id,
|
|
ask_credential_on_launch: false
|
|
}
|
|
},
|
|
{
|
|
model: new Inventory(),
|
|
params: {
|
|
insights_credential: id
|
|
}
|
|
},
|
|
{
|
|
model: new InventorySource(),
|
|
params: {
|
|
credential: id
|
|
}
|
|
}
|
|
];
|
|
}
|
|
|
|
function CredentialModel (method, resource, config) {
|
|
Base.call(this, 'credentials');
|
|
|
|
this.Constructor = CredentialModel;
|
|
this.createFormSchema = createFormSchema.bind(this);
|
|
this.assignInputGroupValues = assignInputGroupValues.bind(this);
|
|
this.setDependentResources = setDependentResources.bind(this);
|
|
|
|
return this.create(method, resource, config);
|
|
}
|
|
|
|
function CredentialModelLoader (
|
|
BaseModel,
|
|
ProjectModel,
|
|
JobTemplateModel,
|
|
InventoryModel,
|
|
InventorySourceModel
|
|
) {
|
|
Base = BaseModel;
|
|
Project = ProjectModel;
|
|
JobTemplate = JobTemplateModel;
|
|
Inventory = InventoryModel;
|
|
InventorySource = InventorySourceModel;
|
|
|
|
return CredentialModel;
|
|
}
|
|
|
|
CredentialModelLoader.$inject = [
|
|
'BaseModel',
|
|
'ProjectModel',
|
|
'JobTemplateModel',
|
|
'InventoryModel',
|
|
'InventorySourceModel'
|
|
];
|
|
|
|
export default CredentialModelLoader;
|