oneview-sdk 2.2.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,77 +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
10
- # specific language governing permissions and limitations under the License.
11
-
12
- module OneviewSDK
13
- # Datacenter resource implementation
14
- class Datacenter < Resource
15
- BASE_URI = '/rest/datacenters'.freeze
16
-
17
- # Add the resource on OneView using the current data
18
- # @note Calls the refresh method to set additional data
19
- # @raise [OneviewSDK::IncompleteResource] if the client is not set
20
- # @raise [StandardError] if the resource creation fails
21
- # @return [OneviewSDK::Datacenter] self
22
- alias add create
23
-
24
- # Remove resource from OneView
25
- # @return [true] if resource was removed successfully
26
- alias remove delete
27
-
28
- # Create a resource object, associate it with a client, and set its properties.
29
- # @param [OneviewSDK::Client] client The client object for the OneView appliance
30
- # @param [Hash] params The options for this resource (key-value pairs)
31
- # @param [Integer] api_ver The api version to use when interracting with this resource.
32
- def initialize(client, params = {}, api_ver = nil)
33
- super
34
- # Default values:
35
- @data['contents'] ||= []
36
- end
37
-
38
- # Method is not available
39
- # @raise [OneviewSDK::MethodUnavailable] method is not available
40
- def create
41
- unavailable_method
42
- end
43
-
44
- # Method is not available
45
- # @raise [OneviewSDK::MethodUnavailable] method is not available
46
- def delete
47
- unavailable_method
48
- end
49
-
50
- # Adds an existing rack to the datacenter
51
- # @param [OneviewSDK::Rack] rack rack
52
- # @param [Decimal] pos_x x position
53
- # @param [Decimal] pos_y y position
54
- # @param [Decimal] rotation Rotation degrees (0-359) around the center of the resource
55
- def add_rack(rack, pos_x, pos_y, rotation = 0)
56
- @data['contents'] << {
57
- 'resourceUri' => rack['uri'],
58
- 'x' => pos_x,
59
- 'y' => pos_y,
60
- 'rotation' => rotation
61
- }
62
- end
63
-
64
- # Removes a rack from the datacenter
65
- # @param [OneviewSDK::Rack] rack rack
66
- def remove_rack(rack)
67
- @data['contents'].reject! { |resource| resource['resourceUri'] == rack['uri'] }
68
- end
69
-
70
- # Gets a list of the visual content objects
71
- # @return [Hash]
72
- def get_visual_content
73
- response = @client.rest_get(@data['uri'] + '/visualContent')
74
- @client.response_handler(response)
75
- end
76
- end
77
- end
@@ -1,191 +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
- require 'time'
13
- require 'date'
14
-
15
- module OneviewSDK
16
- # Enclosure resource implementation
17
- class Enclosure < Resource
18
- BASE_URI = '/rest/enclosures'.freeze
19
-
20
- # Remove resource from OneView
21
- # @return [true] if resource was removed successfully
22
- alias remove delete
23
-
24
- # Create a resource object, associate it with a client, and set its properties.
25
- # @param [OneviewSDK::Client] client The client object for the OneView appliance
26
- # @param [Hash] params The options for this resource (key-value pairs)
27
- # @param [Integer] api_ver The api version to use when interracting with this resource.
28
- def initialize(client, params = {}, api_ver = nil)
29
- super
30
- # Default values:
31
- @data['type'] ||= 'EnclosureV200'
32
- end
33
-
34
-
35
- # Method is not available
36
- # @raise [OneviewSDK::MethodUnavailable] method is not available
37
- def create
38
- unavailable_method
39
- end
40
-
41
- # Method is not available
42
- # @raise [OneviewSDK::MethodUnavailable] method is not available
43
- def delete
44
- unavailable_method
45
- end
46
-
47
- # Claim/configure the enclosure and its components to the appliance
48
- # @note Calls the refresh method to set additional data
49
- # @return [OneviewSDK::Enclosure] self
50
- def add
51
- ensure_client
52
- required_attributes = %w(enclosureGroupUri hostname username password licensingIntent)
53
- required_attributes.each { |k| fail IncompleteResource, "Missing required attribute: '#{k}'" unless @data.key?(k) }
54
-
55
- optional_attrs = %w(enclosureUri firmwareBaselineUri force forceInstallFirmware state unmanagedEnclosure updateFirmwareOn)
56
- temp_data = @data.select { |k, _v| required_attributes.include?(k) || optional_attrs.include?(k) }
57
- response = @client.rest_post(self.class::BASE_URI, { 'body' => temp_data }, @api_version)
58
- new_data = @client.response_handler(response)
59
- old_name = @data.select { |k, _v| %w(name rackName).include?(k) } # Save name (if given)
60
- %w(username password hostname).each { |k| @data.delete(k) } # These are no longer needed
61
- set_all(new_data)
62
- set_all(old_name)
63
- update
64
- self
65
- end
66
-
67
- # Overrides the update operation because only the name and rackName can be updated (and it uses PATCH).
68
- # @param [Hash] attributes attributes to be updated
69
- # @return [OneviewSDK::Enclosure] self
70
- def update(attributes = {})
71
- set_all(attributes)
72
- ensure_client && ensure_uri
73
- cur_state = self.class.find_by(@client, uri: @data['uri']).first
74
- unless cur_state[:name] == @data['name']
75
- temp_data = [{ op: 'replace', path: '/name', value: @data['name'] }]
76
- response = @client.rest_patch(@data['uri'], { 'body' => temp_data }, @api_version)
77
- @client.response_handler(response)
78
- end
79
- unless cur_state[:rackName] == @data['rackName']
80
- temp_data = [{ op: 'replace', path: '/rackName', value: @data['rackName'] }]
81
- response = @client.rest_patch(@data['uri'], { 'body' => temp_data }, @api_version)
82
- @client.response_handler(response)
83
- end
84
- self
85
- end
86
-
87
- # Reapplies the enclosure configuration
88
- def configuration
89
- ensure_client && ensure_uri
90
- response = @client.rest_put(@data['uri'] + '/configuration', {}, @api_version)
91
- new_data = @client.response_handler(response)
92
- set_all(new_data)
93
- end
94
-
95
-
96
- # Refreshes the enclosure along with all of its components
97
- # @param [String] state NotRefreshing, RefreshFailed, RefreshPending, Refreshing
98
- # @param [Hash] options Optional force fields for refreshing the enclosure
99
- def set_refresh_state(state, options = {})
100
- ensure_client && ensure_uri
101
- s = state.to_s rescue state
102
- requestBody = {
103
- 'body' => {
104
- refreshState: s,
105
- refreshForceOptions: options
106
- }
107
- }
108
- response = @client.rest_put(@data['uri'] + '/refreshState', requestBody, @api_version)
109
- new_data = @client.response_handler(response)
110
- set_all(new_data)
111
- end
112
-
113
- # Gets the enclosure script content
114
- # @return [String] Script content
115
- def script
116
- ensure_client && ensure_uri
117
- response = @client.rest_get(@data['uri'] + '/script', @api_version)
118
- @client.response_handler(response)
119
- end
120
-
121
- # Gets the enclosure settings that describe the environmental configuration
122
- # @return [Hash] The enclosure envirnomental configuration
123
- def environmental_configuration
124
- ensure_client && ensure_uri
125
- response = @client.rest_get(@data['uri'] + '/environmentalConfiguration', @api_version)
126
- @client.response_handler(response)
127
- end
128
-
129
- # Retrieves historical utilization
130
- # @param [Hash] queryParameters query parameters (ie :startDate, :endDate, :fields, :view, etc.)
131
- # @option queryParameters [Array] :fields
132
- # @option queryParameters [Time, Date, String] :startDate
133
- # @option queryParameters [Time, Date, String] :endDate
134
- def utilization(queryParameters = {})
135
- ensure_client && ensure_uri
136
- uri = "#{@data['uri']}/utilization?"
137
-
138
- queryParameters[:endDate] = convert_time(queryParameters[:endDate])
139
- queryParameters[:startDate] = convert_time(queryParameters[:startDate])
140
-
141
- queryParameters.each do |key, value|
142
- next if value.nil?
143
- uri += case key.to_sym
144
- when :fields
145
- "fields=#{value.join(',')}"
146
- when :startDate, :endDate
147
- "filter=#{key}=#{value}"
148
- else
149
- "#{key}=#{value}"
150
- end
151
- uri += '&'
152
- end
153
- uri.chop! # Get rid of trailing '&' or '?'
154
- response = @client.rest_get(uri, @api_version)
155
- @client.response_handler(response)
156
- end
157
-
158
- # Updates specific attributes of a given enclosure resource
159
- # @param [String] operation operation to be performed
160
- # @param [String] path path
161
- # @param [String] value value
162
- def patch(operation, path, value)
163
- ensure_client && ensure_uri
164
- response = @client.rest_patch(@data['uri'], { 'body' => [{ op: operation, path: path, value: value }] }, @api_version)
165
- @client.response_handler(response)
166
- end
167
-
168
- # Associates an enclosure group to the enclosure
169
- # @param [OneviewSDK<Resource>] eg Enclosure Group associated
170
- def set_enclosure_group(eg)
171
- eg.retrieve! unless eg['uri']
172
- @data['enclosureGroupUri'] = eg['uri']
173
- end
174
-
175
- private
176
-
177
- # Converts Date, Time, or String objects to iso8601 string
178
- # @raise [InvalidResource] if time is not formatted correctly
179
- def convert_time(t)
180
- case t
181
- when nil then nil
182
- when Date then t.to_time.utc.iso8601(3)
183
- when Time then t.utc.iso8601(3)
184
- when String then Time.parse(t).utc.iso8601(3)
185
- else fail InvalidResource, "Invalid time format '#{t.class}'. Valid options are Time, Date, or String"
186
- end
187
- rescue StandardError => e
188
- raise InvalidResource, "Failed to parse time value '#{t}'. #{e.message}"
189
- end
190
- end
191
- end
@@ -1,82 +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
- # Enclosure group resource implementation
14
- class EnclosureGroup < Resource
15
- BASE_URI = '/rest/enclosure-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['type'] ||= 'EnclosureGroupV200'
25
- @data['interconnectBayMappingCount'] ||= 8
26
- create_interconnect_bay_mapping unless @data['interconnectBayMappings']
27
- end
28
-
29
- # Get the script executed by enclosures in this enclosure group
30
- # @return [String] The script for this enclosure group
31
- def get_script
32
- ensure_client && ensure_uri
33
- response = @client.rest_get(@data['uri'] + '/script', @api_version)
34
- @client.response_handler(response)
35
- end
36
-
37
- # Changes the script executed by the enclosures in this enclosure group
38
- # @param [String] body The script to be executed
39
- # @return true if set successfully
40
- def set_script(body)
41
- ensure_client && ensure_uri
42
- response = @client.rest_put(@data['uri'] + '/script', { 'body' => body }, @api_version)
43
- @client.response_handler(response)
44
- true
45
- end
46
-
47
- # Adds the logical interconnect group
48
- # @param [OneviewSDK::LogicalInterconnectGroup] lig Logical Interconnect Group
49
- def add_logical_interconnect_group(lig)
50
- lig.retrieve! unless lig['uri']
51
- lig['interconnectMapTemplate']['interconnectMapEntryTemplates'].each do |entry|
52
- entry['logicalLocation']['locationEntries'].each do |location|
53
- add_lig_to_bay(location['relativeValue'], lig) if location['type'] == 'Bay' && entry['permittedInterconnectTypeUri']
54
- end
55
- end
56
- end
57
-
58
- # Creates the interconnect bay mapping
59
- def create_interconnect_bay_mapping
60
- @data['interconnectBayMappings'] = []
61
- 1.upto(@data['interconnectBayMappingCount']) do |bay_number|
62
- entry = {
63
- 'interconnectBay' => bay_number,
64
- 'logicalInterconnectGroupUri' => nil
65
- }
66
- @data['interconnectBayMappings'] << entry
67
- end
68
- end
69
-
70
- private
71
-
72
- # Add logical interconnect group to bay
73
- # @param [Integer] bay Bay number
74
- # @param [OneviewSDK::LogicalInterconnectGroup] lig Logical Interconnect Group
75
- def add_lig_to_bay(bay, lig)
76
- @data['interconnectBayMappings'].each do |location|
77
- return location['logicalInterconnectGroupUri'] = lig['uri'] if location['interconnectBay'] == bay
78
- end
79
- end
80
-
81
- end
82
- end
@@ -1,56 +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
- # Ethernet network resource implementation
14
- class EthernetNetwork < Resource
15
- BASE_URI = '/rest/ethernet-networks'.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['ethernetNetworkType'] ||= 'Tagged'
25
- @data['type'] ||= 'ethernet-networkV3'
26
- end
27
-
28
- # Bulk create the ethernet networks
29
- # @param [OneviewSDK::Client] client The client object for the OneView appliance
30
- # @param [Hash] options information necessary to create networks
31
- # @return [Array] list of ethernet networks created
32
- def self.bulk_create(client, options)
33
- range = options[:vlanIdRange].split('-').map(&:to_i)
34
- options[:type] = 'bulk-ethernet-network'
35
- response = client.rest_post(BASE_URI + '/bulk', { 'body' => options }, client.api_version)
36
- client.response_handler(response)
37
- network_names = []
38
- range[0].upto(range[1]) { |i| network_names << "#{options[:namePrefix]}_#{i}" }
39
- OneviewSDK::EthernetNetwork.get_all(client).select { |network| network_names.include?(network['name']) }
40
- end
41
-
42
- # Gets the associated profiles
43
- def get_associated_profiles
44
- ensure_client && ensure_uri
45
- response = @client.rest_get("#{@data['uri']}/associatedProfiles", @api_version)
46
- response.body
47
- end
48
-
49
- # Gets the associated uplink groups
50
- def get_associated_uplink_groups
51
- ensure_client && ensure_uri
52
- response = @client.rest_get("#{@data['uri']}/associatedUplinkGroups", @api_version)
53
- response.body
54
- end
55
- end
56
- end
@@ -1,41 +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
- # FC network resource implementation
14
- class Fabric < Resource
15
- BASE_URI = '/rest/fabrics'.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 update
26
- unavailable_method
27
- end
28
-
29
- # Method is not available
30
- # @raise [OneviewSDK::MethodUnavailable] method is not available
31
- def delete
32
- unavailable_method
33
- end
34
-
35
- # Method is not available
36
- # @raise [OneviewSDK::MethodUnavailable] method is not available
37
- def refresh
38
- unavailable_method
39
- end
40
- end
41
- end