oneview-sdk 2.2.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +50 -0
  3. data/README.md +61 -15
  4. data/Rakefile +39 -1
  5. data/lib/oneview-sdk.rb +38 -3
  6. data/lib/oneview-sdk/cli.rb +85 -30
  7. data/lib/oneview-sdk/client.rb +21 -18
  8. data/lib/oneview-sdk/config_loader.rb +1 -1
  9. data/lib/oneview-sdk/resource.rb +44 -36
  10. data/lib/oneview-sdk/resource/api200.rb +34 -0
  11. data/lib/oneview-sdk/resource/api200/connection_template.rb +52 -0
  12. data/lib/oneview-sdk/resource/api200/datacenter.rb +81 -0
  13. data/lib/oneview-sdk/resource/api200/enclosure.rb +203 -0
  14. data/lib/oneview-sdk/resource/api200/enclosure_group.rb +86 -0
  15. data/lib/oneview-sdk/resource/api200/ethernet_network.rb +60 -0
  16. data/lib/oneview-sdk/resource/api200/fabric.rb +45 -0
  17. data/lib/oneview-sdk/resource/api200/fc_network.rb +34 -0
  18. data/lib/oneview-sdk/resource/api200/fcoe_network.rb +32 -0
  19. data/lib/oneview-sdk/resource/api200/firmware_bundle.rb +56 -0
  20. data/lib/oneview-sdk/resource/{fcoe_network.rb → api200/firmware_driver.rb} +21 -12
  21. data/lib/oneview-sdk/resource/api200/interconnect.rb +112 -0
  22. data/lib/oneview-sdk/resource/api200/lig_uplink_set.rb +84 -0
  23. data/lib/oneview-sdk/resource/api200/logical_downlink.rb +57 -0
  24. data/lib/oneview-sdk/resource/api200/logical_enclosure.rb +88 -0
  25. data/lib/oneview-sdk/resource/api200/logical_interconnect.rb +251 -0
  26. data/lib/oneview-sdk/resource/api200/logical_interconnect_group.rb +116 -0
  27. data/lib/oneview-sdk/resource/api200/logical_switch.rb +188 -0
  28. data/lib/oneview-sdk/resource/api200/logical_switch_group.rb +70 -0
  29. data/lib/oneview-sdk/resource/api200/managed_san.rb +83 -0
  30. data/lib/oneview-sdk/resource/api200/network_set.rb +68 -0
  31. data/lib/oneview-sdk/resource/api200/power_device.rb +178 -0
  32. data/lib/oneview-sdk/resource/api200/rack.rb +88 -0
  33. data/lib/oneview-sdk/resource/api200/resource.rb +18 -0
  34. data/lib/oneview-sdk/resource/api200/san_manager.rb +92 -0
  35. data/lib/oneview-sdk/resource/api200/server_hardware.rb +244 -0
  36. data/lib/oneview-sdk/resource/api200/server_hardware_type.rb +61 -0
  37. data/lib/oneview-sdk/resource/api200/server_profile.rb +385 -0
  38. data/lib/oneview-sdk/resource/api200/server_profile_template.rb +217 -0
  39. data/lib/oneview-sdk/resource/api200/storage_pool.rb +92 -0
  40. data/lib/oneview-sdk/resource/api200/storage_system.rb +157 -0
  41. data/lib/oneview-sdk/resource/api200/switch.rb +91 -0
  42. data/lib/oneview-sdk/resource/api200/unmanaged_device.rb +59 -0
  43. data/lib/oneview-sdk/resource/api200/uplink_set.rb +83 -0
  44. data/lib/oneview-sdk/resource/api200/volume.rb +192 -0
  45. data/lib/oneview-sdk/resource/api200/volume_attachment.rb +83 -0
  46. data/lib/oneview-sdk/resource/api200/volume_snapshot.rb +50 -0
  47. data/lib/oneview-sdk/resource/api200/volume_template.rb +99 -0
  48. data/lib/oneview-sdk/resource/api300.rb +66 -0
  49. data/lib/oneview-sdk/resource/api300/c7000.rb +27 -0
  50. data/lib/oneview-sdk/resource/api300/c7000/connection_template.rb +30 -0
  51. data/lib/oneview-sdk/resource/api300/c7000/datacenter.rb +22 -0
  52. data/lib/oneview-sdk/resource/api300/c7000/enclosure.rb +48 -0
  53. data/lib/oneview-sdk/resource/api300/c7000/enclosure_group.rb +37 -0
  54. data/lib/oneview-sdk/resource/api300/c7000/ethernet_network.rb +35 -0
  55. data/lib/oneview-sdk/resource/api300/c7000/fabric.rb +22 -0
  56. data/lib/oneview-sdk/resource/api300/c7000/fc_network.rb +37 -0
  57. data/lib/oneview-sdk/resource/api300/c7000/fcoe_network.rb +35 -0
  58. data/lib/oneview-sdk/resource/api300/c7000/firmware_bundle.rb +21 -0
  59. data/lib/oneview-sdk/resource/api300/c7000/firmware_driver.rb +22 -0
  60. data/lib/oneview-sdk/resource/api300/c7000/interconnect.rb +21 -0
  61. data/lib/oneview-sdk/resource/api300/c7000/lig_uplink_set.rb +21 -0
  62. data/lib/oneview-sdk/resource/api300/c7000/logical_downlink.rb +34 -0
  63. data/lib/oneview-sdk/resource/api300/c7000/logical_enclosure.rb +35 -0
  64. data/lib/oneview-sdk/resource/api300/c7000/logical_interconnect.rb +21 -0
  65. data/lib/oneview-sdk/resource/api300/c7000/logical_interconnect_group.rb +33 -0
  66. data/lib/oneview-sdk/resource/api300/c7000/logical_switch.rb +51 -0
  67. data/lib/oneview-sdk/resource/api300/c7000/logical_switch_group.rb +33 -0
  68. data/lib/oneview-sdk/resource/api300/c7000/managed_san.rb +36 -0
  69. data/lib/oneview-sdk/resource/api300/c7000/network_set.rb +37 -0
  70. data/lib/oneview-sdk/resource/api300/c7000/power_device.rb +21 -0
  71. data/lib/oneview-sdk/resource/api300/c7000/rack.rb +22 -0
  72. data/lib/oneview-sdk/resource/api300/c7000/resource.rb +21 -0
  73. data/lib/oneview-sdk/resource/api300/c7000/san_manager.rb +22 -0
  74. data/lib/oneview-sdk/resource/api300/c7000/server_hardware.rb +93 -0
  75. data/lib/oneview-sdk/resource/api300/c7000/server_hardware_type.rb +21 -0
  76. data/lib/oneview-sdk/resource/api300/c7000/server_profile.rb +33 -0
  77. data/lib/oneview-sdk/resource/api300/c7000/server_profile_template.rb +50 -0
  78. data/lib/oneview-sdk/resource/api300/c7000/storage_pool.rb +29 -0
  79. data/lib/oneview-sdk/resource/api300/c7000/storage_system.rb +21 -0
  80. data/lib/oneview-sdk/resource/api300/c7000/switch.rb +31 -0
  81. data/lib/oneview-sdk/resource/api300/c7000/unmanaged_device.rb +21 -0
  82. data/lib/oneview-sdk/resource/api300/c7000/uplink_set.rb +21 -0
  83. data/lib/oneview-sdk/resource/api300/c7000/volume.rb +22 -0
  84. data/lib/oneview-sdk/resource/api300/c7000/volume_attachment.rb +21 -0
  85. data/lib/oneview-sdk/resource/api300/c7000/volume_snapshot.rb +21 -0
  86. data/lib/oneview-sdk/resource/api300/c7000/volume_template.rb +32 -0
  87. data/lib/oneview-sdk/resource/api300/synergy.rb +27 -0
  88. data/lib/oneview-sdk/resource/api300/synergy/connection_template.rb +30 -0
  89. data/lib/oneview-sdk/resource/api300/synergy/datacenter.rb +22 -0
  90. data/lib/oneview-sdk/resource/api300/synergy/drive_enclosure.rb +71 -0
  91. data/lib/oneview-sdk/resource/api300/synergy/enclosure.rb +110 -0
  92. data/lib/oneview-sdk/resource/api300/synergy/enclosure_group.rb +43 -0
  93. data/lib/oneview-sdk/resource/api300/synergy/ethernet_network.rb +35 -0
  94. data/lib/oneview-sdk/resource/api300/synergy/fabric.rb +46 -0
  95. data/lib/oneview-sdk/resource/api300/synergy/fc_network.rb +37 -0
  96. data/lib/oneview-sdk/resource/api300/synergy/fcoe_network.rb +35 -0
  97. data/lib/oneview-sdk/resource/api300/synergy/firmware_bundle.rb +21 -0
  98. data/lib/oneview-sdk/resource/api300/synergy/firmware_driver.rb +22 -0
  99. data/lib/oneview-sdk/resource/api300/synergy/interconnect.rb +43 -0
  100. data/lib/oneview-sdk/resource/api300/synergy/lig_uplink_set.rb +21 -0
  101. data/lib/oneview-sdk/resource/api300/synergy/logical_downlink.rb +34 -0
  102. data/lib/oneview-sdk/resource/api300/synergy/logical_enclosure.rb +59 -0
  103. data/lib/oneview-sdk/resource/api300/synergy/logical_interconnect.rb +21 -0
  104. data/lib/oneview-sdk/resource/api300/synergy/logical_interconnect_group.rb +119 -0
  105. data/lib/oneview-sdk/resource/api300/synergy/logical_switch.rb +33 -0
  106. data/lib/oneview-sdk/resource/api300/synergy/logical_switch_group.rb +45 -0
  107. data/lib/oneview-sdk/resource/{firmware_driver.rb → api300/synergy/managed_san.rb} +7 -17
  108. data/lib/oneview-sdk/resource/api300/synergy/network_set.rb +37 -0
  109. data/lib/oneview-sdk/resource/api300/synergy/power_device.rb +21 -0
  110. data/lib/oneview-sdk/resource/api300/synergy/rack.rb +22 -0
  111. data/lib/oneview-sdk/resource/api300/synergy/resource.rb +21 -0
  112. data/lib/oneview-sdk/resource/api300/synergy/san_manager.rb +22 -0
  113. data/lib/oneview-sdk/resource/api300/synergy/sas_interconnect.rb +87 -0
  114. data/lib/oneview-sdk/resource/api300/synergy/sas_logical_interconnect.rb +110 -0
  115. data/lib/oneview-sdk/resource/api300/synergy/sas_logical_interconnect_group.rb +87 -0
  116. data/lib/oneview-sdk/resource/api300/synergy/server_hardware.rb +30 -0
  117. data/lib/oneview-sdk/resource/api300/synergy/server_hardware_type.rb +21 -0
  118. data/lib/oneview-sdk/resource/api300/synergy/server_profile.rb +78 -0
  119. data/lib/oneview-sdk/resource/api300/synergy/server_profile_template.rb +34 -0
  120. data/lib/oneview-sdk/resource/api300/synergy/storage_pool.rb +22 -0
  121. data/lib/oneview-sdk/resource/api300/synergy/storage_system.rb +21 -0
  122. data/lib/oneview-sdk/resource/api300/synergy/switch.rb +37 -0
  123. data/lib/oneview-sdk/resource/api300/synergy/unmanaged_device.rb +21 -0
  124. data/lib/oneview-sdk/resource/api300/synergy/uplink_set.rb +21 -0
  125. data/lib/oneview-sdk/resource/api300/synergy/volume.rb +22 -0
  126. data/lib/oneview-sdk/resource/api300/synergy/volume_attachment.rb +21 -0
  127. data/lib/oneview-sdk/resource/api300/synergy/volume_snapshot.rb +21 -0
  128. data/lib/oneview-sdk/resource/api300/synergy/volume_template.rb +32 -0
  129. data/lib/oneview-sdk/rest.rb +7 -10
  130. data/lib/oneview-sdk/ssl_helper.rb +3 -3
  131. data/lib/oneview-sdk/version.rb +1 -1
  132. data/oneview-sdk.gemspec +5 -5
  133. metadata +126 -47
  134. data/.gitattributes +0 -2
  135. data/.gitignore +0 -29
  136. data/.rubocop.yml +0 -80
  137. data/.travis.yml +0 -12
  138. data/lib/oneview-sdk/resource/connection_template.rb +0 -48
  139. data/lib/oneview-sdk/resource/datacenter.rb +0 -77
  140. data/lib/oneview-sdk/resource/enclosure.rb +0 -191
  141. data/lib/oneview-sdk/resource/enclosure_group.rb +0 -82
  142. data/lib/oneview-sdk/resource/ethernet_network.rb +0 -56
  143. data/lib/oneview-sdk/resource/fabric.rb +0 -41
  144. data/lib/oneview-sdk/resource/fc_network.rb +0 -30
  145. data/lib/oneview-sdk/resource/firmware_bundle.rb +0 -50
  146. data/lib/oneview-sdk/resource/interconnect.rb +0 -107
  147. data/lib/oneview-sdk/resource/lig_uplink_set.rb +0 -80
  148. data/lib/oneview-sdk/resource/logical_downlink.rb +0 -53
  149. data/lib/oneview-sdk/resource/logical_enclosure.rb +0 -86
  150. data/lib/oneview-sdk/resource/logical_interconnect.rb +0 -247
  151. data/lib/oneview-sdk/resource/logical_interconnect_group.rb +0 -112
  152. data/lib/oneview-sdk/resource/logical_switch.rb +0 -184
  153. data/lib/oneview-sdk/resource/logical_switch_group.rb +0 -66
  154. data/lib/oneview-sdk/resource/managed_san.rb +0 -79
  155. data/lib/oneview-sdk/resource/network_set.rb +0 -64
  156. data/lib/oneview-sdk/resource/power_device.rb +0 -174
  157. data/lib/oneview-sdk/resource/rack.rb +0 -83
  158. data/lib/oneview-sdk/resource/san_manager.rb +0 -88
  159. data/lib/oneview-sdk/resource/server_hardware.rb +0 -209
  160. data/lib/oneview-sdk/resource/server_hardware_type.rb +0 -58
  161. data/lib/oneview-sdk/resource/server_profile.rb +0 -380
  162. data/lib/oneview-sdk/resource/server_profile_template.rb +0 -213
  163. data/lib/oneview-sdk/resource/storage_pool.rb +0 -63
  164. data/lib/oneview-sdk/resource/storage_system.rb +0 -113
  165. data/lib/oneview-sdk/resource/switch.rb +0 -86
  166. data/lib/oneview-sdk/resource/unmanaged_device.rb +0 -55
  167. data/lib/oneview-sdk/resource/uplink_set.rb +0 -79
  168. data/lib/oneview-sdk/resource/volume.rb +0 -188
  169. data/lib/oneview-sdk/resource/volume_attachment.rb +0 -79
  170. data/lib/oneview-sdk/resource/volume_snapshot.rb +0 -46
  171. data/lib/oneview-sdk/resource/volume_template.rb +0 -95
@@ -1,112 +0,0 @@
1
- # (C) Copyright 2016 Hewlett Packard Enterprise Development LP
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # You may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- #
7
- # Unless required by applicable law or agreed to in writing, software distributed
8
- # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9
- # CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
10
- # language governing permissions and limitations under the License.
11
-
12
- module OneviewSDK
13
- # Logical interconnect group resource implementation
14
- class LogicalInterconnectGroup < Resource
15
- BASE_URI = '/rest/logical-interconnect-groups'.freeze
16
-
17
- attr_reader :bay_count
18
-
19
- # Create a resource object, associate it with a client, and set its properties.
20
- # @param [OneviewSDK::Client] client The client object for the OneView appliance
21
- # @param [Hash] params The options for this resource (key-value pairs)
22
- # @param [Integer] api_ver The api version to use when interracting with this resource.
23
- def initialize(client, params = {}, api_ver = nil)
24
- super
25
- # Default values:
26
- @data['enclosureType'] ||= 'C7000'
27
- @data['state'] ||= 'Active'
28
- @data['uplinkSets'] ||= []
29
- @data['type'] ||= 'logical-interconnect-groupV3'
30
- @data['interconnectMapTemplate'] ||= {}
31
- @data['interconnectMapTemplate']['interconnectMapEntryTemplates'] ||= []
32
-
33
- # User friendly values:
34
- @bay_count = 8
35
-
36
- # Create all entries if empty
37
- parse_interconnect_map_template if @data['interconnectMapTemplate']['interconnectMapEntryTemplates'] == []
38
- end
39
-
40
- # Adds an interconnect
41
- # @param [Fixnum] bay Bay number
42
- # @param [String] type Interconnect type
43
- # @raise [StandardError] if a invalid type is given then raises an error
44
- def add_interconnect(bay, type)
45
- @data['interconnectMapTemplate']['interconnectMapEntryTemplates'].each do |entry|
46
- entry['logicalLocation']['locationEntries'].each do |location|
47
- if location['type'] == 'Bay' && location['relativeValue'] == bay
48
- entry['permittedInterconnectTypeUri'] = OneviewSDK::Interconnect.get_type(@client, type)['uri']
49
- end
50
- end
51
- end
52
- rescue StandardError
53
- list = OneviewSDK::Interconnect.get_types(@client).map { |t| t['name'] }
54
- raise "Interconnect type #{type} not found! Supported types: #{list}"
55
- end
56
-
57
- # Adds an uplink set
58
- # @param [OneviewSDK::LIGUplinkSet] uplink_set
59
- def add_uplink_set(uplink_set)
60
- @data['uplinkSets'] << uplink_set.data
61
- end
62
-
63
- # Get the logical interconnect group default settings
64
- # @return [Hash] The logical interconnect group settings
65
- def get_default_settings
66
- get_uri = self.class::BASE_URI + '/defaultSettings'
67
- response = @client.rest_get(get_uri, @api_version)
68
- @client.response_handler(response)
69
- end
70
-
71
- # Gets the logical interconnect group settings
72
- # @return [Hash] The logical interconnect group settings
73
- def get_settings
74
- get_uri = @data['uri'] + '/settings'
75
- response = @client.rest_get(get_uri, @api_version)
76
- @client.response_handler(response)
77
- end
78
-
79
- # Saves the current data attributes to the Logical Interconnect Group
80
- # @param [Hash] attributes attributes to be updated
81
- # @return Updated instance of the Logical Interconnect Group
82
- def update(attributes = {})
83
- set_all(attributes)
84
- update_options = {
85
- 'If-Match' => @data.delete('eTag'),
86
- 'Body' => @data
87
- }
88
- response = @client.rest_put(@data['uri'], update_options, @api_version)
89
- body = @client.response_handler(response)
90
- set_all(body)
91
- end
92
-
93
- private
94
-
95
- # Parse interconnect map template structure
96
- def parse_interconnect_map_template
97
- 1.upto(@bay_count) do |bay_number|
98
- entry = {
99
- 'logicalDownlinkUri' => nil,
100
- 'logicalLocation' => {
101
- 'locationEntries' => [
102
- { 'relativeValue' => bay_number, 'type' => 'Bay' },
103
- { 'relativeValue' => 1, 'type' => 'Enclosure' }
104
- ]
105
- },
106
- 'permittedInterconnectTypeUri' => nil
107
- }
108
- @data['interconnectMapTemplate']['interconnectMapEntryTemplates'] << entry
109
- end
110
- end
111
- end
112
- end
@@ -1,184 +0,0 @@
1
- # (C) Copyright 2016 Hewlett Packard Enterprise Development LP
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # You may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- #
7
- # Unless required by applicable law or agreed to in writing, software distributed
8
- # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9
- # CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
10
- # language governing permissions and limitations under the License.
11
-
12
- module OneviewSDK
13
- # Logical switch resource implementation
14
- class LogicalSwitch < Resource
15
- BASE_URI = '/rest/logical-switches'.freeze
16
-
17
- attr_accessor :logical_switch_credentials
18
-
19
- # Create a resource object, associate it with a client, and set its properties.
20
- # @param [OneviewSDK::Client] client The client object for the OneView appliance
21
- # @param [Hash] params The options for this resource (key-value pairs)
22
- # @param [Integer] api_ver The api version to use when interracting with this resource.
23
- def initialize(client, params = {}, api_ver = nil)
24
- super
25
- # Default values
26
- @data['type'] ||= 'logical-switch'
27
- @logical_switch_credentials = {}
28
- end
29
-
30
- # Create method
31
- # @raise [OneviewSDK::IncompleteResource] if the client is not set
32
- # @raise [StandardError] if the resource creation fails
33
- # @return [OneviewSDK::LogicalSwitch] self
34
- def create
35
- ensure_client
36
- request_body = {}
37
- request_body['logicalSwitchCredentials'] = generate_logical_switch_credentials
38
- request_body['logicalSwitch'] = @data.clone
39
- request_body['logicalSwitch']['switchCredentialConfiguration'] = generate_logical_switch_credential_configuration
40
- response = @client.rest_post(self.class::BASE_URI, { 'body' => request_body }, @api_version)
41
- body = @client.response_handler(response)
42
- set_all(body)
43
- self
44
- end
45
-
46
- # Updates this object using the data that exists on OneView
47
- # @note Will overwrite any data that differs from OneView
48
- # @return [Resource] self
49
- def refresh
50
- response = @client.rest_put(@data['uri'] + '/refresh')
51
- @client.response_handler(response)
52
- end
53
-
54
-
55
- # @!group Credentials
56
- CredentialsSSH = Struct.new(:user, :password)
57
-
58
- CredentialsSNMPV1 = Struct.new(:port, :community_string, :version) do
59
- # @return [String] Returns SNMPv1
60
- def version
61
- 'SNMPv1'
62
- end
63
- end
64
-
65
- CredentialsSNMPV3 = Struct.new(:port, :user, :auth_protocol, :auth_password, :privacy_protocol, :privacy_password, :version) do
66
- # @return [String] Returns SNMPv3
67
- def version
68
- 'SNMPv3'
69
- end
70
- end
71
-
72
- # Sets switch credentials
73
- # @param [String] host IP address or host name
74
- # @param [CredentialsSSH] ssh_credentials SSH credentials
75
- # @param [CredentialsSNMP] snmp_credentials SNMP credentials
76
- # @return [Array] An Array containing the SSH and SNMP credentials
77
- def set_switch_credentials(host, ssh_credentials, snmp_credentials)
78
- fail TypeError, 'Use struct<OneviewSDK::LogicalSwitch::CredentialsSSH>' if ssh_credentials.class != OneviewSDK::LogicalSwitch::CredentialsSSH
79
- fail TypeError, 'Use struct<OneviewSDK::LogicalSwitch::CredentialsSNMP>' unless snmp_credentials.respond_to?('version')
80
- fail TypeError, 'Use struct<OneviewSDK::LogicalSwitch::CredentialsSNMP>' if snmp_credentials.version != 'SNMPv1' &&
81
- snmp_credentials.version != 'SNMPv3'
82
- @logical_switch_credentials[host] = [ssh_credentials.clone, snmp_credentials.clone]
83
- @logical_switch_credentials[host]
84
- end
85
-
86
- # @!endgroup
87
-
88
-
89
- # Sets the logical switch group
90
- # @param [OneviewSDK::logicalSwitchGroup] logical_switch_group Logical switch group
91
- def set_logical_switch_group(logical_switch_group)
92
- @data['logicalSwitchGroupUri'] = logical_switch_group['uri']
93
- end
94
-
95
- private
96
-
97
- # Generates the logical switch credentials for POST and PUT requests
98
- # @return [Array] List of connection properties for each logical switch
99
- def generate_logical_switch_credentials
100
- credentials = []
101
- @logical_switch_credentials.each do |_, switch|
102
- switch_credentials = []
103
- switch_credentials << {
104
- 'valueFormat' => 'Unknown',
105
- 'propertyName' => 'SshBasicAuthCredentialUser',
106
- 'valueType' => 'String',
107
- 'value' => switch[0].user
108
- }
109
-
110
- switch_credentials << {
111
- 'valueFormat' => 'SecuritySensitive',
112
- 'propertyName' => 'SshBasicAuthCredentialPassword',
113
- 'valueType' => 'String',
114
- 'value' => switch[0].password
115
- }
116
-
117
- if switch[1].version == 'SNMPv3'
118
- switch_credentials << {
119
- 'valueFormat' => 'SecuritySensitive',
120
- 'propertyName' => 'SnmpV3AuthorizationPassword',
121
- 'valueType' => 'String',
122
- 'value' => switch[1].auth_password
123
- }
124
-
125
- switch_credentials << {
126
- 'valueFormat' => 'Unknown',
127
- 'propertyName' => 'SnmpV3User',
128
- 'valueType' => 'String',
129
- 'value' => switch[1].user
130
- }
131
-
132
- if switch[1].privacy_password
133
- switch_credentials << {
134
- 'valueFormat' => 'SecuritySensitive',
135
- 'propertyName' => 'SnmpV3PrivacyPassword',
136
- 'valueType' => 'String',
137
- 'value' => switch[1].privacy_password
138
- }
139
- end
140
- end
141
-
142
- credentials << { 'connectionProperties' => switch_credentials }
143
- end
144
- credentials
145
- end
146
-
147
- # Generates the logical switch credential configuration for POST and PUT requests
148
- # @return [Array] List of logical switch credential configuration for each switch
149
- def generate_logical_switch_credential_configuration
150
- configuration = []
151
- @logical_switch_credentials.each do |host, switch|
152
- switch_configuration = {
153
- 'snmpPort' => switch[1].port,
154
- 'snmpV3Configuration' => nil,
155
- 'snmpV1Configuration' => nil,
156
- 'logicalSwitchManagementHost' => host,
157
- 'snmpVersion' => switch[1].version
158
- }
159
-
160
- if switch[1].version == 'SNMPv3'
161
- switch_configuration['snmpV1Configuration'] = nil
162
- switch_configuration['snmpV3Configuration'] = {
163
- 'authorizationProtocol' => switch[1].auth_protocol
164
- }
165
-
166
- if switch[1].privacy_protocol
167
- switch_configuration['snmpV3Configuration']['securityLevel'] = 'AuthPrivacy'
168
- switch_configuration['snmpV3Configuration']['privacyProtocol'] = switch[1].privacy_protocol
169
- else
170
- switch_configuration['snmpV3Configuration']['securityLevel'] = 'Auth'
171
- end
172
-
173
- elsif switch[1].version == 'SNMPv1'
174
- switch_configuration['snmpV3Configuration'] = nil
175
- switch_configuration['snmpV1Configuration'] = {
176
- 'communityString' => switch[1].community_string
177
- }
178
- end
179
- configuration << switch_configuration
180
- end
181
- configuration
182
- end
183
- end
184
- end
@@ -1,66 +0,0 @@
1
- # (C) Copyright 2016 Hewlett Packard Enterprise Development LP
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # You may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- #
7
- # Unless required by applicable law or agreed to in writing, software distributed
8
- # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9
- # CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
10
- # language governing permissions and limitations under the License.
11
-
12
- module OneviewSDK
13
- # Logical switch group resource implementation
14
- class LogicalSwitchGroup < Resource
15
- BASE_URI = '/rest/logical-switch-groups'.freeze
16
-
17
- # Create a resource object, associate it with a client, and set its properties.
18
- # @param [OneviewSDK::Client] client The client object for the OneView appliance
19
- # @param [Hash] params The options for this resource (key-value pairs)
20
- # @param [Integer] api_ver The api version to use when interracting with this resource.
21
- def initialize(client, params = {}, api_ver = nil)
22
- super
23
- # Default values:
24
- @data['category'] ||= 'logical-switch-groups'
25
- @data['state'] ||= 'Active'
26
- @data['type'] ||= 'logical-switch-group'
27
- @data['switchMapTemplate'] ||= {}
28
- end
29
-
30
- # Define how the switches will be grouped, setting the number and the type of the switches
31
- # @param [Fixnum] number_of_switches The number of the switch inside the group [1,2]
32
- # @param [String] type Switch type name
33
- # @raise [StandardError]
34
- def set_grouping_parameters(number_of_switches, type)
35
- @data['switchMapTemplate']['switchMapEntryTemplates'] = []
36
- parse_switch_map_template(number_of_switches)
37
- switch_type_uri = OneviewSDK::Switch.get_type(@client, type)['uri']
38
- @data['switchMapTemplate']['switchMapEntryTemplates'].each do |entry|
39
- entry['logicalLocation']['locationEntries'].each do |location|
40
- entry['permittedSwitchTypeUri'] = switch_type_uri if location['type'] == 'StackingMemberId'
41
- end
42
- end
43
- rescue StandardError
44
- list = OneviewSDK::Switch.get_types(@client).map { |t| t['name'] }
45
- raise "Switch type #{type} not found! Supported types: #{list}"
46
- end
47
-
48
- private
49
-
50
- # Parse switch map template structure
51
- # @param [Integer] number_of_switches number of switches
52
- def parse_switch_map_template(number_of_switches)
53
- 1.upto(number_of_switches) do |stacking_member_id|
54
- entry = {
55
- 'logicalLocation' => {
56
- 'locationEntries' => [
57
- { 'relativeValue' => stacking_member_id, 'type' => 'StackingMemberId' }
58
- ]
59
- },
60
- 'permittedSwitchTypeUri' => nil
61
- }
62
- @data['switchMapTemplate']['switchMapEntryTemplates'] << entry
63
- end
64
- end
65
- end
66
- end
@@ -1,79 +0,0 @@
1
- # (C) Copyright 2016 Hewlett Packard Enterprise Development LP
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # You may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- #
7
- # Unless required by applicable law or agreed to in writing, software distributed
8
- # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9
- # CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
10
- # language governing permissions and limitations under the License.
11
-
12
- module OneviewSDK
13
- # Power device resource implementation
14
- class ManagedSAN < Resource
15
- BASE_URI = '/rest/fc-sans/managed-sans'.freeze
16
-
17
- # Method is not available
18
- # @raise [OneviewSDK::MethodUnavailable] method is not available
19
- def create
20
- unavailable_method
21
- end
22
-
23
- # Method is not available
24
- # @raise [OneviewSDK::MethodUnavailable] method is not available
25
- def delete
26
- unavailable_method
27
- end
28
-
29
- # Method is not available
30
- # @raise [OneviewSDK::MethodUnavailable] method is not available
31
- def update
32
- unavailable_method
33
- end
34
-
35
- # Retrieves a list of endpoints
36
- # @return [Array] List of endpoints
37
- def get_endpoints
38
- response = @client.rest_get(@data['uri'] + '/endpoints')
39
- @client.response_handler(response)['members']
40
- end
41
-
42
- # Set refresh state for managed SAN
43
- # @param [String] state Desired refresh state
44
- def set_refresh_state(state)
45
- response = @client.rest_put(@data['uri'], 'body' => { refreshState: state })
46
- @client.response_handler(response)
47
- end
48
-
49
- # Set public attributes
50
- # @param [Hash] attributes Public attributes
51
- # @option attributes [String] :name
52
- # @option attributes [String] :value
53
- # @option attributes [String] :valueType
54
- # @option attributes [String] :valueFormat
55
- def set_public_attributes(attributes)
56
- response = @client.rest_put(@data['uri'], 'body' => { publicAttributes: attributes })
57
- @client.response_handler(response)
58
- end
59
-
60
- # Set public attributes
61
- # @param [Hash] policy SAN policy
62
- # @option attributes [String] :zoningPolicy
63
- # @option attributes [String] :zoneNameFormat
64
- # @option attributes [String] :enableAliasing
65
- # @option attributes [String] :initiatorNameFormat
66
- # @option attributes [String] :targetNameFormat
67
- # @option attributes [String] :targetGroupNameFormat
68
- def set_san_policy(policy)
69
- response = @client.rest_put(@data['uri'], 'body' => { sanPolicy: policy })
70
- @client.response_handler(response)
71
- end
72
-
73
- # Creates unexpected zoning report for a SAN
74
- def get_zoning_report
75
- response = @client.rest_post(@data['uri'] + '/issues', 'body' => {})
76
- @client.response_handler(response)
77
- end
78
- end
79
- end
@@ -1,64 +0,0 @@
1
- # (C) Copyright 2016 Hewlett Packard Enterprise Development LP
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # You may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- #
7
- # Unless required by applicable law or agreed to in writing, software distributed
8
- # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9
- # CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
10
- # language governing permissions and limitations under the License.
11
-
12
- module OneviewSDK
13
- # Network set resource implementation
14
- class NetworkSet < Resource
15
- BASE_URI = '/rest/network-sets'.freeze
16
-
17
- # Create a resource object, associate it with a client, and set its properties.
18
- # @param [OneviewSDK::Client] client The client object for the OneView appliance
19
- # @param [Hash] params The options for this resource (key-value pairs)
20
- # @param [Integer] api_ver The api version to use when interracting with this resource.
21
- def initialize(client, params = {}, api_ver = nil)
22
- super
23
- # Default values:
24
- @data['connectionTemplateUri'] ||= nil
25
- @data['nativeNetworkUri'] ||= nil
26
- @data['networkUris'] ||= []
27
- @data['type'] ||= 'network-set'
28
- end
29
-
30
- # Sets the native network for the network set
31
- # @param [OneviewSDK::EthernetNetwork] ethernet_network Ethernet Network
32
- def set_native_network(ethernet_network)
33
- @data['nativeNetworkUri'] = ethernet_network['uri']
34
- @data['networkUris'] << ethernet_network['uri'] unless @data['networkUris'].include?(ethernet_network['uri'])
35
- end
36
-
37
- # Adds an ethernet network to the network set
38
- # @param [OneviewSDK::EthernetNetwork] ethernet_network Ethernet Network
39
- def add_ethernet_network(ethernet_network)
40
- @data['networkUris'] << ethernet_network['uri'] unless @data['networkUris'].include?(ethernet_network['uri'])
41
- end
42
-
43
- # Removes an ethernet network from the network set
44
- # @param [OneviewSDK::EthernetNetwork] ethernet_network Ethernet Network
45
- def remove_ethernet_network(ethernet_network)
46
- @data['networkUris'].delete(ethernet_network['uri']) if @data['networkUris'].include?(ethernet_network['uri'])
47
- end
48
-
49
- # Lists network sets excluding ethernet networks
50
- # @param [OneviewSDK::Client] client The client object for the OneView appliance
51
- # @return [Array] List of network sets
52
- def self.get_without_ethernet(client)
53
- response = client.rest_get(BASE_URI + '/withoutEthernet')
54
- client.response_handler(response)
55
- end
56
-
57
- # Lists network set excluding ethernet networks
58
- # @return [OneviewSDK::NetworkSet] Network set
59
- def get_without_ethernet
60
- response = @client.rest_get(@data['uri'] + '/withoutEthernet')
61
- @client.response_handler(response)
62
- end
63
- end
64
- end