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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +50 -0
- data/README.md +61 -15
- data/Rakefile +39 -1
- data/lib/oneview-sdk.rb +38 -3
- data/lib/oneview-sdk/cli.rb +85 -30
- data/lib/oneview-sdk/client.rb +21 -18
- data/lib/oneview-sdk/config_loader.rb +1 -1
- data/lib/oneview-sdk/resource.rb +44 -36
- data/lib/oneview-sdk/resource/api200.rb +34 -0
- data/lib/oneview-sdk/resource/api200/connection_template.rb +52 -0
- data/lib/oneview-sdk/resource/api200/datacenter.rb +81 -0
- data/lib/oneview-sdk/resource/api200/enclosure.rb +203 -0
- data/lib/oneview-sdk/resource/api200/enclosure_group.rb +86 -0
- data/lib/oneview-sdk/resource/api200/ethernet_network.rb +60 -0
- data/lib/oneview-sdk/resource/api200/fabric.rb +45 -0
- data/lib/oneview-sdk/resource/api200/fc_network.rb +34 -0
- data/lib/oneview-sdk/resource/api200/fcoe_network.rb +32 -0
- data/lib/oneview-sdk/resource/api200/firmware_bundle.rb +56 -0
- data/lib/oneview-sdk/resource/{fcoe_network.rb → api200/firmware_driver.rb} +21 -12
- data/lib/oneview-sdk/resource/api200/interconnect.rb +112 -0
- data/lib/oneview-sdk/resource/api200/lig_uplink_set.rb +84 -0
- data/lib/oneview-sdk/resource/api200/logical_downlink.rb +57 -0
- data/lib/oneview-sdk/resource/api200/logical_enclosure.rb +88 -0
- data/lib/oneview-sdk/resource/api200/logical_interconnect.rb +251 -0
- data/lib/oneview-sdk/resource/api200/logical_interconnect_group.rb +116 -0
- data/lib/oneview-sdk/resource/api200/logical_switch.rb +188 -0
- data/lib/oneview-sdk/resource/api200/logical_switch_group.rb +70 -0
- data/lib/oneview-sdk/resource/api200/managed_san.rb +83 -0
- data/lib/oneview-sdk/resource/api200/network_set.rb +68 -0
- data/lib/oneview-sdk/resource/api200/power_device.rb +178 -0
- data/lib/oneview-sdk/resource/api200/rack.rb +88 -0
- data/lib/oneview-sdk/resource/api200/resource.rb +18 -0
- data/lib/oneview-sdk/resource/api200/san_manager.rb +92 -0
- data/lib/oneview-sdk/resource/api200/server_hardware.rb +244 -0
- data/lib/oneview-sdk/resource/api200/server_hardware_type.rb +61 -0
- data/lib/oneview-sdk/resource/api200/server_profile.rb +385 -0
- data/lib/oneview-sdk/resource/api200/server_profile_template.rb +217 -0
- data/lib/oneview-sdk/resource/api200/storage_pool.rb +92 -0
- data/lib/oneview-sdk/resource/api200/storage_system.rb +157 -0
- data/lib/oneview-sdk/resource/api200/switch.rb +91 -0
- data/lib/oneview-sdk/resource/api200/unmanaged_device.rb +59 -0
- data/lib/oneview-sdk/resource/api200/uplink_set.rb +83 -0
- data/lib/oneview-sdk/resource/api200/volume.rb +192 -0
- data/lib/oneview-sdk/resource/api200/volume_attachment.rb +83 -0
- data/lib/oneview-sdk/resource/api200/volume_snapshot.rb +50 -0
- data/lib/oneview-sdk/resource/api200/volume_template.rb +99 -0
- data/lib/oneview-sdk/resource/api300.rb +66 -0
- data/lib/oneview-sdk/resource/api300/c7000.rb +27 -0
- data/lib/oneview-sdk/resource/api300/c7000/connection_template.rb +30 -0
- data/lib/oneview-sdk/resource/api300/c7000/datacenter.rb +22 -0
- data/lib/oneview-sdk/resource/api300/c7000/enclosure.rb +48 -0
- data/lib/oneview-sdk/resource/api300/c7000/enclosure_group.rb +37 -0
- data/lib/oneview-sdk/resource/api300/c7000/ethernet_network.rb +35 -0
- data/lib/oneview-sdk/resource/api300/c7000/fabric.rb +22 -0
- data/lib/oneview-sdk/resource/api300/c7000/fc_network.rb +37 -0
- data/lib/oneview-sdk/resource/api300/c7000/fcoe_network.rb +35 -0
- data/lib/oneview-sdk/resource/api300/c7000/firmware_bundle.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/firmware_driver.rb +22 -0
- data/lib/oneview-sdk/resource/api300/c7000/interconnect.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/lig_uplink_set.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/logical_downlink.rb +34 -0
- data/lib/oneview-sdk/resource/api300/c7000/logical_enclosure.rb +35 -0
- data/lib/oneview-sdk/resource/api300/c7000/logical_interconnect.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/logical_interconnect_group.rb +33 -0
- data/lib/oneview-sdk/resource/api300/c7000/logical_switch.rb +51 -0
- data/lib/oneview-sdk/resource/api300/c7000/logical_switch_group.rb +33 -0
- data/lib/oneview-sdk/resource/api300/c7000/managed_san.rb +36 -0
- data/lib/oneview-sdk/resource/api300/c7000/network_set.rb +37 -0
- data/lib/oneview-sdk/resource/api300/c7000/power_device.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/rack.rb +22 -0
- data/lib/oneview-sdk/resource/api300/c7000/resource.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/san_manager.rb +22 -0
- data/lib/oneview-sdk/resource/api300/c7000/server_hardware.rb +93 -0
- data/lib/oneview-sdk/resource/api300/c7000/server_hardware_type.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/server_profile.rb +33 -0
- data/lib/oneview-sdk/resource/api300/c7000/server_profile_template.rb +50 -0
- data/lib/oneview-sdk/resource/api300/c7000/storage_pool.rb +29 -0
- data/lib/oneview-sdk/resource/api300/c7000/storage_system.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/switch.rb +31 -0
- data/lib/oneview-sdk/resource/api300/c7000/unmanaged_device.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/uplink_set.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/volume.rb +22 -0
- data/lib/oneview-sdk/resource/api300/c7000/volume_attachment.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/volume_snapshot.rb +21 -0
- data/lib/oneview-sdk/resource/api300/c7000/volume_template.rb +32 -0
- data/lib/oneview-sdk/resource/api300/synergy.rb +27 -0
- data/lib/oneview-sdk/resource/api300/synergy/connection_template.rb +30 -0
- data/lib/oneview-sdk/resource/api300/synergy/datacenter.rb +22 -0
- data/lib/oneview-sdk/resource/api300/synergy/drive_enclosure.rb +71 -0
- data/lib/oneview-sdk/resource/api300/synergy/enclosure.rb +110 -0
- data/lib/oneview-sdk/resource/api300/synergy/enclosure_group.rb +43 -0
- data/lib/oneview-sdk/resource/api300/synergy/ethernet_network.rb +35 -0
- data/lib/oneview-sdk/resource/api300/synergy/fabric.rb +46 -0
- data/lib/oneview-sdk/resource/api300/synergy/fc_network.rb +37 -0
- data/lib/oneview-sdk/resource/api300/synergy/fcoe_network.rb +35 -0
- data/lib/oneview-sdk/resource/api300/synergy/firmware_bundle.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/firmware_driver.rb +22 -0
- data/lib/oneview-sdk/resource/api300/synergy/interconnect.rb +43 -0
- data/lib/oneview-sdk/resource/api300/synergy/lig_uplink_set.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/logical_downlink.rb +34 -0
- data/lib/oneview-sdk/resource/api300/synergy/logical_enclosure.rb +59 -0
- data/lib/oneview-sdk/resource/api300/synergy/logical_interconnect.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/logical_interconnect_group.rb +119 -0
- data/lib/oneview-sdk/resource/api300/synergy/logical_switch.rb +33 -0
- data/lib/oneview-sdk/resource/api300/synergy/logical_switch_group.rb +45 -0
- data/lib/oneview-sdk/resource/{firmware_driver.rb → api300/synergy/managed_san.rb} +7 -17
- data/lib/oneview-sdk/resource/api300/synergy/network_set.rb +37 -0
- data/lib/oneview-sdk/resource/api300/synergy/power_device.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/rack.rb +22 -0
- data/lib/oneview-sdk/resource/api300/synergy/resource.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/san_manager.rb +22 -0
- data/lib/oneview-sdk/resource/api300/synergy/sas_interconnect.rb +87 -0
- data/lib/oneview-sdk/resource/api300/synergy/sas_logical_interconnect.rb +110 -0
- data/lib/oneview-sdk/resource/api300/synergy/sas_logical_interconnect_group.rb +87 -0
- data/lib/oneview-sdk/resource/api300/synergy/server_hardware.rb +30 -0
- data/lib/oneview-sdk/resource/api300/synergy/server_hardware_type.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/server_profile.rb +78 -0
- data/lib/oneview-sdk/resource/api300/synergy/server_profile_template.rb +34 -0
- data/lib/oneview-sdk/resource/api300/synergy/storage_pool.rb +22 -0
- data/lib/oneview-sdk/resource/api300/synergy/storage_system.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/switch.rb +37 -0
- data/lib/oneview-sdk/resource/api300/synergy/unmanaged_device.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/uplink_set.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/volume.rb +22 -0
- data/lib/oneview-sdk/resource/api300/synergy/volume_attachment.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/volume_snapshot.rb +21 -0
- data/lib/oneview-sdk/resource/api300/synergy/volume_template.rb +32 -0
- data/lib/oneview-sdk/rest.rb +7 -10
- data/lib/oneview-sdk/ssl_helper.rb +3 -3
- data/lib/oneview-sdk/version.rb +1 -1
- data/oneview-sdk.gemspec +5 -5
- metadata +126 -47
- data/.gitattributes +0 -2
- data/.gitignore +0 -29
- data/.rubocop.yml +0 -80
- data/.travis.yml +0 -12
- data/lib/oneview-sdk/resource/connection_template.rb +0 -48
- data/lib/oneview-sdk/resource/datacenter.rb +0 -77
- data/lib/oneview-sdk/resource/enclosure.rb +0 -191
- data/lib/oneview-sdk/resource/enclosure_group.rb +0 -82
- data/lib/oneview-sdk/resource/ethernet_network.rb +0 -56
- data/lib/oneview-sdk/resource/fabric.rb +0 -41
- data/lib/oneview-sdk/resource/fc_network.rb +0 -30
- data/lib/oneview-sdk/resource/firmware_bundle.rb +0 -50
- data/lib/oneview-sdk/resource/interconnect.rb +0 -107
- data/lib/oneview-sdk/resource/lig_uplink_set.rb +0 -80
- data/lib/oneview-sdk/resource/logical_downlink.rb +0 -53
- data/lib/oneview-sdk/resource/logical_enclosure.rb +0 -86
- data/lib/oneview-sdk/resource/logical_interconnect.rb +0 -247
- data/lib/oneview-sdk/resource/logical_interconnect_group.rb +0 -112
- data/lib/oneview-sdk/resource/logical_switch.rb +0 -184
- data/lib/oneview-sdk/resource/logical_switch_group.rb +0 -66
- data/lib/oneview-sdk/resource/managed_san.rb +0 -79
- data/lib/oneview-sdk/resource/network_set.rb +0 -64
- data/lib/oneview-sdk/resource/power_device.rb +0 -174
- data/lib/oneview-sdk/resource/rack.rb +0 -83
- data/lib/oneview-sdk/resource/san_manager.rb +0 -88
- data/lib/oneview-sdk/resource/server_hardware.rb +0 -209
- data/lib/oneview-sdk/resource/server_hardware_type.rb +0 -58
- data/lib/oneview-sdk/resource/server_profile.rb +0 -380
- data/lib/oneview-sdk/resource/server_profile_template.rb +0 -213
- data/lib/oneview-sdk/resource/storage_pool.rb +0 -63
- data/lib/oneview-sdk/resource/storage_system.rb +0 -113
- data/lib/oneview-sdk/resource/switch.rb +0 -86
- data/lib/oneview-sdk/resource/unmanaged_device.rb +0 -55
- data/lib/oneview-sdk/resource/uplink_set.rb +0 -79
- data/lib/oneview-sdk/resource/volume.rb +0 -188
- data/lib/oneview-sdk/resource/volume_attachment.rb +0 -79
- data/lib/oneview-sdk/resource/volume_snapshot.rb +0 -46
- data/lib/oneview-sdk/resource/volume_template.rb +0 -95
|
@@ -0,0 +1,50 @@
|
|
|
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_relative 'resource'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API200
|
|
16
|
+
# Volume snapshot resource implementation
|
|
17
|
+
class VolumeSnapshot < Resource
|
|
18
|
+
BASE_URI = nil
|
|
19
|
+
|
|
20
|
+
# Create a resource object, associate it with a client, and set its properties.
|
|
21
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
22
|
+
# @param [Hash] params The options for this resource (key-value pairs)
|
|
23
|
+
# @param [Integer] api_ver The api version to use when interracting with this resource.
|
|
24
|
+
def initialize(client, params = {}, api_ver = nil)
|
|
25
|
+
super
|
|
26
|
+
# Default values
|
|
27
|
+
@data['type'] ||= 'Snapshot'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Method is not available
|
|
31
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
32
|
+
def create
|
|
33
|
+
unavailable_method
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Method is not available
|
|
37
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
38
|
+
def update
|
|
39
|
+
unavailable_method
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Sets the volume
|
|
43
|
+
# @param [OneviewSDK::Volume] volume Volume
|
|
44
|
+
def set_volume(volume)
|
|
45
|
+
volume.retrieve! unless volume['uri']
|
|
46
|
+
@data['storageVolumeUri'] = volume['uri']
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,99 @@
|
|
|
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_relative 'resource'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API200
|
|
16
|
+
# Volume template resource implementation
|
|
17
|
+
class VolumeTemplate < Resource
|
|
18
|
+
BASE_URI = '/rest/storage-volume-templates'.freeze
|
|
19
|
+
|
|
20
|
+
# Create the client object, establishes connection, and set up the logging and api version.
|
|
21
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
22
|
+
# @param [Hash] params The options for this resource (key-value pairs)
|
|
23
|
+
# @param [Integer] api_ver The api version to use when interracting with this resource.
|
|
24
|
+
# Defaults to client.api_version if exists, or OneviewSDK::Client::DEFAULT_API_VERSION.
|
|
25
|
+
# Defaults type to StorageVolumeTemplate when API version is 120
|
|
26
|
+
# Defaults type to StorageVolumeTemplateV3 when API version is 200
|
|
27
|
+
def initialize(client, params = {}, api_ver = nil)
|
|
28
|
+
super
|
|
29
|
+
# Default values:
|
|
30
|
+
@data['provisioning'] ||= {}
|
|
31
|
+
@data['type'] ||= 'StorageVolumeTemplateV3'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Create the resource on OneView using the current data
|
|
35
|
+
# @note Calls refresh method to set additional data
|
|
36
|
+
# @raise [OneviewSDK::IncompleteResource] if the client is not set
|
|
37
|
+
# @raise [StandardError] if the resource creation fails
|
|
38
|
+
# @return [Resource] self
|
|
39
|
+
def create
|
|
40
|
+
ensure_client
|
|
41
|
+
response = @client.rest_post(self.class::BASE_URI, { 'Accept-Language' => 'en_US', 'body' => @data }, @api_version)
|
|
42
|
+
body = @client.response_handler(response)
|
|
43
|
+
set_all(body)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Deletes the volume template from OneView
|
|
47
|
+
# @return [TrueClass] if the volume template was deleted successfully
|
|
48
|
+
def delete
|
|
49
|
+
ensure_client && ensure_uri
|
|
50
|
+
response = @client.rest_delete(@data['uri'], { 'Accept-Language' => 'en_US' }, @api_version)
|
|
51
|
+
@client.response_handler(response)
|
|
52
|
+
true
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Updates the volume template from OneView
|
|
56
|
+
# @return [Resource] self
|
|
57
|
+
def update(attributes = {})
|
|
58
|
+
set_all(attributes)
|
|
59
|
+
ensure_client && ensure_uri
|
|
60
|
+
response = @client.rest_put(@data['uri'], { 'Accept-Language' => 'en_US', 'body' => @data }, @api_version)
|
|
61
|
+
@client.response_handler(response)
|
|
62
|
+
self
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Sets the storage pool
|
|
66
|
+
# @param [Boolean] shareable
|
|
67
|
+
# @param [String] provisionType 'Thin' or 'Full'
|
|
68
|
+
# @param [String] capacity (in bytes)
|
|
69
|
+
# @param [OneviewSDK::StoragePool] storage_pool
|
|
70
|
+
def set_provisioning(shareable, provisionType, capacity, storage_pool)
|
|
71
|
+
@data['provisioning']['shareable'] = shareable
|
|
72
|
+
@data['provisioning']['provisionType'] = provisionType
|
|
73
|
+
@data['provisioning']['capacity'] = capacity
|
|
74
|
+
storage_pool.retrieve! unless storage_pool['uri']
|
|
75
|
+
@data['provisioning']['storagePoolUri'] = storage_pool['uri']
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Sets the storage system
|
|
79
|
+
# @param [OneviewSDK::StorageSystem] storage_system Storage System to be used to create the template
|
|
80
|
+
def set_storage_system(storage_system)
|
|
81
|
+
storage_system.retrieve! unless storage_system['uri']
|
|
82
|
+
@data['storageSystemUri'] = storage_system['uri']
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Sets the snapshot pool
|
|
86
|
+
# @param [OneviewSDK::StoragePool] storage_pool Storage Pool to generate the template
|
|
87
|
+
def set_snapshot_pool(storage_pool)
|
|
88
|
+
storage_pool.retrieve! unless storage_pool['uri']
|
|
89
|
+
@data['snapshotPoolUri'] = storage_pool['uri']
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Gets the connectable volume templates by its attributes
|
|
93
|
+
# @param [Hash] attributes Hash containing the attributes name and value
|
|
94
|
+
def get_connectable_volume_templates(attributes = {})
|
|
95
|
+
OneviewSDK::Resource.find_by(@client, attributes, BASE_URI + '/connectable-volume-templates')
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
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
|
+
# Module for API v300
|
|
14
|
+
module API300
|
|
15
|
+
SUPPORTED_VARIANTS = %w(C7000 Synergy).freeze
|
|
16
|
+
DEFAULT_VARIANT = 'C7000'.freeze
|
|
17
|
+
@variant = DEFAULT_VARIANT
|
|
18
|
+
@variant_updated = false # Whether or not the API variant has been set by the user
|
|
19
|
+
|
|
20
|
+
# Get resource class that matches the type given
|
|
21
|
+
# @param [String] type Name of the desired class type
|
|
22
|
+
# @param [String] variant Variant (C7000 or Synergy)
|
|
23
|
+
# @return [Class] Resource class or nil if not found
|
|
24
|
+
def self.resource_named(type, variant = @variant)
|
|
25
|
+
raise "API300 variant #{variant} is not supported!" unless SUPPORTED_VARIANTS.include?(variant)
|
|
26
|
+
new_type = type.to_s.downcase.gsub(/[ -_]/, '')
|
|
27
|
+
api_module = OneviewSDK::API300.const_get(variant)
|
|
28
|
+
api_module.constants.each do |c|
|
|
29
|
+
klass = api_module.const_get(c)
|
|
30
|
+
next unless klass.is_a?(Class) && klass < OneviewSDK::Resource
|
|
31
|
+
name = klass.name.split('::').last.downcase.delete('_').delete('-')
|
|
32
|
+
return klass if new_type =~ /^#{name}[s]?$/
|
|
33
|
+
end
|
|
34
|
+
nil
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Get the current API300 variant
|
|
38
|
+
def self.variant
|
|
39
|
+
@variant
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Has the API300 variant been set by the user?
|
|
43
|
+
# @return [TrueClass, FalseClass]
|
|
44
|
+
def self.variant_updated?
|
|
45
|
+
@variant_updated
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Sets the API300 variant
|
|
49
|
+
def self.variant=(variant)
|
|
50
|
+
raise "API300 variant #{variant} is not supported!" unless SUPPORTED_VARIANTS.include?(variant)
|
|
51
|
+
@variant_updated = true
|
|
52
|
+
@variant = variant
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Helps redirect resources to the correct API300 variant
|
|
56
|
+
def self.const_missing(const)
|
|
57
|
+
api300_module = OneviewSDK::API300.const_get(@variant.to_s)
|
|
58
|
+
api300_module.const_get(const)
|
|
59
|
+
rescue NameError
|
|
60
|
+
raise NameError, "The #{const} method or resource does not exist for OneView API300 variant #{@variant}."
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Load all API300-specific resources:
|
|
66
|
+
Dir[File.dirname(__FILE__) + '/api300/*.rb'].each { |file| require file }
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
module API300
|
|
14
|
+
# Module for API300 C7000
|
|
15
|
+
module C7000
|
|
16
|
+
# Get resource class that matches the type given
|
|
17
|
+
# @param [String] type Name of the desired class type
|
|
18
|
+
# @return [Class] Resource class or nil if not found
|
|
19
|
+
def self.resource_named(type)
|
|
20
|
+
OneviewSDK::API300.resource_named(type, 'C7000')
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Load all API-specific resources:
|
|
27
|
+
Dir[File.dirname(__FILE__) + '/c7000/*.rb'].each { |file| require file }
|
|
@@ -0,0 +1,30 @@
|
|
|
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_relative '../../api200/connection_template'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module C7000
|
|
17
|
+
# Connection template resource implementation for API300 C7000
|
|
18
|
+
class ConnectionTemplate < OneviewSDK::API200::ConnectionTemplate
|
|
19
|
+
|
|
20
|
+
# Get the default network connection template
|
|
21
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
22
|
+
# @return [OneviewSDK::API300::C7000::ConnectionTemplate] Connection template
|
|
23
|
+
def self.get_default(client)
|
|
24
|
+
response = client.rest_get(BASE_URI + '/defaultConnectionTemplate')
|
|
25
|
+
OneviewSDK::API300::C7000::ConnectionTemplate.new(client, client.response_handler(response))
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
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_relative '../../api200/datacenter'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module C7000
|
|
17
|
+
# Datacenter resource implementation for API300 C7000
|
|
18
|
+
class Datacenter < OneviewSDK::API200::Datacenter
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
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_relative '../../api200/enclosure'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module C7000
|
|
17
|
+
# Enclosure resource implementation for API300 C7000
|
|
18
|
+
class Enclosure < OneviewSDK::API200::Enclosure
|
|
19
|
+
|
|
20
|
+
# Create a resource object, associate it with a client, and set its properties.
|
|
21
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
22
|
+
# @param [Hash] params The options for this resource (key-value pairs)
|
|
23
|
+
# @param [Integer] api_ver The api version to use when interracting with this resource.
|
|
24
|
+
def initialize(client, params = {}, api_ver = nil)
|
|
25
|
+
@data ||= {}
|
|
26
|
+
# Default values:
|
|
27
|
+
@data['type'] ||= 'EnclosureV300'
|
|
28
|
+
super
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Update specific attributes of a given enclosure
|
|
32
|
+
# @param [String] operation Operation to be performed
|
|
33
|
+
# @param [String] path Path
|
|
34
|
+
# @param [String] value Value
|
|
35
|
+
def patch(operation, path, value = nil)
|
|
36
|
+
ensure_client && ensure_uri
|
|
37
|
+
body = if value
|
|
38
|
+
{ op: operation, path: path, value: value }
|
|
39
|
+
else
|
|
40
|
+
{ op: operation, path: path }
|
|
41
|
+
end
|
|
42
|
+
response = @client.rest_patch(@data['uri'], { 'body' => [body] }, @api_version)
|
|
43
|
+
@client.response_handler(response)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
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_relative '../../api200/enclosure_group'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module C7000
|
|
17
|
+
# Enclosure group resource implementation on API300 C7000
|
|
18
|
+
class EnclosureGroup < OneviewSDK::API200::EnclosureGroup
|
|
19
|
+
|
|
20
|
+
# Create a resource object, associate it with a client, and set its properties.
|
|
21
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
22
|
+
# @param [Hash] params The options for this resource (key-value pairs)
|
|
23
|
+
# @param [Integer] api_ver The api version to use when interracting with this resource.
|
|
24
|
+
def initialize(client, params = {}, api_ver = nil)
|
|
25
|
+
@data ||= {}
|
|
26
|
+
# Default values:
|
|
27
|
+
@data['type'] ||= 'EnclosureGroupV300'
|
|
28
|
+
@data['stackingMode'] ||= 'Enclosure'
|
|
29
|
+
@data['interconnectBayMappingCount'] ||= 8
|
|
30
|
+
create_interconnect_bay_mapping unless @data['interconnectBayMappings']
|
|
31
|
+
super
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
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_relative '../../api200/ethernet_network'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module C7000
|
|
17
|
+
# Ethernet network resource implementation for API300 C7000
|
|
18
|
+
class EthernetNetwork < OneviewSDK::API200::EthernetNetwork
|
|
19
|
+
|
|
20
|
+
# Create a resource object, associate it with a client, and set its properties.
|
|
21
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
22
|
+
# @param [Hash] params The options for this resource (key-value pairs)
|
|
23
|
+
# @param [Integer] api_ver The api version to use when interracting with this resource.
|
|
24
|
+
def initialize(client, params = {}, api_ver = nil)
|
|
25
|
+
@data ||= {}
|
|
26
|
+
# Default values:
|
|
27
|
+
@data['ethernetNetworkType'] ||= 'Tagged'
|
|
28
|
+
@data['type'] ||= 'ethernet-networkV300'
|
|
29
|
+
super
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
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_relative '../../api200/fabric'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module C7000
|
|
17
|
+
# Fabric resource implementation for API300 C7000
|
|
18
|
+
class Fabric < OneviewSDK::API200::Fabric
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|