Class: OneviewSDK::EnclosureGroup
- Defined in:
- lib/oneview-sdk/resource/enclosure_group.rb
Overview
Enclosure group resource implementation
Validates collapse
- VALID_INTERCONNECT_BAY_MAPPING_COUNTS =
(1..8).freeze
- VALID_IP_ADDRESSING_MODES =
%w(DHCP External IpPool).freeze
- VALID_PORT_MAPPING_COUNTS =
(0..8).freeze
- VALID_POWER_MODES =
['RedundantPowerFeed', 'RedundantPowerSupply', nil].freeze
- VALID_STACKING_MODES =
%w(Enclosure MultiEnclosure None SwitchPairs).freeze
Constant Summary collapse
- BASE_URI =
'/rest/enclosure-groups'.freeze
Instance Attribute Summary
Attributes inherited from Resource
#api_version, #client, #data, #logger
Validates collapse
- #validate_interconnectBayMappingCount(value) ⇒ Object
- #validate_ipAddressingMode(value) ⇒ Object
- #validate_portMappingCount(value) ⇒ Object
- #validate_powerMode(value) ⇒ Object
- #validate_stackingMode(value) ⇒ Object
Instance Method Summary collapse
-
#add_logical_interconnect_group(lig) ⇒ Object
Add logical interconnect group.
-
#create_interconnect_bay_mapping ⇒ Object
Create interconnect bay mapping.
-
#get_script ⇒ String
Get the script executed by enclosures in this enclosure group.
-
#initialize(client, params = {}, api_ver = nil) ⇒ EnclosureGroup
constructor
A new instance of EnclosureGroup.
-
#set_script(body) ⇒ Object
Change the script executed by enclosures in this enclosure group.
Methods inherited from Resource
#==, #[], #[]=, #create, #create!, #delete, #each, #eql?, #exists?, find_by, from_file, get_all, #like?, #refresh, #retrieve!, schema, #schema, #set, #set_all, #to_file, #update
Constructor Details
#initialize(client, params = {}, api_ver = nil) ⇒ EnclosureGroup
Returns a new instance of EnclosureGroup.
6 7 8 9 10 11 12 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 6 def initialize(client, params = {}, api_ver = nil) super # Default values: @data['type'] ||= 'EnclosureGroupV200' @data['interconnectBayMappingCount'] ||= 8 create_interconnect_bay_mapping unless @data['interconnectBayMappings'] end |
Instance Method Details
#add_logical_interconnect_group(lig) ⇒ Object
Add logical interconnect group
65 66 67 68 69 70 71 72 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 65 def add_logical_interconnect_group(lig) lig.retrieve! unless lig['uri'] lig['interconnectMapTemplate']['interconnectMapEntryTemplates'].each do |entry| entry['logicalLocation']['locationEntries'].each do |location| add_lig_to_bay(location['relativeValue'], lig) if location['type'] == 'Bay' && entry['permittedInterconnectTypeUri'] end end end |
#create_interconnect_bay_mapping ⇒ Object
Create interconnect bay mapping
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 75 def create_interconnect_bay_mapping @data['interconnectBayMappings'] = [] 1.upto(@data['interconnectBayMappingCount']) do |bay_number| entry = { 'interconnectBay' => bay_number, 'logicalInterconnectGroupUri' => nil } @data['interconnectBayMappings'] << entry end end |
#get_script ⇒ String
Get the script executed by enclosures in this enclosure group
47 48 49 50 51 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 47 def get_script ensure_client && ensure_uri response = @client.rest_get(@data['uri'] + '/script', @api_version) @client.response_handler(response) end |
#set_script(body) ⇒ Object
Change the script executed by enclosures in this enclosure group
56 57 58 59 60 61 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 56 def set_script(body) ensure_client && ensure_uri response = @client.rest_put(@data['uri'] + '/script', { 'body' => body }, @api_version) @client.response_handler(response) true end |
#validate_interconnectBayMappingCount(value) ⇒ Object
17 18 19 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 17 def validate_interconnectBayMappingCount(value) fail 'Interconnect Bay Mapping Count out of range 1..8' unless VALID_INTERCONNECT_BAY_MAPPING_COUNTS.include?(value) end |
#validate_ipAddressingMode(value) ⇒ Object
22 23 24 25 26 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 22 def validate_ipAddressingMode(value) return if !@data['enclosureTypeUri'] || /c7000/ =~ @data['enclosureTypeUri'] is_not_a_c7000_without_ip_addressing_mode = !(/c7000/ =~ @data['enclosureTypeUri']) && !value fail "Invalid ip AddressingMode: #{value}" if !VALID_IP_ADDRESSING_MODES.include?(value) || is_not_a_c7000_without_ip_addressing_mode end |
#validate_portMappingCount(value) ⇒ Object
29 30 31 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 29 def validate_portMappingCount(value) fail 'Port Mapping Count out of range 0..8' unless VALID_PORT_MAPPING_COUNTS.include?(value) end |
#validate_powerMode(value) ⇒ Object
34 35 36 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 34 def validate_powerMode(value) fail 'Invalid powerMode' unless VALID_POWER_MODES.include?(value) end |
#validate_stackingMode(value) ⇒ Object
39 40 41 |
# File 'lib/oneview-sdk/resource/enclosure_group.rb', line 39 def validate_stackingMode(value) fail 'Invalid stackingMode' unless VALID_STACKING_MODES.include?(value) end |