class OneviewSDK::API200::LogicalSwitch
Logical switch resource implementation
Constants
- BASE_URI
- CredentialsSNMPV1
- CredentialsSNMPV3
- CredentialsSSH
@!group Credentials
Attributes
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/logical_switch.rb, line 26 def initialize(client, params = {}, api_ver = nil) super # Default values @data['type'] ||= 'logical-switch' @logical_switch_credentials = {} end
Public Instance Methods
Create method @param [Hash] header The header options for the request (key-value pairs) @raise [OneviewSDK::IncompleteResource] if the client is not set @raise [StandardError] if the resource creation fails @return [OneviewSDK::LogicalSwitch] self
# File lib/oneview-sdk/resource/api200/logical_switch.rb, line 38 def create(header = {}) ensure_client request_body = {} request_body['logicalSwitchCredentials'] = generate_logical_switch_credentials request_body['logicalSwitch'] = @data.clone request_body['logicalSwitch']['switchCredentialConfiguration'] = generate_logical_switch_credential_configuration options = DEFAULT_REQUEST_HEADER.merge(header).merge('body' => request_body) response = @client.rest_post(self.class::BASE_URI, options, @api_version) body = @client.response_handler(response) set_all(body) self end
Reclaims the top-of-rack switches in a logical switch.
# File lib/oneview-sdk/resource/api200/logical_switch.rb, line 52 def refresh_state response = @client.rest_put(@data['uri'] + '/refresh') @client.response_handler(response) end
Sets the logical switch group @param [OneviewSDK::logicalSwitchGroup] logical_switch_group Logical switch group
# File lib/oneview-sdk/resource/api200/logical_switch.rb, line 94 def set_logical_switch_group(logical_switch_group) @data['logicalSwitchGroupUri'] = logical_switch_group['uri'] end
Sets switch credentials @param [String] host IP address or host name @param [CredentialsSSH] ssh_credentials SSH credentials @param [CredentialsSNMP] snmp_credentials SNMP credentials @return [Array] An Array containing the SSH and SNMP credentials
# File lib/oneview-sdk/resource/api200/logical_switch.rb, line 80 def set_switch_credentials(host, ssh_credentials, snmp_credentials) raise TypeError, 'Use struct<OneviewSDK::LogicalSwitch::CredentialsSSH>' if ssh_credentials.class != OneviewSDK::LogicalSwitch::CredentialsSSH raise TypeError, 'Use struct<OneviewSDK::LogicalSwitch::CredentialsSNMP>' unless snmp_credentials.respond_to?('version') raise TypeError, 'Use struct<OneviewSDK::LogicalSwitch::CredentialsSNMP>' if snmp_credentials.version != 'SNMPv1' && snmp_credentials.version != 'SNMPv3' @logical_switch_credentials[host] = [ssh_credentials.clone, snmp_credentials.clone] @logical_switch_credentials[host] end
Private Instance Methods
Generates the logical switch credential configuration for POST and PUT requests @return [Array] List of logical switch credential configuration for each switch
# File lib/oneview-sdk/resource/api200/logical_switch.rb, line 152 def generate_logical_switch_credential_configuration configuration = [] @logical_switch_credentials.each do |host, switch| switch_configuration = { 'snmpPort' => switch[1].port, 'snmpV3Configuration' => nil, 'snmpV1Configuration' => nil, 'logicalSwitchManagementHost' => host, 'snmpVersion' => switch[1].version } if switch[1].version == 'SNMPv3' switch_configuration['snmpV1Configuration'] = nil switch_configuration['snmpV3Configuration'] = { 'authorizationProtocol' => switch[1].auth_protocol } if switch[1].privacy_protocol switch_configuration['snmpV3Configuration']['securityLevel'] = 'AuthPrivacy' switch_configuration['snmpV3Configuration']['privacyProtocol'] = switch[1].privacy_protocol else switch_configuration['snmpV3Configuration']['securityLevel'] = 'Auth' end elsif switch[1].version == 'SNMPv1' switch_configuration['snmpV3Configuration'] = nil switch_configuration['snmpV1Configuration'] = { 'communityString' => switch[1].community_string } end configuration << switch_configuration end configuration end
Generates the logical switch credentials for POST and PUT requests @return [Array] List of connection properties for each logical switch
# File lib/oneview-sdk/resource/api200/logical_switch.rb, line 102 def generate_logical_switch_credentials credentials = [] @logical_switch_credentials.each_value do |switch| switch_credentials = [] switch_credentials << { 'valueFormat' => 'Unknown', 'propertyName' => 'SshBasicAuthCredentialUser', 'valueType' => 'String', 'value' => switch[0].user } switch_credentials << { 'valueFormat' => 'SecuritySensitive', 'propertyName' => 'SshBasicAuthCredentialPassword', 'valueType' => 'String', 'value' => switch[0].password } if switch[1].version == 'SNMPv3' switch_credentials << { 'valueFormat' => 'SecuritySensitive', 'propertyName' => 'SnmpV3AuthorizationPassword', 'valueType' => 'String', 'value' => switch[1].auth_password } switch_credentials << { 'valueFormat' => 'Unknown', 'propertyName' => 'SnmpV3User', 'valueType' => 'String', 'value' => switch[1].user } if switch[1].privacy_password switch_credentials << { 'valueFormat' => 'SecuritySensitive', 'propertyName' => 'SnmpV3PrivacyPassword', 'valueType' => 'String', 'value' => switch[1].privacy_password } end end credentials << { 'connectionProperties' => switch_credentials } end credentials end