xclarity_client 0.2.1 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/xclarity_client.rb +1 -0
- data/lib/xclarity_client/cabinet.rb +1 -0
- data/lib/xclarity_client/cabinet_management.rb +4 -46
- data/lib/xclarity_client/canister.rb +1 -0
- data/lib/xclarity_client/canister_management.rb +4 -47
- data/lib/xclarity_client/chassi.rb +1 -0
- data/lib/xclarity_client/chassi_management.rb +4 -51
- data/lib/xclarity_client/client.rb +30 -31
- data/lib/xclarity_client/cmm.rb +1 -0
- data/lib/xclarity_client/cmm_management.rb +4 -48
- data/lib/xclarity_client/configuration.rb +10 -0
- data/lib/xclarity_client/fan.rb +1 -0
- data/lib/xclarity_client/fan_management.rb +4 -70
- data/lib/xclarity_client/fan_mux.rb +2 -1
- data/lib/xclarity_client/fan_mux_management.rb +4 -69
- data/lib/xclarity_client/node.rb +1 -0
- data/lib/xclarity_client/node_management.rb +4 -48
- data/lib/xclarity_client/power_supply.rb +2 -1
- data/lib/xclarity_client/power_supply_management.rb +5 -77
- data/lib/xclarity_client/scalable_complex.rb +2 -1
- data/lib/xclarity_client/scalable_complex_management.rb +4 -70
- data/lib/xclarity_client/switch.rb +1 -0
- data/lib/xclarity_client/switch_management.rb +4 -47
- data/lib/xclarity_client/version.rb +1 -1
- data/lib/xclarity_client/xclarity_base.rb +4 -3
- data/lib/xclarity_client/xclarity_management_mixin.rb +65 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f6fe01d2f0c546424c2b60568dac517bf577fb5
|
4
|
+
data.tar.gz: dd4a30bdaccb0a616f8c802d2a258b9126d426d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b71782c8a9d1f72ec4e8d4b4001d63305b4dda3830a9df8730028101b03e894965cbde6ed48e5bc06dc93b13141a9c622e746fa10ac4dc418f32fdeca4b13dab
|
7
|
+
data.tar.gz: a57f0f9881982d2ebeb7a9c2669cfdc4c08dd859aecbe62c4f3da0cad022f383af60828f4d19a75c29980f19f9b3ebb0692686b0b2ad4263e77321db8e9c577e
|
data/lib/xclarity_client.rb
CHANGED
@@ -7,6 +7,7 @@ require 'xclarity_client/configuration'
|
|
7
7
|
require 'xclarity_client/client'
|
8
8
|
require 'xclarity_client/xclarity_base'
|
9
9
|
require 'xclarity_client/xclarity_resource'
|
10
|
+
require 'xclarity_client/xclarity_management_mixin'
|
10
11
|
require 'xclarity_client/virtual_appliance_management'
|
11
12
|
require 'xclarity_client/node'
|
12
13
|
require 'xclarity_client/node_management'
|
@@ -3,6 +3,7 @@ module XClarityClient
|
|
3
3
|
include XClarityClient::Resource
|
4
4
|
|
5
5
|
BASE_URI = '/cabinet'.freeze
|
6
|
+
LIST_NAME = 'cabinetList'.freeze
|
6
7
|
|
7
8
|
attr_accessor :cabinetName, :chassisList, :complexList, :height, :location, :nodeList,
|
8
9
|
:placeholderList, :room, :storageList, :switchList, :UUID
|
@@ -3,57 +3,15 @@ require 'json'
|
|
3
3
|
module XClarityClient
|
4
4
|
class CabinetManagement < XClarityBase
|
5
5
|
|
6
|
-
|
6
|
+
include XClarityClient::ManagementMixin
|
7
7
|
|
8
8
|
def initialize(conf)
|
9
|
-
super(conf, BASE_URI)
|
9
|
+
super(conf, Cabinet::BASE_URI)
|
10
10
|
end
|
11
11
|
|
12
|
-
def population
|
13
|
-
|
14
|
-
|
15
|
-
body = JSON.parse(response.body)
|
16
|
-
body = {'cabinetList' => [body]} unless body.has_key? 'cabinetList'
|
17
|
-
body['cabinetList'].map do |cabinet|
|
18
|
-
Cabinet.new cabinet
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def get_object_cabinet(uuids, includeAttributes, excludeAttributes)
|
23
|
-
|
24
|
-
response = if not includeAttributes.nil?
|
25
|
-
get_object_cabinet_include_attributes(uuids, includeAttributes)
|
26
|
-
elsif not excludeAttributes.nil?
|
27
|
-
get_object_cabinet_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 = {'cabinetList' => [body]} unless body.has_key? 'cabinetList'
|
36
|
-
body['cabinetList'].map do |cabinet|
|
37
|
-
Cabinet.new cabinet
|
38
|
-
end
|
39
|
-
|
12
|
+
def population(opts = {})
|
13
|
+
get_all_resources(Cabinet, opts)
|
40
14
|
end
|
41
15
|
|
42
|
-
def get_object_cabinet_exclude_attributes(uuids, attributes)
|
43
|
-
|
44
|
-
response = if not uuids.nil?
|
45
|
-
connection(BASE_URI + "/" + uuids.join(",") + "?excludeAttributes="+ attributes.join(","))
|
46
|
-
else
|
47
|
-
connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def get_object_cabinet_include_attributes(uuids, attributes)
|
52
|
-
response = if not uuids.nil?
|
53
|
-
connection(BASE_URI + "/" + uuids.join(",") + "?includeAttributes="+ attributes.join(","))
|
54
|
-
else
|
55
|
-
connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
56
|
-
end
|
57
|
-
end
|
58
16
|
end
|
59
17
|
end
|
@@ -3,6 +3,7 @@ module XClarityClient
|
|
3
3
|
include XClarityClient::Resource
|
4
4
|
|
5
5
|
BASE_URI = '/canisters'.freeze
|
6
|
+
LIST_NAME = 'canisterList'.freeze
|
6
7
|
|
7
8
|
attr_accessor :cmmDisplayName, :backedBy, :contact, :dataHandle, :description,
|
8
9
|
:firmware, :FRU, :domainName, :driveBays, :drives, :errorFields, :ipInterfaces, :powerStatus,
|
@@ -3,58 +3,15 @@ require 'json'
|
|
3
3
|
module XClarityClient
|
4
4
|
class CanisterManagement < XClarityBase
|
5
5
|
|
6
|
-
|
6
|
+
include XClarityClient::ManagementMixin
|
7
7
|
|
8
8
|
def initialize(conf)
|
9
|
-
super(conf, BASE_URI)
|
9
|
+
super(conf, Canister::BASE_URI)
|
10
10
|
end
|
11
11
|
|
12
|
-
def population
|
13
|
-
|
14
|
-
|
15
|
-
body = JSON.parse(response.body)
|
16
|
-
body = {'canisterList' => [body]} unless body.has_key? 'canisterList'
|
17
|
-
body['canisterList'].map do |canister|
|
18
|
-
Canister.new canister
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def get_object_canisters(uuids, includeAttributes, excludeAttributes)
|
23
|
-
|
24
|
-
response = if not includeAttributes.nil?
|
25
|
-
get_object_canisters_include_attributes(uuids, includeAttributes)
|
26
|
-
elsif not excludeAttributes.nil?
|
27
|
-
get_object_canisters_exclude_attributes(uuids, excludeAttributes)
|
28
|
-
elsif not uuids.nil?
|
29
|
-
connection(BASE_URI + "/" + uuids)
|
30
|
-
else
|
31
|
-
connection(BASE_URI)
|
32
|
-
end
|
33
|
-
|
34
|
-
body = JSON.parse(response.body)
|
35
|
-
body = {'canisterList' => [body]} unless body.has_key? 'canisterList'
|
36
|
-
body['canisterList'].map do |canister|
|
37
|
-
Canister.new canister
|
38
|
-
end
|
39
|
-
|
12
|
+
def population(opts = {})
|
13
|
+
get_all_resources(Canister, opts)
|
40
14
|
end
|
41
15
|
|
42
|
-
def get_object_canisters_exclude_attributes(uuids, attributes)
|
43
|
-
|
44
|
-
response = if not uuids.nil?
|
45
|
-
connection(BASE_URI + "/#{uuids}"+"?excludeAttributes=#{attributes.join(",")}")
|
46
|
-
else
|
47
|
-
connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
def get_object_canisters_include_attributes(uuids, attributes)
|
53
|
-
response = if not uuids.nil?
|
54
|
-
connection(BASE_URI + "/" + uuids + "?includeAttributes=" + attributes.join(","))
|
55
|
-
else
|
56
|
-
connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
57
|
-
end
|
58
|
-
end
|
59
16
|
end
|
60
17
|
end
|
@@ -3,6 +3,7 @@ module XClarityClient
|
|
3
3
|
include XClarityClient::Resource
|
4
4
|
|
5
5
|
BASE_URI = '/chassis'.freeze
|
6
|
+
LIST_NAME = 'chassisList'.freeze
|
6
7
|
|
7
8
|
attr_accessor :properties, :_id, :accessState, :activationKeys, :activeAlerts, :backedBy, :bladeSlots,
|
8
9
|
:cmmDisplayName, :cmmHealthState, :cmms, :cmmSlots, :complex, :contact, :dataHandle,
|
@@ -3,61 +3,14 @@ require 'json'
|
|
3
3
|
module XClarityClient
|
4
4
|
class ChassiManagement < XClarityBase
|
5
5
|
|
6
|
-
|
6
|
+
include XClarityClient::ManagementMixin
|
7
7
|
|
8
8
|
def initialize(conf)
|
9
|
-
super(conf, BASE_URI)
|
9
|
+
super(conf, Chassi::BASE_URI)
|
10
10
|
end
|
11
11
|
|
12
|
-
def population
|
13
|
-
|
14
|
-
|
15
|
-
body = JSON.parse(response.body)
|
16
|
-
body = {'chassisList' => [body]} unless body.has_key? 'chassisList'
|
17
|
-
body['chassisList'].map do |chassi|
|
18
|
-
Chassi.new chassi
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def discover_chassis
|
23
|
-
ChassiManagement.new(@connection).population
|
24
|
-
end
|
25
|
-
|
26
|
-
def get_object_chassis(uuids, includeAttributes, excludeAttributes)
|
27
|
-
|
28
|
-
if not includeAttributes.nil?
|
29
|
-
response = get_object_chassis_include_attributes(uuids, includeAttributes)
|
30
|
-
elsif not excludeAttributes.nil?
|
31
|
-
response = get_object_chassis_exclude_attributes(uuids, excludeAttributes)
|
32
|
-
elsif not uuids.nil?
|
33
|
-
response = connection(BASE_URI + "/" + uuids.join(","))
|
34
|
-
else
|
35
|
-
response = connection(BASE_URI)
|
36
|
-
end
|
37
|
-
|
38
|
-
body = JSON.parse(response.body) #rescue {}
|
39
|
-
body = {'chassisList' => [body]} unless body.has_key? 'chassisList'
|
40
|
-
body['chassisList'].map do |chassi|
|
41
|
-
Chassi.new chassi
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
def get_object_chassis_exclude_attributes(uuids, attributes)
|
48
|
-
if not uuids.nil?
|
49
|
-
response = connection(BASE_URI + "/#{uuids.join(",")}"+"?excludeAttributes=#{attributes.join(",")}")
|
50
|
-
else
|
51
|
-
response = connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def get_object_chassis_include_attributes(uuids, attributes)
|
56
|
-
if not uuids.nil?
|
57
|
-
response = connection(BASE_URI + "/" + uuids.join(",") + "?includeAttributes=" + attributes.join(","))
|
58
|
-
else
|
59
|
-
response = connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
60
|
-
end
|
12
|
+
def population(opts = {})
|
13
|
+
get_all_resources(Chassi, opts)
|
61
14
|
end
|
62
15
|
|
63
16
|
end
|
@@ -5,85 +5,84 @@ module XClarityClient
|
|
5
5
|
@connection = connection
|
6
6
|
end
|
7
7
|
|
8
|
-
def discover_nodes
|
9
|
-
NodeManagement.new(@connection).population
|
8
|
+
def discover_nodes(opts = {})
|
9
|
+
NodeManagement.new(@connection).population opts
|
10
10
|
end
|
11
11
|
|
12
|
-
def discover_scalableComplexes
|
13
|
-
ScalableComplexManagement.new(@connection).population
|
12
|
+
def discover_scalableComplexes(opts = {})
|
13
|
+
ScalableComplexManagement.new(@connection).population opts
|
14
14
|
end
|
15
15
|
|
16
|
-
def discover_cabinet
|
17
|
-
CabinetManagement.new(@connection).population
|
16
|
+
def discover_cabinet(opts = {})
|
17
|
+
CabinetManagement.new(@connection).population opts
|
18
18
|
end
|
19
19
|
|
20
20
|
def fetch_cabinet(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
21
|
-
CabinetManagement.new(@connection).
|
21
|
+
CabinetManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Cabinet)
|
22
22
|
end
|
23
23
|
|
24
|
-
def discover_canisters
|
25
|
-
CanisterManagement.new(@connection).population
|
24
|
+
def discover_canisters(opts = {})
|
25
|
+
CanisterManagement.new(@connection).population opts
|
26
26
|
end
|
27
27
|
|
28
28
|
def fetch_canisters(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
29
|
-
CanisterManagement.new(@connection).
|
29
|
+
CanisterManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Canister)
|
30
30
|
end
|
31
31
|
|
32
|
-
def discover_cmms
|
33
|
-
CmmManagement.new(@connection).population
|
32
|
+
def discover_cmms(opts = {})
|
33
|
+
CmmManagement.new(@connection).population opts
|
34
34
|
end
|
35
35
|
|
36
36
|
def fetch_cmms(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
37
|
-
CmmManagement.new(@connection).
|
37
|
+
CmmManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Cmm)
|
38
38
|
end
|
39
39
|
|
40
40
|
def fetch_fans(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
41
|
-
|
42
|
-
FanManagement.new(@connection).get_object_fans(uuids, includeAttributes, excludeAttributes)
|
41
|
+
FanManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Fan)
|
43
42
|
end
|
44
43
|
|
45
|
-
def discover_fans
|
46
|
-
FanManagement.new(@connection).population
|
44
|
+
def discover_fans(opts = {})
|
45
|
+
FanManagement.new(@connection).population opts
|
47
46
|
end
|
48
47
|
|
49
|
-
def discover_switches
|
50
|
-
SwitchManagement.new(@connection).population
|
48
|
+
def discover_switches(opts = {})
|
49
|
+
SwitchManagement.new(@connection).population opts
|
51
50
|
end
|
52
51
|
|
53
|
-
def discover_fan_muxes
|
54
|
-
FanMuxManagement.new(@connection).population
|
52
|
+
def discover_fan_muxes(opts = {})
|
53
|
+
FanMuxManagement.new(@connection).population opts
|
55
54
|
end
|
56
55
|
|
57
56
|
def fetch_fan_muxes(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
58
|
-
FanMuxManagement.new(@connection).
|
57
|
+
FanMuxManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, FanMux)
|
59
58
|
end
|
60
59
|
|
61
|
-
def discover_chassis
|
62
|
-
ChassiManagement.new(@connection).population
|
60
|
+
def discover_chassis(opts = {})
|
61
|
+
ChassiManagement.new(@connection).population opts
|
63
62
|
end
|
64
63
|
|
65
|
-
def discover_power_supplies
|
66
|
-
PowerSupplyManagement.new(@connection).population
|
64
|
+
def discover_power_supplies(opts = {})
|
65
|
+
PowerSupplyManagement.new(@connection).population opts
|
67
66
|
end
|
68
67
|
|
69
68
|
def fetch_nodes(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
70
|
-
NodeManagement.new(@connection).
|
69
|
+
NodeManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Node)
|
71
70
|
end
|
72
71
|
|
73
72
|
def fetch_chassis(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
74
|
-
ChassiManagement.new(@connection).
|
73
|
+
ChassiManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Chassi)
|
75
74
|
end
|
76
75
|
|
77
76
|
def fetch_scalableComplexes(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
78
|
-
ScalableComplexManagement.new(@connection).
|
77
|
+
ScalableComplexManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, ScalableComplex)
|
79
78
|
end
|
80
79
|
|
81
80
|
def fetch_switches(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
82
|
-
SwitchManagement.new(@connection).
|
81
|
+
SwitchManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Switch)
|
83
82
|
end
|
84
83
|
|
85
84
|
def fetch_power_supplies(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
|
86
|
-
PowerSupplyManagement.new(@connection).
|
85
|
+
PowerSupplyManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, PowerSupply)
|
87
86
|
end
|
88
87
|
end
|
89
88
|
end
|
data/lib/xclarity_client/cmm.rb
CHANGED
@@ -5,6 +5,7 @@ module XClarityClient
|
|
5
5
|
include XClarityClient::Resource
|
6
6
|
|
7
7
|
BASE_URI = '/cmms'.freeze
|
8
|
+
LIST_NAME = 'cmmList'.freeze
|
8
9
|
|
9
10
|
attr_accessor :_id, :properties, :accessState, :backedBy, :cmmDisplayName, :cmmHealthState, :dataHandle, :dnsHostnames, :domainName, :errorFields,
|
10
11
|
:excludedHealthState, :firmware, :FRU, :fruSerialNumber, :hostConfig, :hostname, :ipInterfaces, :ipv4Addresses, :ipv6Addresses,
|
@@ -3,58 +3,14 @@ require 'json'
|
|
3
3
|
module XClarityClient
|
4
4
|
class CmmManagement < XClarityBase
|
5
5
|
|
6
|
-
|
6
|
+
include XClarityClient::ManagementMixin
|
7
7
|
|
8
8
|
def initialize(conf)
|
9
|
-
super(conf, BASE_URI)
|
9
|
+
super(conf, Cmm::BASE_URI)
|
10
10
|
end
|
11
11
|
|
12
|
-
def population
|
13
|
-
|
14
|
-
|
15
|
-
body = JSON.parse(response.body)
|
16
|
-
body = {'cmmList' => [body]} unless body.has_key? 'cmmList'
|
17
|
-
body['cmmList'].map do |cmm|
|
18
|
-
Cmm.new cmm
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def get_object_cmms(uuids, includeAttributes, excludeAttributes)
|
23
|
-
|
24
|
-
if not includeAttributes.nil?
|
25
|
-
response = get_object_cmms_include_attributes(uuids, includeAttributes)
|
26
|
-
elsif not excludeAttributes.nil?
|
27
|
-
response = get_object_cmms_exclude_attributes(uuids, excludeAttributes)
|
28
|
-
elsif not uuids.nil?
|
29
|
-
response = connection(BASE_URI + "/" + uuids.join(","))
|
30
|
-
else
|
31
|
-
response = connection(BASE_URI)
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
body = JSON.parse(response.body) #rescue {}
|
36
|
-
body = {'cmmList' => [body]} unless body.has_key? 'cmmList'
|
37
|
-
body['cmmList'].map do |cmm|
|
38
|
-
Cmm.new cmm
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
private
|
43
|
-
|
44
|
-
def get_object_cmms_exclude_attributes(uuids, attributes)
|
45
|
-
if not uuids.nil?
|
46
|
-
response = connection(BASE_URI + "/#{uuids.join(",")}"+"?excludeAttributes=#{attributes.join(",")}")
|
47
|
-
else
|
48
|
-
response = connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def get_object_cmms_include_attributes(uuids, attributes)
|
53
|
-
if not uuids.nil?
|
54
|
-
response = connection(BASE_URI + "/" + uuids.join(",") + "?includeAttributes=" + attributes.join(","))
|
55
|
-
else
|
56
|
-
response = connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
57
|
-
end
|
12
|
+
def population(opts = {})
|
13
|
+
get_all_resources(Cmm, opts)
|
58
14
|
end
|
59
15
|
|
60
16
|
end
|
@@ -6,6 +6,7 @@ module XClarityClient
|
|
6
6
|
attr_accessor :username, :password, :host, :csrf_token, :auth_type, :generated_token, :verify_ssl
|
7
7
|
|
8
8
|
def initialize(args)
|
9
|
+
puts "::> #{args}"
|
9
10
|
|
10
11
|
args.each { |key, value| send("#{key}=", value) }
|
11
12
|
|
@@ -20,5 +21,14 @@ module XClarityClient
|
|
20
21
|
|
21
22
|
@csrf_token ||= SecureRandom.base64(120) if @auth_type == 'token'
|
22
23
|
end
|
24
|
+
|
25
|
+
def self.default
|
26
|
+
new({
|
27
|
+
:username => ENV['LXCA_USERNAME'],
|
28
|
+
:password => ENV['LXCA_PASSWORD'],
|
29
|
+
:host => ENV['LXCA_HOST'],
|
30
|
+
:verify_ssl => ENV['LXCA_VERIFY_SSL'] != "NONE"
|
31
|
+
})
|
32
|
+
end
|
23
33
|
end
|
24
34
|
end
|
data/lib/xclarity_client/fan.rb
CHANGED
@@ -3,6 +3,7 @@ module XClarityClient
|
|
3
3
|
include XClarityClient::Resource
|
4
4
|
|
5
5
|
BASE_URI = '/fans'.freeze
|
6
|
+
LIST_NAME = 'fanList'.freeze
|
6
7
|
|
7
8
|
attr_accessor :cmmDisplayName, :cmmHealthState, :dataHandle, :firmware, :FRU,
|
8
9
|
:fruSerialNumber, :hardwareRevision, :manufacturer, :manufacturerId,
|
@@ -3,81 +3,15 @@ require 'json'
|
|
3
3
|
module XClarityClient
|
4
4
|
class FanManagement < XClarityBase
|
5
5
|
|
6
|
-
|
6
|
+
include XClarityClient::ManagementMixin
|
7
7
|
|
8
8
|
def initialize(conf)
|
9
|
-
super(conf, BASE_URI)
|
9
|
+
super(conf, Fan::BASE_URI)
|
10
10
|
end
|
11
11
|
|
12
|
-
def population
|
13
|
-
|
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
|
12
|
+
def population(opts = {})
|
13
|
+
get_all_resources(Fan, opts)
|
44
14
|
end
|
45
15
|
|
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
16
|
end
|
83
17
|
end
|
@@ -2,7 +2,8 @@ module XClarityClient
|
|
2
2
|
class FanMux
|
3
3
|
include XClarityClient::Resource
|
4
4
|
|
5
|
-
BASE_URI = '/
|
5
|
+
BASE_URI = '/fanMuxes'.freeze
|
6
|
+
LIST_NAME = 'fanMuxList'.freeze
|
6
7
|
|
7
8
|
attr_accessor :cmmDisplayName, :cmmHealthState, :dataHandle, :description, :FRU,
|
8
9
|
:fruSerialNumber, :hardwareRevision, :leds, :machineType, :manufacturer, :manufactureDate,
|
@@ -3,80 +3,15 @@ require 'json'
|
|
3
3
|
module XClarityClient
|
4
4
|
class FanMuxManagement < XClarityBase
|
5
5
|
|
6
|
-
|
6
|
+
include XClarityClient::ManagementMixin
|
7
7
|
|
8
8
|
def initialize(conf)
|
9
|
-
super(conf, BASE_URI)
|
9
|
+
super(conf, FanMux::BASE_URI)
|
10
10
|
end
|
11
11
|
|
12
|
-
def population
|
13
|
-
|
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
|
12
|
+
def population(opts = {})
|
13
|
+
get_all_resources(FanMux, opts)
|
43
14
|
end
|
44
15
|
|
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
16
|
end
|
82
17
|
end
|
data/lib/xclarity_client/node.rb
CHANGED
@@ -3,6 +3,7 @@ module XClarityClient
|
|
3
3
|
include XClarityClient::Resource
|
4
4
|
|
5
5
|
BASE_URI = '/nodes'.freeze
|
6
|
+
LIST_NAME = 'nodeList'.freeze
|
6
7
|
|
7
8
|
attr_accessor :properties,:_uuid, :accessState, :activationKeys, :uuid, :addinCardSlots, :addinCards, :vnicMode, :productName, :arch, :backedBy, :bladeState_health, :bootMode,
|
8
9
|
:bootOrder, :canisters, :canisterSlots, :cmmDisplayName, :cmmHealthState, :complexID, :dataHandle, :dnsHostnames, :domainName, :bladeState, :bladeState_string,
|
@@ -4,59 +4,15 @@ require 'uuid'
|
|
4
4
|
module XClarityClient
|
5
5
|
class NodeManagement < XClarityBase
|
6
6
|
|
7
|
-
|
7
|
+
include XClarityClient::ManagementMixin
|
8
8
|
|
9
9
|
def initialize(conf)
|
10
|
-
super(conf, BASE_URI)
|
10
|
+
super(conf, Node::BASE_URI)
|
11
11
|
end
|
12
12
|
|
13
|
-
def population
|
14
|
-
|
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
|
-
|
13
|
+
def population(opts = {})
|
14
|
+
get_all_resources(Node, opts)
|
40
15
|
end
|
41
16
|
|
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
17
|
end
|
62
18
|
end
|
@@ -2,7 +2,8 @@ module XClarityClient
|
|
2
2
|
class PowerSupply
|
3
3
|
include XClarityClient::Resource
|
4
4
|
|
5
|
-
BASE_URI = '/
|
5
|
+
BASE_URI = '/powerSupplies'.freeze
|
6
|
+
LIST_NAME = 'powerSupplyList'.freeze
|
6
7
|
|
7
8
|
attr_accessor :properties, :_id, :cmmDisplayName, :cmmHealthState, :dataHandle,
|
8
9
|
:description, :firmware, :FRU, :fruSerialNumber, :hardwareRevision, :inputVoltageMax,
|
@@ -2,88 +2,16 @@ require 'json'
|
|
2
2
|
|
3
3
|
module XClarityClient
|
4
4
|
class PowerSupplyManagement < XClarityBase
|
5
|
-
BASE_URI = '/powerSupplies'.freeze
|
6
5
|
|
7
|
-
|
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?
|
6
|
+
include XClarityClient::ManagementMixin
|
23
7
|
|
24
|
-
|
25
|
-
|
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
|
8
|
+
def initialize(conf)
|
9
|
+
super(conf, PowerSupply::BASE_URI)
|
44
10
|
end
|
45
11
|
|
46
|
-
def
|
47
|
-
|
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
|
12
|
+
def population(opts = {})
|
13
|
+
get_all_resources(PowerSupply, opts)
|
65
14
|
end
|
66
15
|
|
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
16
|
end
|
89
17
|
end
|
@@ -2,7 +2,8 @@ module XClarityClient
|
|
2
2
|
class ScalableComplex
|
3
3
|
include XClarityClient::Resource
|
4
4
|
|
5
|
-
BASE_URI = '/
|
5
|
+
BASE_URI = '/scalableComplex'.freeze
|
6
|
+
LIST_NAME = 'complex'.freeze
|
6
7
|
|
7
8
|
attr_accessor :properties, :_id, :location, :nodeCount, :orphanNodes,
|
8
9
|
:partition, :partitionCount, :uuid, :slots, :complexID
|
@@ -3,81 +3,15 @@ require 'json'
|
|
3
3
|
module XClarityClient
|
4
4
|
class ScalableComplexManagement < XClarityBase
|
5
5
|
|
6
|
-
|
6
|
+
include XClarityClient::ManagementMixin
|
7
7
|
|
8
8
|
def initialize(conf)
|
9
|
-
super(conf, BASE_URI)
|
9
|
+
super(conf, ScalableComplex::BASE_URI)
|
10
10
|
end
|
11
11
|
|
12
|
-
def population
|
13
|
-
|
14
|
-
body = JSON.parse(response.body)
|
15
|
-
body = {'complex' => [body]} unless body.has_key? 'complex'
|
16
|
-
body['complex'].map do |scalableComplex|
|
17
|
-
ScalableComplex.new scalableComplex
|
18
|
-
end
|
12
|
+
def population(opts = {})
|
13
|
+
get_all_resources(ScalableComplex, opts)
|
19
14
|
end
|
20
15
|
|
21
|
-
def get_object_scalableComplexes(uuids, includeAttributes, excludeAttributes)
|
22
|
-
|
23
|
-
response = if not includeAttributes.nil?
|
24
|
-
get_object_scalableComplexes_include_attributes(uuids, includeAttributes)
|
25
|
-
elsif not excludeAttributes.nil?
|
26
|
-
get_object_scalableComplexes_exclude_attributes(uuids, excludeAttributes)
|
27
|
-
elsif not uuids.nil?
|
28
|
-
response = connection(BASE_URI + "/" + uuids)
|
29
|
-
body = JSON.parse(response.body)
|
30
|
-
body = {'complex' => [body]} unless body.has_key? 'complex'
|
31
|
-
body['complex'].map do |scalableComplex|
|
32
|
-
ScalableComplex.new scalableComplex
|
33
|
-
end
|
34
|
-
else
|
35
|
-
response = connection(BASE_URI)
|
36
|
-
body = JSON.parse(response.body)
|
37
|
-
body = {'complex' => [body]} unless body.has_key? 'complex'
|
38
|
-
body['complex'].map do |scalableComplex|
|
39
|
-
ScalableComplex.new scalableComplex
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
def get_object_scalableComplexes_exclude_attributes(uuids, attributes)
|
46
|
-
|
47
|
-
if not uuids.nil?
|
48
|
-
response = connection(BASE_URI + "/" + uuids +"?excludeAttributes=" + attributes.join(","))
|
49
|
-
body = JSON.parse(response.body)
|
50
|
-
body = {'complex' => [body]} unless body.has_key? 'complex'
|
51
|
-
body['complex'].map do |scalableComplex|
|
52
|
-
ScalableComplex.new scalableComplex
|
53
|
-
end
|
54
|
-
else
|
55
|
-
response = connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
56
|
-
body = JSON.parse(response.body)
|
57
|
-
body = {'complex' => [body]} unless body.has_key? 'complex'
|
58
|
-
body['complex'].map do |scalableComplex|
|
59
|
-
ScalableComplex.new scalableComplex
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
end
|
64
|
-
|
65
|
-
def get_object_scalableComplexes_include_attributes(uuids, attributes)
|
66
|
-
if not uuids.nil?
|
67
|
-
response = connection(BASE_URI + "/" + uuids + "?includeAttributes=" + attributes.join(","))
|
68
|
-
body = JSON.parse(response.body)
|
69
|
-
body = {'complex' => [body]} unless body.has_key? 'complex'
|
70
|
-
body['complex'].map do |scalableComplex|
|
71
|
-
ScalableComplex.new scalableComplex
|
72
|
-
end
|
73
|
-
else
|
74
|
-
response = connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
75
|
-
body = JSON.parse(response.body)
|
76
|
-
body = {'complex' => [body]} unless body.has_key? 'complex'
|
77
|
-
body['complex'].map do |scalableComplex|
|
78
|
-
ScalableComplex.new scalableComplex
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
16
|
end
|
83
17
|
end
|
@@ -3,6 +3,7 @@ module XClarityClient
|
|
3
3
|
include XClarityClient::Resource
|
4
4
|
|
5
5
|
BASE_URI = '/switches'.freeze
|
6
|
+
LIST_NAME = 'switchList'.freeze
|
6
7
|
|
7
8
|
attr_accessor :properties, :_id, :accessState, :applyPending, :attachedNodes, :cmmDisplayName, :cmmHealthState, :entitleSerialNumber, :fans, :firmware, :hostname, :ipInterfaces,
|
8
9
|
:leds, :macAddresses, :machineType, :manufacturer, :manufacturerId, :ports, :productId, :productName, :protectedMode, :serialNumber, :type, :upTime, :uuid, :accessState,
|
@@ -2,58 +2,15 @@ require 'json'
|
|
2
2
|
|
3
3
|
module XClarityClient
|
4
4
|
class SwitchManagement < XClarityBase
|
5
|
-
|
6
|
-
BASE_URI = '/switches'.freeze
|
5
|
+
include XClarityClient::ManagementMixin
|
7
6
|
|
8
7
|
def initialize(conf)
|
9
|
-
super(conf, BASE_URI)
|
10
|
-
end
|
11
|
-
|
12
|
-
def population
|
13
|
-
response = connection(BASE_URI)
|
14
|
-
body = JSON.parse(response.body)
|
15
|
-
body = {'switchList' => [body]} unless body.has_key? 'switchList'
|
16
|
-
body['switchList'].map do |switch|
|
17
|
-
Switch.new switch
|
18
|
-
end
|
8
|
+
super(conf, Switch::BASE_URI)
|
19
9
|
end
|
20
10
|
|
21
|
-
def
|
22
|
-
|
23
|
-
response = if not includeAttributes.nil?
|
24
|
-
get_object_switches_include_attributes(uuids, includeAttributes)
|
25
|
-
elsif not excludeAttributes.nil?
|
26
|
-
get_object_switches_exclude_attributes(uuids, excludeAttributes)
|
27
|
-
elsif not uuids.nil?
|
28
|
-
connection(BASE_URI + "/" + uuids.join(","))
|
29
|
-
else
|
30
|
-
connection(BASE_URI)
|
31
|
-
end
|
32
|
-
|
33
|
-
body = JSON.parse(response.body)
|
34
|
-
body = {'switchList' => [body]} unless body.has_key? 'switchList'
|
35
|
-
body['switchList'].map do |switch|
|
36
|
-
Switch.new switch
|
37
|
-
end
|
38
|
-
|
11
|
+
def population(opts = {})
|
12
|
+
get_all_resources(Switch, opts)
|
39
13
|
end
|
40
14
|
|
41
|
-
def get_object_switches_exclude_attributes(uuids, attributes)
|
42
|
-
|
43
|
-
response = if not uuids.nil?
|
44
|
-
connection(BASE_URI + "/#{uuids.join(",")}"+"?excludeAttributes=#{attributes.join(",")}")
|
45
|
-
else
|
46
|
-
connection(BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
47
|
-
end
|
48
|
-
|
49
|
-
end
|
50
|
-
|
51
|
-
def get_object_switches_include_attributes(uuids, attributes)
|
52
|
-
response = if not uuids.nil?
|
53
|
-
connection(BASE_URI + "/" + uuids.join(",") + "?includeAttributes=" + attributes.join(","))
|
54
|
-
else
|
55
|
-
connection(BASE_URI + "?includeAttributes=" + attributes.join(","))
|
56
|
-
end
|
57
|
-
end
|
58
15
|
end
|
59
16
|
end
|
@@ -18,7 +18,7 @@ module XClarityClient
|
|
18
18
|
#Building configuration
|
19
19
|
@conn = Faraday.new(url: conf.host + uri) do |faraday|
|
20
20
|
faraday.request :url_encoded # form-encode POST params
|
21
|
-
|
21
|
+
faraday.response :logger # log requests to STDOUT -- This line, should be uncommented if you wanna inspect the URL Request
|
22
22
|
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
|
23
23
|
faraday.ssl[:verify] = conf.verify_ssl == 'PEER'
|
24
24
|
end
|
@@ -32,8 +32,9 @@ module XClarityClient
|
|
32
32
|
|
33
33
|
private
|
34
34
|
|
35
|
-
def connection(uri = "",
|
36
|
-
|
35
|
+
def connection(uri = "", opts = {})
|
36
|
+
query = opts.size > 0 ? "?" + opts.map {|k, v| "#{k}=#{v}"}.join(",") : ""
|
37
|
+
@conn.get(uri + query)
|
37
38
|
end
|
38
39
|
|
39
40
|
def authentication(conf)
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module XClarityClient
|
2
|
+
module ManagementMixin
|
3
|
+
|
4
|
+
|
5
|
+
def get_all_resources (resource, opts = {})
|
6
|
+
response = connection(resource::BASE_URI, opts)
|
7
|
+
|
8
|
+
return [] unless response.success?
|
9
|
+
|
10
|
+
body = JSON.parse(response.body)
|
11
|
+
body = {resource::LIST_NAME => [body]} unless body.has_key? resource::LIST_NAME
|
12
|
+
body[resource::LIST_NAME].map do |resource_params|
|
13
|
+
resource.new resource_params
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_object(uuids, includeAttributes, excludeAttributes, resource)
|
18
|
+
|
19
|
+
uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
|
20
|
+
|
21
|
+
response = if not includeAttributes.nil?
|
22
|
+
get_object_with_include_attributes(uuids, includeAttributes, resource)
|
23
|
+
elsif not excludeAttributes.nil?
|
24
|
+
get_object_with_exclude_attributes(uuids, excludeAttributes, resource)
|
25
|
+
elsif not uuids.nil?
|
26
|
+
connection(resource::BASE_URI + "/" + uuids.join(","))
|
27
|
+
else
|
28
|
+
connection(resource::BASE_URI)
|
29
|
+
end
|
30
|
+
|
31
|
+
return [] unless response.success?
|
32
|
+
|
33
|
+
body = JSON.parse(response.body)
|
34
|
+
body = {resource::LIST_NAME => [body]} unless body.has_key? resource::LIST_NAME
|
35
|
+
body[resource::LIST_NAME].map do |resource_params|
|
36
|
+
resource.new resource_params
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def get_object_with_include_attributes(uuids, attributes, resource)
|
41
|
+
|
42
|
+
uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
|
43
|
+
|
44
|
+
response = if not uuids.nil?
|
45
|
+
connection(resource::BASE_URI + "/" + uuids.join(",") + "?includeAttributes=" + attributes.join(","))
|
46
|
+
else
|
47
|
+
connection(resource::BASE_URI + "?includeAttributes=" + attributes.join(","))
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
def get_object_with_exclude_attributes(uuids, attributes, resource)
|
53
|
+
|
54
|
+
uuids.reject! { |uuid| UUID.validate(uuid).nil? } unless uuids.nil?
|
55
|
+
|
56
|
+
response = if not uuids.nil?
|
57
|
+
connection(resource::BASE_URI + "/#{uuids.join(",")}"+"?excludeAttributes=#{attributes.join(",")}")
|
58
|
+
else
|
59
|
+
connection(resource::BASE_URI + "?excludeAttributes=" + attributes.join(","))
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xclarity_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Cheal
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -166,6 +166,7 @@ files:
|
|
166
166
|
- lib/xclarity_client/version.rb
|
167
167
|
- lib/xclarity_client/virtual_appliance_management.rb
|
168
168
|
- lib/xclarity_client/xclarity_base.rb
|
169
|
+
- lib/xclarity_client/xclarity_management_mixin.rb
|
169
170
|
- lib/xclarity_client/xclarity_resource.rb
|
170
171
|
- xclarity_client.gemspec
|
171
172
|
homepage: https://github.com/juliancheal/xclarity_client
|