Skip to content

Commit

Permalink
Added input field for max playbook_ttl value
Browse files Browse the repository at this point in the history
Added new input field on both Provisioning & retirement tabs to allow user to enter maximum playbook_ttl numeric value.

https://www.pivotaltracker.com/story/show/147956383
  • Loading branch information
h-kataria committed Jul 25, 2017
1 parent 5fce0c0 commit 152605c
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ ManageIQ.angular.app.controller('catalogItemFormController', ['$scope', 'catalog
provisioning_machine_credential_id: '',
provisioning_network_credential_id: '',
provisioning_cloud_credential_id: '',
provisioning_playbook_ttl: '',
provisioning_inventory: 'localhost',
provisioning_dialog_existing: 'existing',
provisioning_dialog_id: '',
Expand All @@ -30,6 +31,7 @@ ManageIQ.angular.app.controller('catalogItemFormController', ['$scope', 'catalog
retirement_machine_credential_id: '',
retirement_network_credential_id: '',
retirement_cloud_credential_id: '',
retirement_playbook_ttl: '',
retirement_inventory: 'localhost',
retirement_key: '',
retirement_value: '',
Expand Down Expand Up @@ -123,6 +125,7 @@ ManageIQ.angular.app.controller('catalogItemFormController', ['$scope', 'catalog
vm.catalogItemModel.provisioning_machine_credential_id = configData.provision.credential_id;
vm.catalogItemModel.provisioning_network_credential_id = configData.provision.network_credential_id;
vm.catalogItemModel.provisioning_cloud_credential_id = setIfDefined(configData.provision.cloud_credential_id);
vm.catalogItemModel.provisioning_playbook_ttl = configData.provision.playbook_ttl;
vm.catalogItemModel.provisioning_inventory = configData.provision.hosts;
vm.catalogItemModel.provisioning_dialog_existing = configData.provision.dialog_id ? "existing" : "create";
vm.catalogItemModel.provisioning_dialog_id = configData.provision.dialog_id;
Expand Down Expand Up @@ -164,6 +167,7 @@ ManageIQ.angular.app.controller('catalogItemFormController', ['$scope', 'catalog

vm.catalogItemModel.retirement_network_credential_id = configData.retirement.network_credential_id;
vm.catalogItemModel.retirement_cloud_credential_id = setIfDefined(configData.retirement.cloud_credential_id);
vm.catalogItemModel.retirement_playbook_ttl = configData.retirement.playbook_ttl;
vm.catalogItemModel.retirement_inventory = configData.retirement.hosts;
vm.catalogItemModel.retirement_key = '';
vm.catalogItemModel.retirement_value = '';
Expand Down Expand Up @@ -247,6 +251,8 @@ ManageIQ.angular.app.controller('catalogItemFormController', ['$scope', 'catalog
}
}
}
if (vm.catalogItemModel.provisioning_playbook_ttl !== undefined)
catalog_item['config_info']['provision']['playbook_ttl'] = configData.provisioning_playbook_ttl;
catalog_item['config_info']['provision']['become_enabled'] = configData.provisioning_become_enabled;
if (configData.provisioning_network_credential_id !== '')
catalog_item['config_info']['provision']['network_credential_id'] = configData.provisioning_network_credential_id;
Expand All @@ -271,6 +277,8 @@ ManageIQ.angular.app.controller('catalogItemFormController', ['$scope', 'catalog
retirement['credential_id'] = configData.retirement_machine_credential_id;
}
if (vm.catalogItemModel.retirement_playbook_id !== undefined && configData.retirement_playbook_id !== '') {
if (vm.catalogItemModel.retirement_playbook_ttl !== undefined)
retirement['playbook_ttl'] = configData.retirement_playbook_ttl;
retirement['hosts'] = configData.retirement_inventory;
retirement['extra_vars'] = formatExtraVars(configData.retirement_variables);
catalog_item['config_info']['retirement']['become_enabled'] = configData.retirement_become_enabled;
Expand Down Expand Up @@ -569,6 +577,7 @@ ManageIQ.angular.app.controller('catalogItemFormController', ['$scope', 'catalog
vm.retirement_cloud_type = vm.provisioning_cloud_type;
vm._retirement_cloud_type = vm.provisioning_cloud_type;
vm.catalogItemModel.retirement_cloud_credential_id = vm.catalogItemModel.provisioning_cloud_credential_id;
vm.catalogItemModel.retirement_playbook_ttl = vm.catalogItemModel.provisioning_playbook_ttl;
vm.catalogItemModel.retirement_inventory = vm.catalogItemModel.provisioning_inventory;
vm.catalogItemModel.retirement_become_enabled = vm.catalogItemModel.provisioning_become_enabled;
vm.catalogItemModel.retirement_verbosity = vm.catalogItemModel.provisioning_verbosity;
Expand Down
2 changes: 2 additions & 0 deletions app/controllers/catalog_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1860,6 +1860,7 @@ def fetch_playbook_details
playbook_details[:provisioning][:network_credential] = fetch_name_from_object(ManageIQ::Providers::EmbeddedAnsible::AutomationManager::NetworkCredential, provision[:network_credential_id]) if provision[:network_credential_id]
playbook_details[:provisioning][:cloud_credential] = fetch_name_from_object(ManageIQ::Providers::EmbeddedAnsible::AutomationManager::CloudCredential, provision[:cloud_credential_id]) if provision[:cloud_credential_id]
fetch_dialog(playbook_details, provision[:dialog_id], :provisioning)
playbook_details[:provisioning][:playbook_ttl] = provision[:playbook_ttl]
playbook_details[:provisioning][:verbosity] = provision[:verbosity]
playbook_details[:provisioning][:become_enabled] = provision[:become_enabled] == true ? _('Yes') : _('No')

Expand All @@ -1874,6 +1875,7 @@ def fetch_playbook_details
playbook_details[:retirement][:network_credential] = fetch_name_from_object(ManageIQ::Providers::EmbeddedAnsible::AutomationManager::NetworkCredential, retirement[:network_credential_id]) if retirement[:network_credential_id]
playbook_details[:retirement][:cloud_credential] = fetch_name_from_object(ManageIQ::Providers::EmbeddedAnsible::AutomationManager::CloudCredential, retirement[:cloud_credential_id]) if retirement[:cloud_credential_id]
end
playbook_details[:retirement][:playbook_ttl] = retirement[:playbook_ttl]
playbook_details[:retirement][:verbosity] = retirement[:verbosity]
playbook_details[:retirement][:become_enabled] = retirement[:become_enabled] == true ? _('Yes') : _('No')
end
Expand Down
10 changes: 10 additions & 0 deletions app/views/catalog/_sandt_tree_show.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,11 @@
= _('Cloud Credential')
.col-md-9
= h(provisioning[:cloud_credential])
.form-group
%label.col-md-3.control-label
= _('Max TTL (mins)')
.col-md-9
= h(@record.config_info[:provision][:playbook_ttl])
.form-group
%label.col-md-3.control-label
= _('Hosts')
Expand Down Expand Up @@ -316,6 +321,11 @@
= _('Cloud Credential')
.col-md-9
= h(retirement[:cloud_credential])
.form-group
%label.col-md-3.control-label
= _('Max TTL (mins)')
.col-md-9
= h(@record.config_info[:retirement][:playbook_ttl])
.form-group
%label.col-md-3.control-label
= _('Hosts')
Expand Down
14 changes: 14 additions & 0 deletions app/views/layouts/angular/_ansible_form_options_angular.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,20 @@
"checkchange" => true}
%span.help-block{"ng-show" => "angularForm.#{prefix}_inventory.$error.miqrequired"}
= _("Required")

.form-group{"ng-class" => "{'has-error': angularForm.#{prefix}_playbook_ttl.$invalid}"}
%label.col-md-3.control-label{"for" => "#{prefix}_playbook_ttl"}
= _("Max TTL (mins)")
.col-md-9
%input.form-control{:type => "text",
'ng-model' => "#{ng_model}.#{prefix}_playbook_ttl",
:name => "#{prefix}_playbook_ttl",
:maxlength => 50,
"ng-pattern" => "/^\s*$|^[-+]?[0-9]+$/",
"checkchange" => true}
%span{"style"=>"color:red", "ng-show" => "angularForm.#{prefix}_playbook_ttl.$invalid"}
= _("Max TTL value must be numeric")

#escalate_privilege{"ng-if" => "vm.retirement_playbook_selected('#{prefix}')"}
.form-group
%label.col-md-3.control-label
Expand Down
8 changes: 8 additions & 0 deletions spec/controllers/catalog_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -768,6 +768,7 @@
:repository_id => repository.id,
:playbook_id => playbook.id,
:dialog_id => dialog.id,
:playbook_ttl => nil,
:verbosity => 4
},
:retirement => {
Expand All @@ -776,6 +777,7 @@
:credential_id => auth.id,
:repository_id => repository.id,
:playbook_id => playbook.id,
:playbook_ttl => nil,
:verbosity => 0
}
}
Expand All @@ -791,6 +793,7 @@
:dialog => "Some Label",
:dialog_id => dialog.id,
:become_enabled => "No",
:playbook_ttl => nil,
:verbosity => 4
},
:retirement => {
Expand All @@ -799,6 +802,7 @@
:playbook => playbook.name,
:machine_credential => auth.name,
:become_enabled => "No",
:playbook_ttl => nil,
:verbosity => 0
}
}
Expand All @@ -818,6 +822,7 @@
:repository_id => 1,
:playbook_id => playbook.id,
:dialog_id => 2,
:playbook_ttl => nil,
:verbosity => 4
},
:retirement => {
Expand All @@ -826,6 +831,7 @@
:credential_id => auth.id,
:repository_id => repository.id,
:playbook_id => 2,
:playbook_ttl => nil,
:verbosity => 0
}
}
Expand All @@ -839,6 +845,7 @@
:playbook => playbook.name,
:machine_credential => auth.name,
:become_enabled => "No",
:playbook_ttl => nil,
:verbosity => 4
},
:retirement => {
Expand All @@ -847,6 +854,7 @@
:playbook => nil,
:machine_credential => auth.name,
:become_enabled => "No",
:playbook_ttl => nil,
:verbosity => 0
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ describe('catalogItemFormController', function() {
repository_id: undefined,
playbook_id: 10000000000493,
credential_id: 10000000000090,
playbook_ttl: 100,
hosts: 'localhost',
verbosity: '0',
extra_vars: {
Expand Down

0 comments on commit 152605c

Please sign in to comment.