class OneviewSDK::API200::EnclosureGroup

Enclosure group resource implementation

Constants

BASE_URI

Public Class Methods

new(client, params = {}, api_ver = nil) click to toggle source

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.

Calls superclass method 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

add_logical_interconnect_group(lig) click to toggle source

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
create_interconnect_bay_mapping() click to toggle source

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_script() click to toggle source

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
set_script(body) click to toggle source

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_lig_to_bay(bay, lig) click to toggle source

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