xclarity_client 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/Gemfile +2 -0
- data/README.md +57 -4
- data/bin/mock_server.ru +1 -1
- data/docs/apib/cabinet.apib +63 -0
- data/docs/apib/canister.apib +69 -0
- data/docs/apib/chassis.apib +65 -1428
- data/docs/apib/cmm.apib +1102 -0
- data/docs/apib/fan.apib +383 -0
- data/docs/apib/fan_mux.apib +13 -0
- data/docs/apib/fan_muxes.apib +245 -0
- data/docs/apib/node.apib +8989 -869
- data/docs/apib/power_supply.apib +519 -0
- data/docs/apib/scalable_complex.apib +91 -0
- data/docs/apib/squisher.rb +26 -0
- data/docs/apib/switches.apib +1596 -0
- data/example/simple.rb +12 -5
- data/lib/xclarity_client.rb +20 -0
- data/lib/xclarity_client/cabinet.rb +14 -0
- data/lib/xclarity_client/cabinet_management.rb +59 -0
- data/lib/xclarity_client/canister.rb +20 -0
- data/lib/xclarity_client/canister_management.rb +60 -0
- data/lib/xclarity_client/chassi.rb +24 -0
- data/lib/xclarity_client/chassi_management.rb +64 -0
- data/lib/xclarity_client/client.rb +77 -1
- data/lib/xclarity_client/cmm.rb +18 -0
- data/lib/xclarity_client/cmm_management.rb +61 -0
- data/lib/xclarity_client/configuration.rb +13 -3
- data/lib/xclarity_client/fan.rb +20 -0
- data/lib/xclarity_client/fan_management.rb +83 -0
- data/lib/xclarity_client/fan_mux.rb +18 -0
- data/lib/xclarity_client/fan_mux_management.rb +82 -0
- data/lib/xclarity_client/node.rb +15 -94
- data/lib/xclarity_client/node_management.rb +62 -0
- data/lib/xclarity_client/power_supply.rb +18 -0
- data/lib/xclarity_client/power_supply_management.rb +89 -0
- data/lib/xclarity_client/scalable_complex.rb +16 -0
- data/lib/xclarity_client/scalable_complex_management.rb +83 -0
- data/lib/xclarity_client/switch.rb +19 -0
- data/lib/xclarity_client/switch_management.rb +59 -0
- data/lib/xclarity_client/version.rb +1 -1
- data/lib/xclarity_client/xclarity_base.rb +26 -1
- data/lib/xclarity_client/xclarity_resource.rb +20 -0
- data/xclarity_client.gemspec +1 -2
- metadata +34 -5
- data/lib/xclarity_client/chassis.rb +0 -7
@@ -1,14 +1,24 @@
|
|
1
|
+
require 'securerandom'
|
2
|
+
|
1
3
|
module XClarityClient
|
2
4
|
class Configuration
|
3
5
|
|
4
|
-
attr_accessor :username, :password, :host
|
6
|
+
attr_accessor :username, :password, :host, :csrf_token, :auth_type, :generated_token, :verify_ssl
|
5
7
|
|
6
8
|
def initialize(args)
|
9
|
+
|
7
10
|
args.each { |key, value| send("#{key}=", value) }
|
8
11
|
|
9
|
-
|
10
|
-
raise ArgumentError, "username, password, and
|
12
|
+
if [username, password, host, verify_ssl].any? { |item| item.nil? }
|
13
|
+
raise ArgumentError, "username, password, host, and verify_ssl must all be specified"
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
if not @auth_type.is_a?(String) or @auth_type == ''
|
18
|
+
@auth_type = 'basic_auth'
|
11
19
|
end
|
20
|
+
|
21
|
+
@csrf_token ||= SecureRandom.base64(120) if @auth_type == 'token'
|
12
22
|
end
|
13
23
|
end
|
14
24
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module XClarityClient
|
2
|
+
class Fan
|
3
|
+
include XClarityClient::Resource
|
4
|
+
|
5
|
+
BASE_URI = '/fans'.freeze
|
6
|
+
|
7
|
+
attr_accessor :cmmDisplayName, :cmmHealthState, :dataHandle, :firmware, :FRU,
|
8
|
+
:fruSerialNumber, :hardwareRevision, :manufacturer, :manufacturerId,
|
9
|
+
:name, :parent, :partNumber, :posID, :powerState, :uri, :uuid, :vpdID, :description,
|
10
|
+
:errorFields,:leds,:machineType,:manufactureDate, :model, :powerAllocation,
|
11
|
+
:productId, :productName, :serialNumber, :slots, :type, :userDescription, :cmmHealthState
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
def initialize(attributes)
|
16
|
+
build_resource(attributes)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module XClarityClient
|
4
|
+
class FanManagement < XClarityBase
|
5
|
+
|
6
|
+
BASE_URI = '/fans'.freeze
|
7
|
+
|
8
|
+
def initialize(conf)
|
9
|
+
super(conf, BASE_URI)
|
10
|
+
end
|
11
|
+
|
12
|
+
def population
|
13
|
+
response = connection(BASE_URI)
|
14
|
+
|
15
|
+
|
16
|
+
body = JSON.parse(response.body)
|
17
|
+
body = {'fanList' => [body]} unless body.has_key? 'fanList'
|
18
|
+
body['fanList'].map do |fan|
|
19
|
+
Fan.new fan
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_object_fans(uuids, includeAttributes, excludeAttributes)
|
24
|
+
|
25
|
+
response = if not includeAttributes.nil?
|
26
|
+
get_object_fans_include_attributes(uuids, includeAttributes)
|
27
|
+
elsif not excludeAttributes.nil?
|
28
|
+
get_object_fans_exclude_attributes(uuids, excludeAttributes)
|
29
|
+
elsif not uuids.nil?
|
30
|
+
response = connection(BASE_URI + "/" + uuids)
|
31
|
+
body = JSON.parse(response.body)
|
32
|
+
body = {'fanList' => [body]} unless body.has_key? 'fanList'
|
33
|
+
body['fanList'].map do |fan|
|
34
|
+
Fan.new fan
|
35
|
+
end
|
36
|
+
else
|
37
|
+
response = connection(BASE_URI)
|
38
|
+
body = JSON.parse(response.body)
|
39
|
+
body = {'fanList' => [body]} unless body.has_key? 'fanList'
|
40
|
+
body['fanList'].map do |fan|
|
41
|
+
Fan.new fan
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_object_fans_exclude_attributes(uuids, attributes)
|
47
|
+
|
48
|
+
response = if not uuids.nil?
|
49
|
+
response = connection(BASE_URI + "/" + uuids + "?excludeAttributes="+ attributes.join(","))
|
50
|
+
body = JSON.parse(response.body)
|
51
|
+
body = {'fanList' => [body]} unless body.has_key? 'fanList'
|
52
|
+
body['fanList'].map do |fan|
|
53
|
+
Fan.new fan
|
54
|
+
end
|
55
|
+
else
|
56
|
+
response = connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
57
|
+
body = JSON.parse(response.body)
|
58
|
+
body = {'fanList' => [body]} unless body.has_key? 'fanList'
|
59
|
+
body['fanList'].map do |fan|
|
60
|
+
Fan.new fan
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def get_object_fans_include_attributes(uuids, attributes)
|
66
|
+
response = if not uuids.nil?
|
67
|
+
response = connection(BASE_URI + "/" + uuids + "?includeAttributes="+ attributes.join(","))
|
68
|
+
body = JSON.parse(response.body)
|
69
|
+
body = {'fanList' => [body]} unless body.has_key? 'fanList'
|
70
|
+
body['fanList'].map do |fan|
|
71
|
+
Fan.new fan
|
72
|
+
end
|
73
|
+
else
|
74
|
+
response = connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
75
|
+
body = JSON.parse(response.body)
|
76
|
+
body = {'fanList' => [body]} unless body.has_key? 'fanList'
|
77
|
+
body['fanList'].map do |fan|
|
78
|
+
Fan.new fan
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module XClarityClient
|
2
|
+
class FanMux
|
3
|
+
include XClarityClient::Resource
|
4
|
+
|
5
|
+
BASE_URI = '/fan_muxes'.freeze
|
6
|
+
|
7
|
+
attr_accessor :cmmDisplayName, :cmmHealthState, :dataHandle, :description, :FRU,
|
8
|
+
:fruSerialNumber, :hardwareRevision, :leds, :machineType, :manufacturer, :manufactureDate,
|
9
|
+
:manufacturerId, :model, :name, :parent, :partNumber, :productId, :productName, :serialNumber,
|
10
|
+
:slots, :status, :type, :uri, :uuid
|
11
|
+
|
12
|
+
|
13
|
+
def initialize(attributes)
|
14
|
+
build_resource(attributes)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module XClarityClient
|
4
|
+
class FanMuxManagement < XClarityBase
|
5
|
+
|
6
|
+
BASE_URI = '/fanMuxes'.freeze
|
7
|
+
|
8
|
+
def initialize(conf)
|
9
|
+
super(conf, BASE_URI)
|
10
|
+
end
|
11
|
+
|
12
|
+
def population
|
13
|
+
response = connection(BASE_URI)
|
14
|
+
|
15
|
+
body = JSON.parse(response.body)
|
16
|
+
body = {'fanMuxList' => [body]} unless body.has_key? 'fanMuxList'
|
17
|
+
body['fanMuxList'].map do |fan_mux|
|
18
|
+
FanMux.new fan_mux
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_object_fan_muxes(uuids, includeAttributes, excludeAttributes)
|
23
|
+
|
24
|
+
response = if not includeAttributes.nil?
|
25
|
+
get_object_fan_muxes_include_attributes(uuids, includeAttributes)
|
26
|
+
elsif not excludeAttributes.nil?
|
27
|
+
get_object_fan_muxes_exclude_attributes(uuids, excludeAttributes)
|
28
|
+
elsif not uuids.nil?
|
29
|
+
response = connection(BASE_URI + "/" + uuids.join(","))
|
30
|
+
body = JSON.parse(response.body)
|
31
|
+
body = {'fanMuxList' => [body]} unless body.has_key? 'fanMuxList'
|
32
|
+
body['fanMuxList'].map do |fan_mux|
|
33
|
+
FanMux.new fan_mux
|
34
|
+
end
|
35
|
+
else
|
36
|
+
response = connection(BASE_URI)
|
37
|
+
body = JSON.parse(response.body)
|
38
|
+
body = {'fanMuxList' => [body]} unless body.has_key? 'fanMuxList'
|
39
|
+
body['fanMuxList'].map do |fan_mux|
|
40
|
+
FanMux.new fan_mux
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def get_object_fan_muxes_exclude_attributes(uuids, attributes)
|
46
|
+
|
47
|
+
response = if not uuids.nil?
|
48
|
+
response = connection(BASE_URI + "/" + uuids.join(",") + "?excludeAttributes="+ attributes.join(","))
|
49
|
+
body = JSON.parse(response.body)
|
50
|
+
body = {'fanMuxList' => [body]} unless body.has_key? 'fanMuxList'
|
51
|
+
body['fanMuxList'].map do |fan_mux|
|
52
|
+
FanMux.new fan_mux
|
53
|
+
end
|
54
|
+
else
|
55
|
+
response = connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
56
|
+
body = JSON.parse(response.body)
|
57
|
+
body = {'fanMuxList' => [body]} unless body.has_key? 'fanMuxList'
|
58
|
+
body['fanMuxList'].map do |fan_mux|
|
59
|
+
FanMux.new fan_mux
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def get_object_fan_muxes_include_attributes(uuids, attributes)
|
65
|
+
if not uuids.nil?
|
66
|
+
response = connection(BASE_URI + "/" + uuids.join(",") + "?includeAttributes="+ attributes.join(","))
|
67
|
+
body = JSON.parse(response.body)
|
68
|
+
body = {'fanMuxList' => [body]} unless body.has_key? 'fanMuxList'
|
69
|
+
body['fanMuxList'].map do |fan_mux|
|
70
|
+
FanMux.new fan_mux
|
71
|
+
end
|
72
|
+
else
|
73
|
+
response = connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
74
|
+
body = JSON.parse(response.body)
|
75
|
+
body = {'fanMuxList' => [body]} unless body.has_key? 'fanMuxList'
|
76
|
+
body['fanMuxList'].map do |fan_mux|
|
77
|
+
FanMux.new fan_mux
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/lib/xclarity_client/node.rb
CHANGED
@@ -1,103 +1,24 @@
|
|
1
|
-
require 'json'
|
2
|
-
|
3
1
|
module XClarityClient
|
4
|
-
class Node
|
2
|
+
class Node
|
3
|
+
include XClarityClient::Resource
|
5
4
|
|
6
5
|
BASE_URI = '/nodes'.freeze
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
# complexID
|
20
|
-
# contact
|
21
|
-
# dataHandle
|
22
|
-
# description
|
23
|
-
# dnsHostnames
|
24
|
-
# domainName
|
25
|
-
# driveBays
|
26
|
-
# drives
|
27
|
-
# embeddedHypervisorPresence
|
28
|
-
# encapsulation
|
29
|
-
# errorFields
|
30
|
-
# excludedHealthState
|
31
|
-
# expansionCardSlots
|
32
|
-
# expansionCards
|
33
|
-
# expansionProductType
|
34
|
-
# expansionProducts
|
35
|
-
# firmware
|
36
|
-
# flashStorage
|
37
|
-
# FRU
|
38
|
-
# fruSerialNumber
|
39
|
-
# hasOS
|
40
|
-
# height
|
41
|
-
# hostMacAddresses
|
42
|
-
# hostname
|
43
|
-
# ipInterfaces
|
44
|
-
# ipv4Addresses
|
45
|
-
# ipv6Addresses
|
46
|
-
# isConnectionTrusted
|
47
|
-
# isITME
|
48
|
-
# isRemotePresenceEnabled
|
49
|
-
# isScalable
|
50
|
-
# lanOverUsb
|
51
|
-
# leds
|
52
|
-
# location
|
53
|
-
# macAddress
|
54
|
-
# machineType
|
55
|
-
# manufacturer
|
56
|
-
# manufacturerId
|
57
|
-
# memoryModules
|
58
|
-
# memorySlots
|
59
|
-
# mgmtProcIPaddress
|
60
|
-
# model
|
61
|
-
# name
|
62
|
-
# nist
|
63
|
-
# onboardPciDevices
|
64
|
-
# overallHealthState
|
65
|
-
# partNumber
|
66
|
-
# partitionID
|
67
|
-
# pciCapabilities
|
68
|
-
# pciDevices
|
69
|
-
# ports
|
70
|
-
# posID
|
71
|
-
# powerAllocation
|
72
|
-
# powerCappingPolicy
|
73
|
-
# powerStatus
|
74
|
-
# powerSupplies
|
75
|
-
# processorSlots
|
76
|
-
# processors
|
77
|
-
# productId
|
78
|
-
# productName
|
79
|
-
# raidSettings
|
80
|
-
# secureBootMode
|
81
|
-
# serialNumber
|
82
|
-
# slots
|
83
|
-
# status
|
84
|
-
# subSlots
|
85
|
-
# subType
|
86
|
-
# tlsVersion
|
87
|
-
# type
|
88
|
-
# uri
|
89
|
-
# userDescription
|
90
|
-
# uuid
|
91
|
-
# vnicMode
|
92
|
-
# vpdID
|
7
|
+
attr_accessor :properties,:_uuid, :accessState, :activationKeys, :uuid, :addinCardSlots, :addinCards, :vnicMode, :productName, :arch, :backedBy, :bladeState_health, :bootMode,
|
8
|
+
:bootOrder, :canisters, :canisterSlots, :cmmDisplayName, :cmmHealthState, :complexID, :dataHandle, :dnsHostnames, :domainName, :bladeState, :bladeState_string,
|
9
|
+
:driveBays, :embeddedHypervisorPresence, :errorFields, :excludedHealthState, :expansionCardSlots, :expansionCards, :lanOverUsbPortForwardingModes,
|
10
|
+
:expansionProductType, :expansionProducts, :expansionProductSlots, :firmware, :flashStorage, :fruSerialNumber, :hostMacAddresses, :hostname, :ipInterfaces,
|
11
|
+
:ipv4Addresses, :ipv6Addresses, :isConnectionTrusted, :isITME, :hasOS, :isRemotePresenceEnabled, :isScalable, :lanOverUsb,
|
12
|
+
:machineType, :manufacturer, :manufacturerId ,:memoryModules,:memorySlots, :mgmtProcIPaddress, :model, :nist, :onboardPciDevices,
|
13
|
+
:overallHealthState, :partitionEnabled, :powerStatus, :pciExpressCards, :pciExpressCardSlots, :physicalID, :ports, :posID, :powerAllocation, :powerCappingPolicy,
|
14
|
+
:powerSupplies, :primary, :processorSlots, :processors, :productId, :raidSettings, :secureBootMode, :serialNumber, :slots, :status, :subSlots,
|
15
|
+
:thinkServerFru, :tlsVersion, :type, :uri ,:userDescription ,:vpdID,:contact, :description, :driveBays, :drives,:encapsulation, :FRU,:height,:leds,:location,:logicalID,
|
16
|
+
:macAddress,:name,:parent,:parentComplexID, :parentPartitionUUID,:partNumber,:partitionEnabled,:partitionID,:pciCapabilities,:pciDevices,:subType, :fans, :fruNumber,
|
17
|
+
:password, :recoveryPassword, :username, :managementPorts, :displayName, :ipAddresses
|
93
18
|
|
94
|
-
def initialize(conf)
|
95
|
-
super(conf, BASE_URI)
|
96
|
-
end
|
97
19
|
|
98
|
-
def
|
99
|
-
|
100
|
-
response.body
|
20
|
+
def initialize(attributes)
|
21
|
+
build_resource(attributes)
|
101
22
|
end
|
102
23
|
|
103
24
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'uuid'
|
3
|
+
|
4
|
+
module XClarityClient
|
5
|
+
class NodeManagement < XClarityBase
|
6
|
+
|
7
|
+
BASE_URI = '/nodes'.freeze
|
8
|
+
|
9
|
+
def initialize(conf)
|
10
|
+
super(conf, BASE_URI)
|
11
|
+
end
|
12
|
+
|
13
|
+
def population
|
14
|
+
response = connection(BASE_URI)
|
15
|
+
|
16
|
+
body = JSON.parse(response.body)
|
17
|
+
body['nodeList'].map do |node|
|
18
|
+
Node.new node
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_object_nodes(uuids, includeAttributes, excludeAttributes)
|
23
|
+
|
24
|
+
response = if not includeAttributes.nil?
|
25
|
+
get_object_nodes_include_attributes(uuids, includeAttributes)
|
26
|
+
elsif not excludeAttributes.nil?
|
27
|
+
get_object_nodes_exclude_attributes(uuids, excludeAttributes)
|
28
|
+
elsif not uuids.nil?
|
29
|
+
connection(BASE_URI + "/" + uuids.join(","))
|
30
|
+
else
|
31
|
+
connection(BASE_URI)
|
32
|
+
end
|
33
|
+
|
34
|
+
body = JSON.parse(response.body)
|
35
|
+
body = {'nodeList' => [body]} unless body.has_key? 'nodeList'
|
36
|
+
body['nodeList'].map do |node|
|
37
|
+
Node.new node
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
def get_object_nodes_exclude_attributes(uuids, attributes)
|
43
|
+
uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
|
44
|
+
|
45
|
+
response = if not uuids.nil?
|
46
|
+
connection(BASE_URI + "/" + uuids.join(",") + "?excludeAttributes="+ attributes.join(","))
|
47
|
+
else
|
48
|
+
connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def get_object_nodes_include_attributes(uuids, attributes)
|
53
|
+
uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
|
54
|
+
|
55
|
+
response = if not uuids.nil?
|
56
|
+
connection(BASE_URI + "/" + uuids.join(",") + "?includeAttributes="+ attributes.join(","))
|
57
|
+
else
|
58
|
+
connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module XClarityClient
|
2
|
+
class PowerSupply
|
3
|
+
include XClarityClient::Resource
|
4
|
+
|
5
|
+
BASE_URI = '/power_supplies'.freeze
|
6
|
+
|
7
|
+
attr_accessor :properties, :_id, :cmmDisplayName, :cmmHealthState, :dataHandle,
|
8
|
+
:description, :firmware, :FRU, :fruSerialNumber, :hardwareRevision, :inputVoltageMax,
|
9
|
+
:inputVoltageIsAC, :inputVoltageMin, :leds, :machineType, :manufacturer, :manufacturerId,
|
10
|
+
:manufactureDate, :model, :name, :parent, :powerAllocation, :partNumber, :posID,
|
11
|
+
:powerState, :productId, :productName, :serialNumber, :slots, :type, :uri,
|
12
|
+
:userDescription, :uuid, :vpdID, :description
|
13
|
+
|
14
|
+
def initialize(attributes)
|
15
|
+
build_resource(attributes)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module XClarityClient
|
4
|
+
class PowerSupplyManagement < XClarityBase
|
5
|
+
BASE_URI = '/powerSupplies'.freeze
|
6
|
+
|
7
|
+
def initialize(conf)
|
8
|
+
super(conf, BASE_URI)
|
9
|
+
end
|
10
|
+
|
11
|
+
def population
|
12
|
+
response = connection(BASE_URI)
|
13
|
+
|
14
|
+
body = JSON.parse(response.body)
|
15
|
+
body = {'powerSupplyList' => [body]} unless body.has_key? 'powerSupplyList'
|
16
|
+
body['powerSupplyList'].map do |power_supply|
|
17
|
+
PowerSupply.new power_supply
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_object_power_supplies(uuids, includeAttributes, excludeAttributes)
|
22
|
+
uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
|
23
|
+
|
24
|
+
response = nil
|
25
|
+
if not includeAttributes.nil?
|
26
|
+
response = get_object_power_supplies_include_attributes(uuids, includeAttributes)
|
27
|
+
elsif not excludeAttributes.nil?
|
28
|
+
response = get_object_power_supplies_exclude_attributes(uuids, excludeAttributes)
|
29
|
+
elsif not uuids.nil?
|
30
|
+
response = connection(BASE_URI + "/" + uuids.join(","))
|
31
|
+
body = JSON.parse(response.body)
|
32
|
+
body = {'powerSupplyList' => [body]} unless body.has_key? 'powerSupplyList'
|
33
|
+
body['powerSupplyList'].map do |power_supply|
|
34
|
+
PowerSupply.new power_supply
|
35
|
+
end
|
36
|
+
else
|
37
|
+
response = connection(BASE_URI)
|
38
|
+
body = JSON.parse(response.body)
|
39
|
+
body = {'powerSupplyList' => [body]} unless body.has_key? 'powerSupplyList'
|
40
|
+
body['powerSupplyList'].map do |power_supply|
|
41
|
+
PowerSupply.new power_supply
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_object_power_supplies_exclude_attributes(uuids, attributes)
|
47
|
+
uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
|
48
|
+
|
49
|
+
response = nil
|
50
|
+
if not uuids.nil?
|
51
|
+
response = connection(BASE_URI + "/" + uuids.join(",") + "?excludeAttributes="+ attributes.join(","))
|
52
|
+
body = JSON.parse(response.body)
|
53
|
+
body = {'powerSupplyList' => [body]} unless body.has_key? 'powerSupplyList'
|
54
|
+
body['powerSupplyList'].map do |power_supply|
|
55
|
+
PowerSupply.new power_supply
|
56
|
+
end
|
57
|
+
else
|
58
|
+
response = connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
59
|
+
body = JSON.parse(response.body)
|
60
|
+
body = {'powerSupplyList' => [body]} unless body.has_key? 'powerSupplyList'
|
61
|
+
body['powerSupplyList'].map do |power_supply|
|
62
|
+
PowerSupply.new power_supply
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def get_object_power_supplies_include_attributes(uuids, attributes)
|
68
|
+
uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
|
69
|
+
|
70
|
+
response = nil
|
71
|
+
if not uuids.nil?
|
72
|
+
response = connection(BASE_URI + "/" + uuids.join(",") + "?includeAttributes="+ attributes.join(","))
|
73
|
+
body = JSON.parse(response.body)
|
74
|
+
body = {'powerSupplyList' => [body]} unless body.has_key? 'powerSupplyList'
|
75
|
+
body['powerSupplyList'].map do |power_supply|
|
76
|
+
PowerSupply.new power_supply
|
77
|
+
end
|
78
|
+
|
79
|
+
else
|
80
|
+
response = connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
81
|
+
body = JSON.parse(response.body)
|
82
|
+
body = {'powerSupplyList' => [body]} unless body.has_key? 'powerSupplyList'
|
83
|
+
body['powerSupplyList'].map do |power_supply|
|
84
|
+
PowerSupply.new power_supply
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|