class OneviewSDK::API200::EnclosureGroup
Enclosure
group resource implementation
Constants
- BASE_URI
Public Class Methods
Create a resource object, associate it with a client, and set its properties. @param [OneviewSDK::Client] client The client object for the OneView appliance @param [Hash] params The options for this resource (key-value pairs) @param [Integer] api_ver The api version to use when interracting with this resource.
OneviewSDK::Resource::new
# File lib/oneview-sdk/resource/api200/enclosure_group.rb, line 24 def initialize(client, params = {}, api_ver = nil) super # Default values: @data['type'] ||= 'EnclosureGroupV200' @data['interconnectBayMappingCount'] ||= 8 @data['stackingMode'] ||= 'Enclosure' create_interconnect_bay_mapping unless @data['interconnectBayMappings'] end
Public Instance Methods
Adds the logical interconnect group @param [OneviewSDK::LogicalInterconnectGroup] lig Logical Interconnect
Group @raise [OneviewSDK::NotFound] if the LIG uri is not set and cannot be retrieved @return [OneviewSDK::EnclosureGroup] self
# File lib/oneview-sdk/resource/api200/enclosure_group.rb, line 55 def add_logical_interconnect_group(lig) lig.retrieve! unless lig['uri'] raise(NotFound, "The logical interconnect group #{lig['name']} was not found.") 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 self end
Creates the interconnect bay mapping @return [OneviewSDK::EnclosureGroup] self
# File lib/oneview-sdk/resource/api200/enclosure_group.rb, line 68 def create_interconnect_bay_mapping @data['interconnectBayMappings'] = [] 1.upto(@data['interconnectBayMappingCount']) do |bay_number| entry = { 'interconnectBay' => bay_number, 'logicalInterconnectGroupUri' => nil } @data['interconnectBayMappings'] << entry end self end
Get the script executed by enclosures in this enclosure group @return [String] The script for this enclosure group
# File lib/oneview-sdk/resource/api200/enclosure_group.rb, line 35 def get_script ensure_client && ensure_uri response = @client.rest_get(@data['uri'] + '/script', {}, @api_version) @client.response_handler(response) end
Changes the script executed by the enclosures in this enclosure group @param [String] body The script to be executed @return true if set successfully
# File lib/oneview-sdk/resource/api200/enclosure_group.rb, line 44 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
Private Instance Methods
Add logical interconnect group to bay @param [Integer] bay Bay number @param [OneviewSDK::LogicalInterconnectGroup] lig Logical Interconnect
Group
# File lib/oneview-sdk/resource/api200/enclosure_group.rb, line 85 def add_lig_to_bay(bay, lig) @data['interconnectBayMappings'].each do |location| return location['logicalInterconnectGroupUri'] = lig['uri'] if location['interconnectBay'] == bay end end