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,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/fc_network'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
# FC network resource implementation for API300 Synergy
|
|
18
|
+
class FCNetwork < OneviewSDK::API200::FCNetwork
|
|
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['autoLoginRedistribution'] ||= false
|
|
28
|
+
@data['type'] ||= 'fc-networkV300'
|
|
29
|
+
@data['linkStabilityTime'] ||= 30
|
|
30
|
+
@data['fabricType'] ||= 'FabricAttach'
|
|
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/fcoe_network'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
# FCoE network resource implementation for API300 Synergy
|
|
18
|
+
class FCoENetwork < OneviewSDK::API200::FCoENetwork
|
|
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['connectionTemplateUri'] ||= nil
|
|
28
|
+
@data['type'] ||= 'fcoe-networkV300'
|
|
29
|
+
super
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
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/firmware_bundle'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
class FirmwareBundle < OneviewSDK::API200::FirmwareBundle
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
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/firmware_driver'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
# FirmwareDriver resource implementation for API300 Synergy
|
|
18
|
+
class FirmwareDriver < OneviewSDK::API200::FirmwareDriver
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
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/interconnect'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
# Interconnect resource implementation for synergy on api300
|
|
18
|
+
class Interconnect < OneviewSDK::API200::Interconnect
|
|
19
|
+
LINK_TOPOLOGY_URI = '/rest/interconnect-link-topologies'.freeze
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# Retrieves the interconnect link topologies
|
|
23
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
24
|
+
# @return [Array] All the Interconnect Link Topologies
|
|
25
|
+
def self.get_link_topologies(client)
|
|
26
|
+
response = client.rest_get(LINK_TOPOLOGY_URI)
|
|
27
|
+
response = client.response_handler(response)
|
|
28
|
+
response['members']
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Retrieves the interconnect link topology with the name
|
|
32
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
33
|
+
# @param [String] name Switch type name
|
|
34
|
+
# @return [Array] Switch type
|
|
35
|
+
def self.get_link_topology(client, name)
|
|
36
|
+
results = get_link_topologies(client)
|
|
37
|
+
results.find { |interconnect_link_topology| interconnect_link_topology['name'] == name }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
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/lig_uplink_set'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
class LIGUplinkSet < OneviewSDK::API200::LIGUplinkSet
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
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/logical_downlink'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
# Logical downlink resource implementation for API300 Synergy
|
|
18
|
+
class LogicalDownlink < OneviewSDK::API200::LogicalDownlink
|
|
19
|
+
|
|
20
|
+
# Method is not available
|
|
21
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
22
|
+
def self.get_without_ethernet
|
|
23
|
+
raise MethodUnavailable, 'The method #self.get_without_ethernet is unavailable for this resource'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Method is not available
|
|
27
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
28
|
+
def get_without_ethernet
|
|
29
|
+
unavailable_method
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
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 '../c7000/logical_enclosure'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
# Logical Enclosure resource implementation on API300 Synergy
|
|
18
|
+
class LogicalEnclosure < OneviewSDK::API300::C7000::LogicalEnclosure
|
|
19
|
+
|
|
20
|
+
def initialize(client, params = {}, api_ver = nil)
|
|
21
|
+
super
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Sets the enclosure group for the logical enclosure
|
|
25
|
+
# @param [OneviewSDK::API300::Synergy::EnclosureGroup] enclosure_group Enclosure Group that the Server is a member
|
|
26
|
+
def set_enclosure_group(enclosure_group)
|
|
27
|
+
self['enclosureGroupUri'] = enclosure_group['uri'] if enclosure_group['uri'] || enclosure_group.retrieve!
|
|
28
|
+
raise "Resource #{enclosure_group['name']} could not be found!" unless enclosure_group['uri']
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Sets a list of enclosures uris for the logical enclosure
|
|
32
|
+
# @param [Array] Array of OneviewSDK::API300::Synergy::Enclosure
|
|
33
|
+
def set_enclosures(enclosures = [])
|
|
34
|
+
enclosureUris = []
|
|
35
|
+
enclosures.each do |enclosure|
|
|
36
|
+
enclosureUris.push(enclosure['uri']) if enclosure['uri'] || enclosure.retrieve!
|
|
37
|
+
raise "Resource #{enclosure['name']} could not be found!" unless enclosure['uri']
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
raise 'EnclosureUris is empty!' if enclosureUris.empty?
|
|
41
|
+
self['enclosureUris'] = enclosureUris unless enclosureUris.empty?
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Sets the firmware driver uri for the logical enclosure
|
|
45
|
+
# @param [OneviewSDK::API300::Synergy::FirmwareDriver] firmware The firmware driver
|
|
46
|
+
def set_firmware_driver(firmware)
|
|
47
|
+
self['firmwareBaselineUri'] = firmware['uri'] if firmware['uri'] || firmware.retrieve!
|
|
48
|
+
raise "Resource #{firmware['customBaselineName']} could not be found!" unless firmware['uri']
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Method is not available
|
|
52
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
53
|
+
def set_script
|
|
54
|
+
unavailable_method
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
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/logical_interconnect'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
class LogicalInterconnect < OneviewSDK::API200::LogicalInterconnect
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,119 @@
|
|
|
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 API300
|
|
16
|
+
module Synergy
|
|
17
|
+
# Logical interconnect group resource implementation
|
|
18
|
+
class LogicalInterconnectGroup < Resource
|
|
19
|
+
BASE_URI = '/rest/logical-interconnect-groups'.freeze
|
|
20
|
+
|
|
21
|
+
# Create a resource object, associate it with a client, and set its properties.
|
|
22
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
23
|
+
# @param [Hash] params The options for this resource (key-value pairs)
|
|
24
|
+
# @param [Integer] api_ver The api version to use when interracting with this resource.
|
|
25
|
+
def initialize(client, params = {}, api_ver = nil)
|
|
26
|
+
super
|
|
27
|
+
# Default values:
|
|
28
|
+
@data['enclosureType'] ||= 'SY12000'
|
|
29
|
+
@data['enclosureIndexes'] ||= [1]
|
|
30
|
+
@data['state'] ||= 'Active'
|
|
31
|
+
@data['uplinkSets'] ||= []
|
|
32
|
+
@data['internalNetworkUris'] ||= []
|
|
33
|
+
@data['type'] ||= 'logical-interconnect-groupV300'
|
|
34
|
+
@data['interconnectBaySet'] ||= 1
|
|
35
|
+
@data['interconnectMapTemplate'] ||= {}
|
|
36
|
+
@data['interconnectMapTemplate']['interconnectMapEntryTemplates'] ||= []
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Get the logical interconnect group default settings
|
|
40
|
+
# @return [Hash] The logical interconnect group settings
|
|
41
|
+
def self.get_default_settings(client)
|
|
42
|
+
response = client.rest_get(BASE_URI + '/defaultSettings')
|
|
43
|
+
client.response_handler(response)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Gets the logical interconnect group settings
|
|
47
|
+
# @return [Hash] The logical interconnect group settings
|
|
48
|
+
def get_settings
|
|
49
|
+
get_uri = @data['uri'] + '/settings'
|
|
50
|
+
response = @client.rest_get(get_uri, @api_version)
|
|
51
|
+
@client.response_handler(response)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Adds a uplink set to the LIG
|
|
55
|
+
# @param [OneviewSDK::UplinkSet] uplink_set Uplink set
|
|
56
|
+
def add_uplink_set(uplink_set)
|
|
57
|
+
@data['uplinkSets'] << uplink_set.data unless @data['uplinkSets'].include?(uplink_set.data)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Adds an internal network to the LIG
|
|
61
|
+
# @param [OneviewSDK::EthernetNetwork] network Network object
|
|
62
|
+
def add_internal_network(network)
|
|
63
|
+
@data['internalNetworkUris'] << network['uri'] unless @data['internalNetworkUris'].include?(network['uri'])
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Adds an interconnect
|
|
67
|
+
# @param [Fixnum] bay Bay number
|
|
68
|
+
# @param [String] type Interconnect type
|
|
69
|
+
# @raise [StandardError] if a invalid type is given then raises an error
|
|
70
|
+
def add_interconnect(bay, type, logical_downlink = nil, enclosure_index = 1)
|
|
71
|
+
parse_interconnect_map_template(bay, enclosure_index)
|
|
72
|
+
@data['interconnectMapTemplate']['interconnectMapEntryTemplates'].each do |entry|
|
|
73
|
+
# Default value in case of no specified logical downlink
|
|
74
|
+
entry['logicalDownlinkUri'] = nil
|
|
75
|
+
if logical_downlink
|
|
76
|
+
ld = OneviewSDK::API300::Synergy::LogicalDownlink.find_by(@client, name: logical_downlink).first['uri']
|
|
77
|
+
entry['logicalDownlinkUri'] = ld
|
|
78
|
+
end
|
|
79
|
+
entry['logicalLocation']['locationEntries'].each do |location|
|
|
80
|
+
if location['type'] == 'Bay' && location['relativeValue'] == bay
|
|
81
|
+
entry['permittedInterconnectTypeUri'] = OneviewSDK::API300::Synergy::Interconnect.get_type(@client, type)['uri']
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
rescue StandardError
|
|
86
|
+
raise 'Interconnect type or Logical Downlink not found!'
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
private
|
|
90
|
+
|
|
91
|
+
# Parse interconnect map template structure for specified bay
|
|
92
|
+
def parse_interconnect_map_template(bay, enclosure_index)
|
|
93
|
+
entry = {
|
|
94
|
+
'logicalLocation' => {
|
|
95
|
+
'locationEntries' => [
|
|
96
|
+
{ 'relativeValue' => bay, 'type' => 'Bay' },
|
|
97
|
+
{ 'relativeValue' => 1, 'type' => 'Enclosure' }
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
'enclosureIndex' => enclosure_index,
|
|
101
|
+
'permittedInterconnectTypeUri' => nil
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
# If no interconnect map entry templates exist yet, add the specified entry
|
|
105
|
+
first_run = @data['interconnectMapTemplate']['interconnectMapEntryTemplates'].empty?
|
|
106
|
+
return @data['interconnectMapTemplate']['interconnectMapEntryTemplates'] << entry if first_run
|
|
107
|
+
|
|
108
|
+
# Verifies if the bay specified in the entry is already added, otherwise adds it
|
|
109
|
+
@data['interconnectMapTemplate']['interconnectMapEntryTemplates'].each do |single_entry|
|
|
110
|
+
single_entry['logicalLocation']['locationEntries'].each do |location|
|
|
111
|
+
return true if location['type'] == 'Bay' && location['relativeValue'] == bay
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
@data['interconnectMapTemplate']['interconnectMapEntryTemplates'] << entry
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
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 Synergy
|
|
15
|
+
# Logical switch resource implementation for API300 Synergy (internal link set endpoints only)
|
|
16
|
+
class LogicalSwitch
|
|
17
|
+
# Retrieves all internal link sets
|
|
18
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
19
|
+
def self.get_internal_link_sets(client)
|
|
20
|
+
OneviewSDK::API300::C7000::LogicalSwitch.get_internal_link_sets(client)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Retrieves the internal link set with name
|
|
24
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
25
|
+
# @param [String] name The internal link set name
|
|
26
|
+
# @return [Array] Internal Link Set Array
|
|
27
|
+
def self.get_internal_link_set(client, name)
|
|
28
|
+
OneviewSDK::API300::C7000::LogicalSwitch.get_internal_link_set(client, name)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|