class HammerCLIForeman::ComputeAttribute::AddInterface

Using the Update command because adding a new interface is done by modifying existing compute_attribute

Public Instance Methods

request_params() click to toggle source
# File lib/hammer_cli_foreman/compute_attribute.rb, line 115
def request_params
  params = HammerCLIForeman::ComputeAttribute.get_params(options)

  raise ArgumentError, "Compute profile value to update does not exist yet; it needs to be created first" if !params['compute_attribute'].key?('id')
  compute_resource_name = HammerCLIForeman::ComputeResources.resource_provider(options['option_compute_resource_id'])
  interfaces_attr_name = ::HammerCLIForeman.compute_resources[compute_resource_name].interfaces_attrs_name
  interface_attr =  params['compute_attribute']['vm_attrs'][interfaces_attr_name] || {}
  new_interface_id = (interface_attr.keys.max.to_i + 1 ).to_s if interface_attr.any?
  new_interface_id ||= "0"
  params['id'] = params['compute_attribute']['id']

  params['compute_attribute']['vm_attrs'][interfaces_attr_name] ||= {}
  params['compute_attribute']['vm_attrs'][interfaces_attr_name][new_interface_id] = option_interface
  params
end
validate_options() click to toggle source
Calls superclass method
# File lib/hammer_cli_foreman/compute_attribute.rb, line 109
def validate_options
  super
  validator.any(:option_compute_profile_id,:option_compute_profile_name).required
  validator.any(:option_compute_resource_id,:option_compute_resource_name).required
end