class Lpar_profile
Attributes
_compatibility[RW]
own attributes
_default_params[R]
_null_zero_none_equal[RW]
_parameter_order[R]
affinity_group_id[RW]
all_resources[RW]
allow_perf_collection[RW]
auto_start[RW]
boot_mode[RW]
bsr_arrays[RW]
conn_monitoring[RW]
curr_profile[RW]
default_profile[RW]
desired_mem[RW]
desired_num_huge_pages[RW]
desired_proc_units[RW]
desired_procs[RW]
electronic_err_reporting[RW]
hca_adapters[R]
hca_adapters_raw[RW]
hpt_ratio[RW]
io_slots[R]
io_slots_raw[R]
lhea_capabilities[RW]
lhea_logical_ports[R]
lhea_logical_ports_raw[R]
logical_serial_num[RW]
lpar_env[RW]
lpar_id[RW]
lpar_io_pool_ids[RW]
lpar_io_pool_ids_raw[RW]
lpar_keylock[RW]
lpar_name[RW]
lpar_proc_compat_mode[RW]
max_mem[RW]
max_num_huge_pages[RW]
max_proc_units[RW]
max_procs[RW]
max_virtual_slots[RW]
mem_expansion[RW]
mem_mode[RW]
min_mem[RW]
min_num_huge_pages[RW]
min_proc_units[RW]
min_procs[RW]
name[RW]
os_version[RW]
power_ctrl_lpar_ids[RW]
proc_mode[RW]
redundant_err_path_reporting[RW]
resource_config[RW]
rmc_ipaddr[RW]
rmc_state[RW]
sharing_mode[RW]
sni_device_ids[RW]
sriov_eth_logical_ports[R]
ports
sriov_eth_logical_ports_raw[RW]
sync_curr_profile[RW]
sys[RW]
uncap_weight[RW]
virtual_eth_vsi_profiles[R]
virtual_eth_vsi_profiles_raw[R]
virtual_slots[R]
virtual_vasi_adapters[R]
virtual_vasi_adapters_raw[RW]
vnic_adapters[R]
vnic_adapters_raw[R]
taken from: www.ibm.com/support/knowledgecenter/en/POWER8/p8edm/lssyscfg.html (see description of -F parameter)
vtpm_adapters[R]
vtpm_adapters_raw[RW]
work_group_id[RW]
Public Class Methods
new(lpar_id = '', profile_name = 'normal')
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 102 def initialize(lpar_id = '', profile_name = 'normal') string = '' @_null_zero_none_equal = false if lpar_id.class.to_s == 'String' if lpar_id.include?('=') string = lpar_id lpar_id = '' end end @lpar_id = lpar_id @name = profile_name @_variables = {} @_variables['variables_int'] = %w[lpar_id min_mem desired_mem max_mem all_resources min_procs desired_procs max_procs max_virtual_slots auto_start conn_monitoring uncap_weight bsr_arrays shared_proc_pool_id] @_variables['variables_float'] = %w[min_proc_units desired_proc_units max_proc_units mem_expansion] @_variables['string'] = %w[ name lpar_name lpar_env mem_mode proc_mode sharing_mode lpar_io_pool_ids boot_mode power_ctrl_lpar_ids work_group_id redundant_err_path_reporting hpt_ratio affinity_group_id lhea_capabilities lpar_proc_compat_mode lhea_capabilities lpar_proc_compat_mode electronic_err_reporting min_num_huge_pages desired_num_huge_pages max_num_huge_pages shared_proc_pool_name sni_device_ids ] @_variables['string_raw'] = %w[ hca_adapters vtpm_adapters virtual_vasi_adapters virtual_eth_vsi_profiles sriov_eth_logical_ports vnic_adapters sriov_eth_logical_ports ] @_variables['string_virtual_raw'] = %w[virtual_serial_adapters virtual_scsi_adapters virtual_eth_adapters virtual_fc_adapters] @_functions_self = %w[io_slots hca_adapters vtpm_adapters lhea_logical_ports sriov_eth_logical_ports virtual_vasi_adapters virtual_eth_vsi_profiles vnic_adapters] @_functions_virtual_slots = %w[ virtual_serial_adapters virtual_scsi_adapters virtual_eth_adapters virtual_fc_adapters] @_default_params = {} @_default_params['power5'] = %w[name lpar_name lpar_id lpar_env all_resources min_mem desired_mem max_mem min_num_huge_pages desired_num_huge_pages max_num_huge_pages mem_mode hpt_ratio proc_mode min_proc_units desired_proc_units max_proc_units min_procs desired_procs max_procs sharing_mode uncap_weight io_slots lpar_io_pool_ids max_virtual_slots virtual_serial_adapters virtual_scsi_adapters virtual_eth_adapters hca_adapters boot_mode conn_monitoring auto_start power_ctrl_lpar_ids work_group_id redundant_err_path_reporting ] @lhea_logical_ports = [] @hca_adapters = [] @io_slots = [] @_compatibility = 'power5' @_parameter_order = [] @sriov_eth_logical_ports = nil @vtpm_adapters = nil @virtual_vasi_adapters = nil @virtual_eth_vsi_profiles = nil @hca_adapters_raw = nil @vtpm_adapters_raw = nil @virtual_eth_vsi_profiles_raw = nil @virtual_vasi_adapters_raw = nil @sriov_eth_logical_ports_raw = nil @sys = nil @lpar_name = nil @virtual_slots = Lpar_virtual_slots.new @virtual_slots.profile_name=@name unless string.empty? parse(string) end end
Public Instance Methods
==(other)
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 390 def ==(other) to_s == other.to_s end
adapter_add(adapter)
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 180 def adapter_add(adapter) case adapter.class.to_s when 'VirtualEthAdapter' then virtual_slots.virtual_eth_adapters_add(adapter) when 'VirtualScsiAdapter' then virtual_slots.virtual_scsi_adapters_add(adapter) when 'VirtualSerialAdapter' then virtual_slots.virtual_serial_adapters_add(adapter) when 'VirtualFCAdapter' then virtual_slots.virtual_fc_adapters_add(adapter) else pp 'adapter class:' + adapter.class raise 'unknown type of Virtual Adapter' end end
diff_show(another_profile, columns_to_compare = 'all', columns_to_ignore = 'none')
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 394 def diff_show(another_profile, columns_to_compare = 'all', columns_to_ignore = 'none') diffs = {} ignore = columns_to_ignore.split(',') compare = columns_to_compare.split(',') @_variables.keys.each { |type| @_variables[type].each { |name| next if ignore.include?(name) next if columns_to_compare != 'all' && !compare.include?(name) if type == 'string_virtual_raw' diffs.merge!(virtual_slots.diff(another_profile.virtual_slots, type)) next end val_self = instance_variable_get("@#{name}") val_profile = another_profile.instance_variable_get("@#{name}") if val_self != val_profile val_self = 'nil' if val_self.nil? val_profile = 'nil' if val_profile.nil? if @_null_zero_none_equal next if (val_self.to_s == '0' or val_self == 'null' or val_self == 'none') and (val_profile.to_s == '0' or val_profile == 'null' or val_profile == 'none') end difference = {} difference[another_profile.name] = val_profile difference[self.name] = val_self diffs[name] = difference end } } diffs end
hca_adapters_to_s()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 213 def hca_adapters_to_s # TODO: it should have separate class of each adapter and function to analyze it (not used now on my Power5) 'none' unless @hca_adapters_raw.nil? end
io_slots_raw=(string)
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 372 def io_slots_raw=(string) if string != 'none' string.split(',').each do |adapter_string| @io_slots.push(Lpar_IO_slot.new(adapter_string)) end end @io_slots_raw = string end
io_slots_to_s()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 193 def io_slots_to_s result = nil unless @io_slots_raw.nil? if @io_slots.size == 0 result = 'none' elsif @io_slots.size == 1 result = @io_slots[0].join('/') else adapters = [] @io_slots.each do |adapter| adapters.push(adapter.to_s) end result = adapters.join(',') end end result end
lhea_logical_ports_raw=(string)
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 381 def lhea_logical_ports_raw=(string) if string != 'none' string.split(',').each do |adapter_string| @lhea_logical_ports.push(adapter_string.split('/')) end end @lhea_logical_ports_raw = string end
lhea_logical_ports_to_s()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 228 def lhea_logical_ports_to_s # TODO: it should have separate class of each adapter and function to analyze it (not used now on my Power5) unless @lhea_logical_ports_raw.nil? @lhea_logical_ports_raw end end
lssyscfgProfDecode(string)
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 320 def lssyscfgProfDecode(string) string.delete!("\n") string.delete!("\r") HmcString.parse(string).each { |name, value| if @_variables['variables_int'].include?(name) instance_variable_set("@#{name}", value.to_i) elsif @_variables['variables_float'].include?(name) instance_variable_set("@#{name}", value.to_f) elsif @_variables['string_virtual_raw'].include?(name) case name when 'virtual_fc_adapters' then @virtual_slots.virtual_fc_adapters_raw = value when 'virtual_eth_adapters' then @virtual_slots.virtual_eth_adapters_raw = value when 'virtual_scsi_adapters' then @virtual_slots.virtual_scsi_adapters_raw = value when 'virtual_serial_adapters' then @virtual_slots.virtual_serial_adapters_raw = value else raise 'unknown virtual slot type' + name end elsif name == 'io_slots' self.io_slots_raw = value elsif name == 'lhea_logical_ports' self.lhea_logical_ports_raw = value elsif @_variables['string_raw'].include?(name) instance_variable_set("@#{name}_raw", value.to_s) elsif @_variables['string'].include?(name) instance_variable_set("@#{name}", value.to_s) else print "unknown name: #{name} with value #{value}" raise end @_parameter_order.push(name) } @virtual_slots.profile_name=@name if to_s != string puts 'Incoming string:' pp string puts 'Analysed data as result of to_s:' puts to_s raise 'wrong parsing of profile string' end end
Also aliased as: parse
mksyscfg_cmd()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 312 def mksyscfg_cmd "mksyscfg -r lpar -m #{@sys} -i \"" + to_s + '"' end
remove_cmd()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 316 def remove_cmd "rmsyscfg -m #{@sys} -r lpar -n #{@lpar_name}" end
sriov_eth_logical_ports_to_s()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 242 def sriov_eth_logical_ports_to_s # TODO: it should have separate class of each adapter and function to analyze it (not used now on my Power5) unless @sriov_eth_logical_ports_raw.nil? 'none' end end
to_s(params='all', exclude_cols='none')
click to toggle source
the result of command it the same as: lssyscfg -r prof -m $FRAME
# File lib/HMC/Lpar_profile.rb, line 257 def to_s(params='all', exclude_cols='none') result_array = [] if params == 'all' if @_parameter_order.count > 0 params_to_print = @_parameter_order else params_to_print = @_default_params[@_compatibility] end else params_to_print = params.split(',') end if exclude_cols != 'none' exclude_cols.split(',').each { |column| params_to_print.delete(column) } end params_to_print.each do |parameter| if @_functions_self.include?(parameter) tmp = send("#{parameter}_to_s") tmp = make_string(parameter, tmp) result_array.push(tmp) unless tmp.nil? elsif @_functions_virtual_slots.include?(parameter) tmp = @virtual_slots.send("#{parameter}_to_s") tmp = make_string(parameter, tmp) result_array.push(tmp) unless tmp.nil? else unless instance_variable_get("@#{parameter}").nil? result_array.push(make_string(parameter, instance_variable_get("@#{parameter}").to_s)) end end end result_array.join(',') end
virtual_eth_vsi_profiles_to_s()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 223 def virtual_eth_vsi_profiles_to_s # TODO: it should have separate class of each adapter and function to analyze it (not used now on my Power5) 'none' unless @virtual_eth_vsi_profiles_raw.nil? end
virtual_vasi_adapters_to_s()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 235 def virtual_vasi_adapters_to_s # TODO: it should have separate class of each adapter and function to analyze it (not used now on my Power5) unless @virtual_vasi_adapters_raw.nil? 'none' end end
vlans()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 301 def vlans result = [] virtual_slots.virtual_eth_adapters.each { |adapter| result.push(adapter.portVlanID) adapter.additionalVlanIDs.split(',').each { |vlan| result.push(vlan) } } result.sort end
vnic_adapters_to_s()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 249 def vnic_adapters_to_s # TODO: it should have separate class of each adapter and function to analyze it (not used now on my Power5, found in manual on IBM site) unless @vnic_adapters_raw.nil? 'none' end end
vtpm_adapters_to_s()
click to toggle source
# File lib/HMC/Lpar_profile.rb, line 218 def vtpm_adapters_to_s # TODO: it should have separate class of each adapter and function to analyze it (not used now on my Power5) 'none' unless @vtpm_adapters_raw.nil? end