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,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/volume_attachment'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module C7000
|
|
17
|
+
class VolumeAttachment < OneviewSDK::API200::VolumeAttachment
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
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/volume_snapshot'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module C7000
|
|
17
|
+
class VolumeSnapshot < OneviewSDK::API200::VolumeSnapshot
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
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/volume_template'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module C7000
|
|
17
|
+
# Volume Template resource implementation for API300 Synergy
|
|
18
|
+
class VolumeTemplate < OneviewSDK::API200::VolumeTemplate
|
|
19
|
+
# Create the client object, establishes connection, and set up the logging and api version.
|
|
20
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
21
|
+
# @param [Hash] params The options for this resource (key-value pairs)
|
|
22
|
+
# @param [Integer] api_ver The api version to use when interracting with this resource.
|
|
23
|
+
# Defaults to client.api_version if exists, or OneviewSDK::Client::DEFAULT_API_VERSION.
|
|
24
|
+
# Defaults type to StorageVolumeTemplate when API version is 120
|
|
25
|
+
# Defaults type to StorageVolumeTemplateV3 when API version is 200
|
|
26
|
+
def initialize(client, params = {}, api_ver = nil)
|
|
27
|
+
super
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -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 Synergy
|
|
15
|
+
module Synergy
|
|
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, 'Synergy')
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Load all API-specific resources:
|
|
27
|
+
Dir[File.dirname(__FILE__) + '/synergy/*.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 Synergy
|
|
17
|
+
# Connection template resource implementation for API300 Synergy
|
|
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::Synergy::ConnectionTemplate] Connection template
|
|
23
|
+
def self.get_default(client)
|
|
24
|
+
response = client.rest_get(BASE_URI + '/defaultConnectionTemplate')
|
|
25
|
+
OneviewSDK::API300::Synergy::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 Synergy
|
|
17
|
+
# Datacenter resource implementation for API300 Synergy
|
|
18
|
+
class Datacenter < OneviewSDK::API200::Datacenter
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
# Drive enclosure resource implementation for API300 Synergy
|
|
18
|
+
class DriveEnclosure < Resource
|
|
19
|
+
BASE_URI = '/rest/drive-enclosures'.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
|
+
end
|
|
28
|
+
|
|
29
|
+
# Method is unavailable
|
|
30
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
31
|
+
def create
|
|
32
|
+
unavailable_method
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Method is unavailable
|
|
36
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
37
|
+
def delete
|
|
38
|
+
unavailable_method
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Method is unavailable
|
|
42
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
43
|
+
def update
|
|
44
|
+
unavailable_method
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Retrieve the drive enclosure I/O adapter port to SAS interconnect port connectivity
|
|
48
|
+
def get_port_map
|
|
49
|
+
response = @client.rest_get(@data['uri'] + '/port-map')
|
|
50
|
+
response.body
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Refresh a drive enclosure
|
|
54
|
+
# @param [String] state Indicates if the resource is currently refreshing
|
|
55
|
+
def set_refresh_state(state)
|
|
56
|
+
response = @client.rest_put(@data['uri'] + '/refreshState', 'body' => { refreshState: state })
|
|
57
|
+
@client.response_handler(response)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Update specific attributes of a given drive enclosure
|
|
61
|
+
# @param [String] operation Operation to be performed
|
|
62
|
+
# @param [String] path Path
|
|
63
|
+
# @param [String] value Value
|
|
64
|
+
def patch(operation, path, value)
|
|
65
|
+
response = @client.rest_patch(@data['uri'], 'body' => [{ op: operation, path: path, value: value }])
|
|
66
|
+
@client.response_handler(response)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
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 Synergy
|
|
17
|
+
# Enclosure resource implementation for API300 Synergy
|
|
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
|
+
# @note Renames the enclosures only if @data['name']. Pattern used is: <@data['name']>+<1..number of enclosures added>.
|
|
25
|
+
def initialize(client, params = {}, api_ver = nil)
|
|
26
|
+
@data ||= {}
|
|
27
|
+
# Default values:
|
|
28
|
+
@data['type'] ||= 'EnclosureV300'
|
|
29
|
+
super
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Claim/configure the enclosure and its components to the appliance
|
|
33
|
+
# @note Calls the update_enclosure_names method to set the enclosure names
|
|
34
|
+
# @return [Array<OneviewSDK:API300:Synergy::Enclosure>] containing the added enclosures
|
|
35
|
+
def add
|
|
36
|
+
ensure_client
|
|
37
|
+
required_attributes = %w(hostname)
|
|
38
|
+
required_attributes.each { |k| raise IncompleteResource, "Missing required attribute: '#{k}'" unless @data.key?(k) }
|
|
39
|
+
|
|
40
|
+
temp_data = @data.select { |k, _v| required_attributes.include?(k) }
|
|
41
|
+
response = @client.rest_post(self.class::BASE_URI, { 'body' => temp_data }, @api_version)
|
|
42
|
+
@client.response_handler(response)
|
|
43
|
+
|
|
44
|
+
# Renames the enclosures if the @data['name'] is not nil, otherwise only returns the enclosures
|
|
45
|
+
@data['name'] ||= ''
|
|
46
|
+
OneviewSDK::API300::Synergy::Enclosure.update_enclosure_names(@client, @data['hostname'], @data['name'])
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Update specific attributes of a given enclosure
|
|
50
|
+
# @param [String] operation Operation to be performed
|
|
51
|
+
# @param [String] path Path
|
|
52
|
+
# @param [String] value Value
|
|
53
|
+
def patch(operation, path, value = nil)
|
|
54
|
+
ensure_client && ensure_uri
|
|
55
|
+
body = if value
|
|
56
|
+
{ op: operation, path: path, value: value }
|
|
57
|
+
else
|
|
58
|
+
{ op: operation, path: path }
|
|
59
|
+
end
|
|
60
|
+
response = @client.rest_patch(@data['uri'], { 'body' => [body] }, @api_version)
|
|
61
|
+
@client.response_handler(response)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Method is not available
|
|
65
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
66
|
+
def set_environmental_configuration
|
|
67
|
+
unavailable_method
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Method is not available
|
|
71
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
72
|
+
def set_enclosure_group
|
|
73
|
+
unavailable_method
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Method for renaming all enclosures that share the same frameLinkModuleDomain.
|
|
77
|
+
# The naming pattern for the enclosures is <name><1..number of enclosures>.
|
|
78
|
+
# @param [OneviewSDK::Client] client The client object for the OneView appliance
|
|
79
|
+
# @param [String] hostname The ipv6 of the enclosure to be added
|
|
80
|
+
# @param [String] name The name to be used for renaming the enclosures
|
|
81
|
+
# @return [Array<OneviewSDK:API300:Synergy::Enclosure>] which had their name changed
|
|
82
|
+
# @raise [OneviewSDK::IncompleteResource] if a client and hostname are nil
|
|
83
|
+
def self.update_enclosure_names(client, hostname, name = '')
|
|
84
|
+
raise IncompleteResource, 'Missing parameters for update_enclosure_names' unless client && hostname
|
|
85
|
+
frame_link = ''
|
|
86
|
+
|
|
87
|
+
# Retrieve the frameLinkModuleDomain of the specified enclosure, then use it to find all enclosures
|
|
88
|
+
# that share that frameLinkModuleDomain.
|
|
89
|
+
all_enclosures = OneviewSDK::API300::Synergy::Enclosure.find_by(client, {})
|
|
90
|
+
all_enclosures.each do |encl|
|
|
91
|
+
frame_link = encl['frameLinkModuleDomain'] if encl['managerBays'].first['ipAddress'] == hostname
|
|
92
|
+
end
|
|
93
|
+
enclosures = all_enclosures.select { |encl| encl['frameLinkModuleDomain'] == frame_link }
|
|
94
|
+
|
|
95
|
+
# Return enclosures without modifying them if a name has not been specified
|
|
96
|
+
return enclosures if name == ''
|
|
97
|
+
|
|
98
|
+
# Updates the enclosure names and return the array containing the enclosures
|
|
99
|
+
number_of_enclosures = enclosures.count
|
|
100
|
+
enclosures.each do |encl|
|
|
101
|
+
encl['name'] = "#{name}#{number_of_enclosures}"
|
|
102
|
+
encl.update
|
|
103
|
+
number_of_enclosures -= 1
|
|
104
|
+
end
|
|
105
|
+
enclosures
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
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/enclosure_group'
|
|
13
|
+
|
|
14
|
+
module OneviewSDK
|
|
15
|
+
module API300
|
|
16
|
+
module Synergy
|
|
17
|
+
# Enclosure group resource implementation on API300 Synergy
|
|
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['ipAddressingMode'] ||= 'DHCP'
|
|
30
|
+
@data['interconnectBayMappingCount'] ||= 6
|
|
31
|
+
super
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Method is not available
|
|
35
|
+
# @raise [OneviewSDK::MethodUnavailable] method is not available
|
|
36
|
+
def set_script
|
|
37
|
+
unavailable_method
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
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 Synergy
|
|
17
|
+
# Ethernet network resource implementation for API300 Synergy
|
|
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,46 @@
|
|
|
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 Synergy
|
|
17
|
+
# Fabric resource implementation for API300 Synergy
|
|
18
|
+
class Fabric < OneviewSDK::API200::Fabric
|
|
19
|
+
|
|
20
|
+
# Gets the reserved vlan ID range for the fabric
|
|
21
|
+
# @raise [OneviewSDK::IncompleteResource] if the client is not set
|
|
22
|
+
# @raise [OneviewSDK::IncompleteResource] if the uri is not set
|
|
23
|
+
# @raise [StandardError] if retrieving fails
|
|
24
|
+
# @return [OneviewSDK::Fabric] self
|
|
25
|
+
def get_reserved_vlan_range
|
|
26
|
+
ensure_client && ensure_uri
|
|
27
|
+
response = @client.rest_get("#{@data['uri']}/reserved-vlan-range", @api_version)
|
|
28
|
+
@client.response_handler(response)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Updates the reserved vlan ID range for the fabric.
|
|
32
|
+
# @param [Hash] params The options for this resource (key-value pairs)
|
|
33
|
+
# @raise [OneviewSDK::IncompleteResource] if the client is not set
|
|
34
|
+
# @raise [OneviewSDK::IncompleteResource] if the uri is not set
|
|
35
|
+
# @raise [StandardError] if the reapply fails
|
|
36
|
+
# @return [OneviewSDK::Fabric] self
|
|
37
|
+
def set_reserved_vlan_range(params)
|
|
38
|
+
ensure_client && ensure_uri
|
|
39
|
+
response = @client.rest_put("#{@data['uri']}/reserved-vlan-range", { 'body' => params }, @api_version)
|
|
40
|
+
@client.response_handler(response)
|
|
41
|
+
self
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|