Skip to content

Commit

Permalink
Merge pull request ManageIQ#11723 from xlab-si/vmware_vapp_template_c…
Browse files Browse the repository at this point in the history
…heckboxes

Use checkboxes in VMware vApp provisioning
  • Loading branch information
agrare committed Oct 10, 2016
2 parents 54aa923 + 1a676a4 commit 9ed3cad
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ module ManageIQ::Providers
class Vmware::CloudManager::OrchestrationServiceOptionConverter < ::ServiceOrchestration::OptionConverter
def stack_create_options
{
:deploy => stack_parameters['deploy'] == 'yes',
:powerOn => stack_parameters['powerOn'] == 'yes',
:deploy => stack_parameters['deploy'] == 't',
:powerOn => stack_parameters['powerOn'] == 't',
:vdc_id => @dialog_options['dialog_availability_zone']
}
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@ def vapp_parameters
OrchestrationTemplate::OrchestrationParameter.new(
:name => "deploy",
:label => "Deploy vApp",
:data_type => "string",
:default_value => "yes",
:data_type => "boolean",
:default_value => true,
:constraints => [
OrchestrationTemplate::OrchestrationParameterAllowed.new(:allowed_values => %w(no yes))
OrchestrationTemplate::OrchestrationParameterBoolean.new
]
),
OrchestrationTemplate::OrchestrationParameter.new(
:name => "powerOn",
:label => "Power On vApp",
:data_type => "string",
:default_value => "no",
:data_type => "boolean",
:default_value => false,
:constraints => [
OrchestrationTemplate::OrchestrationParameterAllowed.new(:allowed_values => %w(no yes))
OrchestrationTemplate::OrchestrationParameterBoolean.new
]
)
]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
class OrchestrationTemplate
class OrchestrationParameterBoolean < OrchestrationParameterConstraint
end
end
19 changes: 19 additions & 0 deletions app/services/orchestration_template_dialog_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -201,9 +201,12 @@ def add_new_resource_group_field(group, position)
def add_parameter_field(parameter, group, position)
if parameter.constraints
dropdown = parameter.constraints.detect { |c| c.kind_of? OrchestrationTemplate::OrchestrationParameterAllowed }
checkbox = parameter.constraints.detect { |c| c.kind_of? OrchestrationTemplate::OrchestrationParameterBoolean } unless dropdown
end
if dropdown
create_parameter_dropdown_list(parameter, group, position, dropdown)
elsif checkbox
create_parameter_checkbox(parameter, group, position)
else
create_parameter_textbox(parameter, group, position)
end
Expand Down Expand Up @@ -249,4 +252,20 @@ def create_parameter_textbox(parameter, group, position)
:dialog_group => group
)
end

def create_parameter_checkbox(parameter, group, position)
group.dialog_fields.build(
:type => "DialogFieldCheckBox",
:name => "param_#{parameter.name}",
:data_type => "boolean",
:display => "edit",
:default_value => parameter.default_value,
:options => {:protected => parameter.hidden?},
:label => parameter.label,
:description => parameter.description,
:reconfigurable => true,
:position => position,
:dialog_group => group
)
end
end
4 changes: 2 additions & 2 deletions spec/services/orchestration_template_dialog_service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,8 @@ def assert_vmware_cloud_parameters_group(group)
fields = group.dialog_fields
expect(fields.size).to eq(2)

assert_field(fields[0], DialogFieldDropDownList, :name => "param_deploy", :default_value => "yes", :values => [%w(no no), %w(yes yes)])
assert_field(fields[1], DialogFieldDropDownList, :name => "param_powerOn", :default_value => "no", :values => [%w(no no), %w(yes yes)])
assert_field(fields[0], DialogFieldCheckBox, :name => "param_deploy", :default_value => "t", :data_type => "boolean")
assert_field(fields[1], DialogFieldCheckBox, :name => "param_powerOn", :default_value => "f", :data_type => "boolean")
end

def assert_field(field, clss, attributes)
Expand Down

0 comments on commit 9ed3cad

Please sign in to comment.