class VirtualEthAdapter
www.ibm.com/support/knowledgecenter/TI0002C/p8edm/chsyscfg.html
Attributes
additionalVlanIDs[RW]
allowedOsMacAddresses[RW]
isIEEE[RW]
isTrunk[RW]
macAddress[RW]
portVlanID[RW]
qosPiority[RW]
trunkPriority[RW]
virtualSwitch[RW]
Public Class Methods
new(string = '')
click to toggle source
Calls superclass method
VirtualAdapter::new
# File lib/HMC/VirtualEthAdapter.rb, line 20 def initialize(string = '') super(string) @virtualSlotNumber = nil @isIEEE = 0 @portVlanID = nil @additionalVlanIDs = '' @isTrunk = 0 @trunkPriority = 0 #if trunk is true, trunk priority has to to be set up @virtualSwitch = nil @macAddress = nil @allowedOsMacAddresses = nil @qosPiority = nil @regexp_minimum = %r{^\s*(\d+)/([01])/(\d+)/([\d,]+|)/(\d+)/([01]|)\s*$} @regexp_vswitch = %r{^\s*(\d+)/([01])/(\d+)/([\d,]+|)/(\d+)/([01]|)/([\w\-]+|)\s*$} @regexp_mac_address = %r{^\s*(\d+)/([01])/(\d+)/([\d,]+|)/(\d+)/([01]|)/([\w\-]+|)/(\w+|)\s*$} @regexp_allowed_mac_address = %r{^\s*(\d+)/([01])/(\d+)/([\d,]+|)/(\d+)/([01]|)/([\w\-]+|)/(\w+|)/([\w,]+|all|)\s*$} @regexp_qos_priority = %r{^\s*(\d+)/([01])/(\d+)/([\d,]+|)/(\d+)/([01]|)/([\w\-]+|)/(\w+|)/([\w,]+|all|)/(\d+|none)\s*$} # '20/1/101/0/0///all/none' # virtual-slot-number/is-IEEE/port-vlan-ID/[additional-vlan-IDs]/[trunk-priority]/is-required[/[virtual-switch][/[MAC-address]/[allowed-OS-MAC-addresses]/[QoS-priority]]] # The first 5 ’/’ characters must be present. The 6th # ’/’ character is optional, but it must be present if # virtual-switch or any of the values following # virtual-switch are specified. The last 3 ’/’ # characters are optional, but all 3 must be present if # MAC-address, allowed-OS-MAC-addresses, or QoS-priority # is specified. @params = %w[isIEEE portVlanID additionalVlanIDs trunkPriority isTrunk virtualSwitch macAddress allowedOsMacAddresses qosPiority] @params_real = %w[lpar_name lpar_id slot_num state is_required is_trunk trunk_priority ieee_virtual_eth port_vlan_id vswitch addl_vlan_ids mac_addr allowed_os_mac_addrs qos_priority] parse(string) unless string.empty? end
Public Instance Methods
can_parse?(string)
click to toggle source
# File lib/HMC/VirtualEthAdapter.rb, line 90 def can_parse?(string) return true if @regexp_minimum.match(string) return true if @regexp_vswitch.match(string) return true if @regexp_mac_address.match(string) return true if @regexp_allowed_mac_address.match(string) return true if @regexp_qos_priority.match(string) return true if can_parse_real?(string) false end
can_parse_real?(string)
click to toggle source
# File lib/HMC/VirtualEthAdapter.rb, line 172 def can_parse_real?(string) data = HmcString.parse(string) data.each_pair do |key, value| return false unless @params_real.include?(key.delete("\s")) end true end
decode(string)
click to toggle source
# File lib/HMC/VirtualEthAdapter.rb, line 102 def decode(string) @data_string_raw = string # virtual-slot-number/is-IEEE/port-vlan-ID/[additional-vlan-IDs]/[trunk-priority]/is-required[/[virtual-switch][/[MAC-address]/ # [allowed-OS-MAC-addresses]/[QoS-priority]]] if can_parse_real?(string) parse_real(string) elsif match = @regexp_minimum.match(string) @virtualSlotNumber = match[1].to_i @isIEEE = match[2].to_i @portVlanID = match[3].to_i @additionalVlanIDs = match[4] @trunkPriority = match[5].to_i @isRequired = match[6].to_i elsif match = @regexp_vswitch.match(string) @virtualSlotNumber = match[1].to_i @isIEEE = match[2].to_i @portVlanID = match[3].to_i @additionalVlanIDs = match[4] @trunkPriority = match[5].to_i @isRequired = match[6].to_i @virtualSwitch = match[7].to_i elsif match = @regexp_mac_address.match(string) @virtualSlotNumber = match[1].to_i @isIEEE = match[2].to_i @portVlanID = match[3].to_i @additionalVlanIDs = match[4] @trunkPriority = match[5].to_i @isRequired = match[6].to_i @virtualSwitch = match[7] @macAddress = match[8] elsif match = @regexp_allowed_mac_address.match(string) @virtualSlotNumber = match[1].to_i @isIEEE = match[2].to_i @portVlanID = match[3].to_i @additionalVlanIDs = match[4] @trunkPriority = match[5].to_i @isRequired = match[6].to_i @virtualSwitch = match[7] @macAddress = match[8] @allowedOsMacAddresses = match[9] elsif match = @regexp_qos_priority.match(string) @virtualSlotNumber = match[1].to_i @isIEEE = match[2].to_i @portVlanID = match[3].to_i @additionalVlanIDs = match[4] @trunkPriority = match[5].to_i @isRequired = match[6].to_i @virtualSwitch = match[7] @macAddress = match[8] @allowedOsMacAddresses = match[9] @qosPiority = match[10] else raise "class:VirtualEthAdapter, function:parse, RegExp couldn't decode string >#{string}<" end end
Also aliased as: parse
parse_real(string)
click to toggle source
# File lib/HMC/VirtualEthAdapter.rb, line 184 def parse_real(string) data = HmcString.parse(string) data.each_pair do |key, value| case key.delete("\s") when 'lpar_name' then @lpar_name = value when 'lpar_id' then @lpar_id = value.to_i when 'slot_num' then @virtualSlotNumber = value.to_i when 'state' then @state = value.to_i when 'is_required' then @isRequired = value.to_i when 'is_trunk' then @isTrunk = value.to_i when 'trunk_priority' then @trunkPriority = value.to_i when 'ieee_virtual_eth' then @isIEEE = value.to_i when 'port_vlan_id' then @portVlanID = value.to_i when 'addl_vlan_ids' then @additionalVlanIDs = value when 'mac_addr' then @macAddress = value when 'vswitch' then @virtualSwitch = value when 'allowed_os_mac_addrs' then @allowedOsMacAddresses = value when 'qos_priority' then @qosPiority = value else raise Exception, "Can't parse string, wrong key: '#{key}'" end end @_type = 'real' end
to_s()
click to toggle source
# File lib/HMC/VirtualEthAdapter.rb, line 68 def to_s validate if @_type == 'real' result = "lpar_name=#{@lpar_name},lpar_id=#{@lpar_id},slot_num=#{@virtualSlotNumber},state=#{@state},is_required=#{@isRequired}," result += "is_trunk=#{@isTrunk}," result += "trunk_priority=#{@trunkPriority}," if @isTrunk == 1 result += "ieee_virtual_eth=#{@isIEEE},port_vlan_id=#{@portVlanID},addl_vlan_ids=,mac_addr=#{@macAddress}" else result = "#{@virtualSlotNumber}/#{@isIEEE}/#{@portVlanID}/#{@additionalVlanIDs}/#{@trunkPriority}/#{@isRequired}" result += "/#{@virtualSwitch}" unless @virtualSwitch.nil? result += "/#{@macAddress}" unless @macAddress.nil? result += "/#{@allowedOsMacAddresses}" unless @allowedOsMacAddresses.nil? result += "/#{@qosPiority}" unless @qosPiority.nil? result = '""' + result + '""' if result.include?(',') end result end
validate()
click to toggle source
# File lib/HMC/VirtualEthAdapter.rb, line 62 def validate raise 'class: VirtualEthAdapter: function: validation, virtualSlotNumber not defined' unless (@virtualSlotNumber.is_a? Numeric) raise 'class: VirtualEthAdapter: function: validation, isIEEE not defined' unless (@isIEEE.is_a? Numeric) raise 'class: VirtualEthAdapter: function: validation, isRequired not defined' unless (@isRequired.is_a? Numeric) end