Skip to content

Commit

Permalink
Fixed some issues introduced with retirement remove resources option
Browse files Browse the repository at this point in the history
- Also replaced .find calls with .find_by.
- Fixed broken spec tests with recent changes.

https://www.pivotaltracker.com/story/show/141238703
  • Loading branch information
h-kataria committed Mar 16, 2017
1 parent 78af57d commit 25f8cda
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 41 deletions.
Expand Up @@ -99,23 +99,28 @@ ManageIQ.angular.app.controller('catalogItemFormController', ['$scope', 'catalog
vm.catalogItemModel.provisioning_dialog_name = configData.provision.new_dialog_name;
vm.catalogItemModel.provisioning_key = '';
vm.catalogItemModel.provisioning_value = '';
vm.catalogItemModel.provisioning_variables = configData.provision.extra_vars;
setExtraVars('provisioning_variables', configData.provision.extra_vars);

if (typeof configData.retirement !== 'undefined') {
vm.catalogItemModel.retirement_remove_resources = configData.retirement.remove_resources;
vm.catalogItemModel.retirement_remove_resources = configData.retirement.remove_resources;
if (typeof configData.retirement.repository_id !== 'undefined') {
vm.catalogItemModel.retirement_repository_id = configData.retirement.repository_id;
vm.catalogItemModel.retirement_playbook_id = configData.retirement.playbook_id;
vm.catalogItemModel.retirement_machine_credential_id = configData.retirement.credential_id;
vm.catalogItemModel.retirement_network_credential_id = configData.retirement.network_credential_id;
vm.catalogItemModel.retirement_cloud_credential_id = configData.retirement.cloud_credential_id;
vm.catalogItemModel.retirement_inventory = configData.retirement.hosts;
vm.catalogItemModel.retirement_dialog_existing = configData.retirement.dialog_id ? "existing" : "create";
vm.catalogItemModel.retirement_dialog_id = configData.retirement.dialog_id;
vm.catalogItemModel.retirement_dialog_name = configData.retirement.new_dialog_name;
vm.catalogItemModel.retirement_key = '';
vm.catalogItemModel.retirement_value = '';
vm.catalogItemModel.retirement_variables = configData.retirement.extra_vars;
}
vm.catalogItemModel.retirement_network_credential_id = configData.retirement.network_credential_id;
vm.catalogItemModel.retirement_cloud_credential_id = configData.retirement.cloud_credential_id;
vm.catalogItemModel.retirement_inventory = configData.retirement.hosts;
vm.catalogItemModel.retirement_key = '';
vm.catalogItemModel.retirement_value = '';
setExtraVars('retirement_variables', configData.retirement.extra_vars);
};

var setExtraVars = function(variableName, extraVars) {
if (typeof extraVars !== 'undefined')
vm.catalogItemModel[variableName] = extraVars;
}

var redirectUrl = '/catalog/explorer/' + catalogItemFormId;
Expand Down Expand Up @@ -189,27 +194,25 @@ ManageIQ.angular.app.controller('catalogItemFormController', ['$scope', 'catalog
remove_resources: configData.retirement_remove_resources
}

var retirement = catalog_item['config_info']['retirement'];
retirement['hosts'] = configData.retirement_inventory;
retirement['extra_vars'] = configData.retirement_variables;
if (angular.isDefined(vm.catalogItemModel.retirement_repository_id) && configData.retirement_repository_id !== '') {
var retirement = catalog_item['config_info']['retirement'];

retirement['repository_id'] = configData.retirement_repository_id;
retirement['playbook_id'] = configData.retirement_playbook_id;
retirement['playbook_id'] = configData.retirement_playbook_id;
retirement['credential_id'] = configData.retirement_machine_credential_id;
retirement['hosts'] = configData.retirement_inventory;
retirement['dialog_id'] = configData.retirement_dialog_id;
retirement['extra_vars'] = configData.retirement_variables;

if (configData.retirement_network_credential_id !== '')
catalog_item['config_info']['retirement']['network_credential_id'] = configData.retirement_network_credential_id;
retirement['dialog_id'] = configData.retirement_dialog_id;
}
if (configData.retirement_network_credential_id !== '')
catalog_item['config_info']['retirement']['network_credential_id'] = configData.retirement_network_credential_id;

if (configData.retirement_cloud_credential_id !== '')
catalog_item['config_info']['retirement']['cloud_credential_id'] = configData.retirement_cloud_credential_id;
if (configData.retirement_cloud_credential_id !== '')
catalog_item['config_info']['retirement']['cloud_credential_id'] = configData.retirement_cloud_credential_id;

if (configData.retirement_dialog_id !== '') {
catalog_item['config_info']['retirement']['dialog_id'] = configData.retirement_dialog_id;
} else if (configData.retirement_dialog_name !== '')
catalog_item['config_info']['retirement']['new_dialog_name'] = configData.retirement_dialog_name;
}
if (configData.retirement_dialog_id !== '') {
catalog_item['config_info']['retirement']['dialog_id'] = configData.retirement_dialog_id;
} else if (configData.retirement_dialog_name !== '')
catalog_item['config_info']['retirement']['new_dialog_name'] = configData.retirement_dialog_name;

return catalog_item;
}
Expand Down
39 changes: 23 additions & 16 deletions app/controllers/catalog_controller.rb
Expand Up @@ -1778,26 +1778,33 @@ def fetch_playbook_details
playbook_details = {}
provision = @record.config_info[:provision]
playbook_details[:provisioning] = {}
playbook_details[:provisioning][:repository] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::ConfigurationScriptSource.find(provision[:repository_id]).name
playbook_details[:provisioning][:playbook] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::Playbook.find(provision[:playbook_id]).name
playbook_details[:provisioning][:machine_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::MachineCredential.find(provision[:credential_id]).name
playbook_details[:provisioning][:network_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::NetworkCredential.find(provision[:network_credential_id]).name if provision[:network_credential_id]
playbook_details[:provisioning][:cloud_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::CloudCredential.find(provision[:cloud_credential_id]).name if provision[:cloud_credential_id]
dialog = provision[:dialog_id] ? Dialog.find(provision[:dialog_id]) : Dialog.find_by(:name => provision[:dialog_name])
playbook_details[:provisioning][:dialog] = dialog.name
playbook_details[:provisioning][:dialog_id] = dialog.id
playbook_details[:provisioning][:repository] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::ConfigurationScriptSource.find_by(:id => provision[:repository_id]).name
playbook_details[:provisioning][:playbook] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::Playbook.find_by(:id => provision[:playbook_id]).name
playbook_details[:provisioning][:machine_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::MachineCredential.find_by(:id => provision[:credential_id]).name
playbook_details[:provisioning][:network_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::NetworkCredential.find_by(:id => provision[:network_credential_id]).name if provision[:network_credential_id]
playbook_details[:provisioning][:cloud_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::CloudCredential.find_by(:id => provision[:cloud_credential_id]).name if provision[:cloud_credential_id]
dialog = provision[:dialog_id] ? Dialog.find_by(:id => provision[:dialog_id]) : Dialog.find_by(:name => provision[:dialog_name])
if dialog
playbook_details[:provisioning][:dialog] = dialog.name
playbook_details[:provisioning][:dialog_id] = dialog.id
end

if @record.config_info[:retirement]
retirement = @record.config_info[:retirement]
playbook_details[:retirement] = {}
playbook_details[:retirement][:repository] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::ConfigurationScriptSource.find(retirement[:repository_id]).name
playbook_details[:retirement][:playbook] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::Playbook.find(retirement[:playbook_id]).name
playbook_details[:retirement][:machine_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::MachineCredential.find(retirement[:credential_id]).name
playbook_details[:retirement][:network_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::NetworkCredential.find(retirement[:network_credential_id]).name if retirement[:network_credential_id]
playbook_details[:retirement][:cloud_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::CloudCredential.find(retirement[:cloud_credential_id]).name if retirement[:cloud_credential_id]
dialog = provision[:dialog_id] ? Dialog.find(retirement[:dialog_id]) : Dialog.find_by(:name => retirement[:dialog_name])
playbook_details[:retirement][:dialog] = dialog.name
playbook_details[:retirement][:dialog_id] = dialog.id
playbook_details[:retirement][:remove_resources] = retirement[:remove_resources]
if retirement[:repository_id]
playbook_details[:retirement][:repository] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::ConfigurationScriptSource.find_by(:id => retirement[:repository_id]).name
playbook_details[:retirement][:playbook] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::Playbook.find_by(:id => retirement[:playbook_id]).name
playbook_details[:retirement][:machine_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::MachineCredential.find_by(:id => retirement[:credential_id]).name
playbook_details[:retirement][:network_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::NetworkCredential.find_by(:id => retirement[:network_credential_id]).name if retirement[:network_credential_id]
playbook_details[:retirement][:cloud_credential] = ManageIQ::Providers::EmbeddedAnsible::AutomationManager::CloudCredential.find_by(:id => retirement[:cloud_credential_id]).name if retirement[:cloud_credential_id]
dialog = provision[:dialog_id] ? Dialog.find_by(:id => retirement[:dialog_id]) : Dialog.find_by(:name => retirement[:dialog_name])
if dialog
playbook_details[:retirement][:dialog] = dialog.name
playbook_details[:retirement][:dialog_id] = dialog.id
end
end
end
playbook_details
end
Expand Down
Expand Up @@ -38,6 +38,11 @@ describe('catalogItemFormController', function() {
},
retirement: {
remove_resources: 'yes_without_playbook',
hosts: undefined,
extra_vars: Object({ }),
network_credential_id: undefined,
cloud_credential_id: undefined,
dialog_id: undefined
}
}
};
Expand Down

0 comments on commit 25f8cda

Please sign in to comment.