xclarity_client 0.3.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5f6fe01d2f0c546424c2b60568dac517bf577fb5
4
- data.tar.gz: dd4a30bdaccb0a616f8c802d2a258b9126d426d6
3
+ metadata.gz: c41d0e0311636c2489fb235c85afada88e6b866b
4
+ data.tar.gz: 030b0aaf7c1df57889a4fe720eb34b6717ecdc4b
5
5
  SHA512:
6
- metadata.gz: b71782c8a9d1f72ec4e8d4b4001d63305b4dda3830a9df8730028101b03e894965cbde6ed48e5bc06dc93b13141a9c622e746fa10ac4dc418f32fdeca4b13dab
7
- data.tar.gz: a57f0f9881982d2ebeb7a9c2669cfdc4c08dd859aecbe62c4f3da0cad022f383af60828f4d19a75c29980f19f9b3ebb0692686b0b2ad4263e77321db8e9c577e
6
+ metadata.gz: cb641bc7a7d1a8daaccae075b09dbc494b0a6522dcbd134113f30d09e499c4f1d601fea9507cda900fe53ad243bd5f8b36b5ba23ef3b76a086727700cc57f64f
7
+ data.tar.gz: 8c047ae42ff2b663f228c046a49bfcd4891e14091dc8a5517fe7730525d1032173103ebdbc2dba2775a672324392cca2eee380804ba164966947014c3c8f79ba
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # XClarity Client
2
2
 
3
- [![Build Status](https://travis-ci.org/juliancheal/xclarity_client.svg)](https://travis-ci.org/juliancheal/xclarity_client)
3
+ [![Build Status](https://travis-ci.org/lenovo/xclarity_client.svg)](https://travis-ci.org/lenovo/xclarity_client)
4
4
 
5
5
  Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/xclarity_client`. To experiment with that code, run `bin/console` for an interactive prompt.
6
6
 
@@ -0,0 +1,36 @@
1
+ FORMAT: 1A
2
+
3
+ # Events
4
+
5
+ # GET /events
6
+
7
+ + Response 200 (application/json)
8
+ [ { "eventDate": "2016-12-21T17:13:58Z", "systemTypeText": "Management", "chassisText": "Not Available", "timeStamp": "2016-12-21T17:13:58Z", "location": "", "args": [ "EAAC33576492E511B46A70E28412CA06" ], "originatorUUID": "", "systemName": "Management Server", "bayText": "Not Available", "mtm": "", "userid": "", "fruSerialNumberText": "Not Available", "eventSourceText": "Management", "serialnum": "", "sourceLogID": "", "action": 100, "parameters": {}, "localLogSequence": "", "localLogID": "", "sourceID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "systemTypeModelText": "Not Available", "flags": "", "userIDIndex": 0, "failSNs": "", "severityText": "Warning", "severity": 300, "serviceabilityText": "User", "failFRUs": "", "msg": "Endpoint EAAC33576492E511B46A70E28412CA06 could not be accessed because credentials were refused.", "componentID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "eventClass": 800, "eventID": "FQXHMTS0009G", "sourceLogSequence": 0, "systemSerialNumberText": "Not Available", "cn": "242679", "service": 300, "typeText": "System", "msgID": "", "systemFruNumberText": "Not Available", "systemText": "Management Server" }, { "eventDate": "2016-12-21T17:13:58Z", "systemTypeText": "Management", "chassisText": "Not Available", "timeStamp": "2016-12-21T17:13:58Z", "location": "", "args": [ "EAAC33576492E511B46A70E28412CA06", "03.76.208", "TB5TS381" ], "originatorUUID": "", "systemName": "Management Server", "bayText": "Not Available", "mtm": "", "userid": "", "fruSerialNumberText": "Not Available", "eventSourceText": "Management", "serialnum": "", "sourceLogID": "", "action": 100, "parameters": {}, "localLogSequence": "", "localLogID": "", "sourceID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "systemTypeModelText": "Not Available", "flags": "", "userIDIndex": 0, "failSNs": "", "severityText": "Warning", "severity": 300, "serviceabilityText": "User", "failFRUs": "", "msg": "Inventory data could not be retrieved from the endpoint EAAC33576492E511B46A70E28412CA06. BIOS: 03.76.208, BMC: TB5TS381", "componentID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "eventClass": 800, "eventID": "FQXHMTS0003G", "sourceLogSequence": 0, "systemSerialNumberText": "Not Available", "cn": "242678", "service": 300, "typeText": "System", "msgID": "", "systemFruNumberText": "Not Available", "systemText": "Management Server" }, { "eventDate": "2016-12-21T17:13:58Z", "systemTypeText": "Management", "chassisText": "Not Available", "timeStamp": "2016-12-21T17:13:58Z", "location": "", "args": [ "EAAC33576492E511B46A70E28412CA06" ], "originatorUUID": "", "systemName": "Management Server", "bayText": "Not Available", "mtm": "", "userid": "", "fruSerialNumberText": "Not Available", "eventSourceText": "Management", "serialnum": "", "sourceLogID": "", "action": 100, "parameters": {}, "localLogSequence": "", "localLogID": "", "sourceID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "systemTypeModelText": "Not Available", "flags": "", "userIDIndex": 0, "failSNs": "", "severityText": "Warning", "severity": 300, "serviceabilityText": "User", "failFRUs": "", "msg": "Endpoint EAAC33576492E511B46A70E28412CA06 could not be accessed because credentials were refused.", "componentID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "eventClass": 800, "eventID": "FQXHMTS0009G", "sourceLogSequence": 0, "systemSerialNumberText": "Not Available", "cn": "242677", "service": 300, "typeText": "System", "msgID": "", "systemFruNumberText": "Not Available", "systemText": "Management Server" } ]
9
+
10
+ + Response 400
11
+ + Response 401
12
+ + Response 404
13
+ + Response 409
14
+ + Response 500
15
+
16
+ # GET /events?filterWith=%257B%2522filterType%2522%3A%2522FIELDNOTREGEXAND%2522%2C%2522fields%2522%3A%5B%257B%2522operation%2522%3A%2522GT%2522%2C%2522field%2522%3A%2522cn%2522%2C%2522value%2522%3A%2522242328%2522%257D%5D%257D
17
+
18
+ + Response 200 (application/json)
19
+ [ { "eventDate": "2016-12-21T16:01:58Z","systemTypeText":"Management","chassisText":"Not Available","timeStamp":"2016-12-21T16:01:58Z", "location": "", "args": [ "EAAC33576492E511B46A70E28412CA06" ], "originatorUUID": "", "systemName": "Management Server", "bayText": "Not Available", "mtm": "", "userid": "", "fruSerialNumberText": "Not Available", "eventSourceText": "Management", "serialnum": "", "sourceLogID": "", "action": 100, "parameters": {}, "localLogSequence": "", "localLogID": "", "sourceID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "systemTypeModelText": "Not Available", "flags": "", "userIDIndex": 0, "failSNs": "", "severityText": "Warning", "severity": 300, "serviceabilityText": "User", "failFRUs": "", "msg": "Endpoint EAAC33576492E511B46A70E28412CA06 could not be accessed because credentials were refused.", "componentID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "eventClass": 800, "eventID": "FQXHMTS0009G", "sourceLogSequence": 0, "systemSerialNumberText": "Not Available", "cn": "242331", "service": 300, "typeText": "System", "msgID": "", "systemFruNumberText": "Not Available", "systemText": "Management Server" }, { "eventDate": "2016-12-21T16:01:58Z", "systemTypeText": "Management", "chassisText": "Not Available", "timeStamp": "2016-12-21T16:01:58Z", "location": "", "args": [ "EAAC33576492E511B46A70E28412CA06", "03.76.208", "TB5TS381" ], "originatorUUID": "", "systemName": "Management Server", "bayText": "Not Available", "mtm": "", "userid": "", "fruSerialNumberText": "Not Available", "eventSourceText": "Management", "serialnum": "", "sourceLogID": "", "action": 100, "parameters": {}, "localLogSequence": "", "localLogID": "", "sourceID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "systemTypeModelText": "Not Available", "flags": "", "userIDIndex": 0, "failSNs": "", "severityText": "Warning", "severity": 300, "serviceabilityText": "User", "failFRUs": "", "msg": "Inventory data could not be retrieved from the endpoint EAAC33576492E511B46A70E28412CA06. BIOS: 03.76.208, BMC: TB5TS381", "componentID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "eventClass": 800, "eventID": "FQXHMTS0003G", "sourceLogSequence": 0, "systemSerialNumberText": "Not Available", "cn": "242330", "service": 300, "typeText": "System", "msgID": "", "systemFruNumberText": "Not Available", "systemText": "Management Server" }, { "eventDate": "2016-12-21T16:01:58Z", "systemTypeText": "Management", "chassisText": "Not Available", "timeStamp": "2016-12-21T16:01:58Z", "location": "", "args": [ "EAAC33576492E511B46A70E28412CA06" ], "originatorUUID": "", "systemName": "Management Server", "bayText": "Not Available", "mtm": "", "userid": "", "fruSerialNumberText": "Not Available", "eventSourceText": "Management", "serialnum": "", "sourceLogID": "", "action": 100, "parameters": {}, "localLogSequence": "", "localLogID": "", "sourceID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "systemTypeModelText": "Not Available", "flags": "", "userIDIndex": 0, "failSNs": "", "severityText": "Warning", "severity": 300, "serviceabilityText": "User", "failFRUs": "", "msg": "Endpoint EAAC33576492E511B46A70E28412CA06 could not be accessed because credentials were refused.", "componentID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "eventClass": 800, "eventID": "FQXHMTS0009G", "sourceLogSequence": 0, "systemSerialNumberText": "Not Available", "cn": "242329", "service": 300, "typeText": "System", "msgID": "", "systemFruNumberText": "Not Available", "systemText": "Management Server" } ]
20
+
21
+ + Response 400
22
+ + Response 401
23
+ + Response 404
24
+ + Response 409
25
+ + Response 500
26
+
27
+ # GET /events?sort=cn
28
+
29
+ + Response 200 (application/json)
30
+ [ { "eventDate": "2016-10-19T20:41:40Z", "systemTypeText": "Management", "chassisText": "Not Available", "timeStamp": "2016-10-19T20:41:41Z", "location": "", "args": [ "10.243.12.93", "SYSMGR_7QXUWSTC" ], "originatorUUID": "", "systemName": "Management Server", "bayText": "Not Available", "mtm": "", "userid": "", "fruSerialNumberText": "Not Available", "eventSourceText": "Management", "serialnum": "", "sourceLogID": "", "action": 100, "parameters": {}, "localLogSequence": "", "localLogID": "", "sourceID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "systemTypeModelText": "Not Available", "flags": "", "userIDIndex": 1, "failSNs": "", "severityText": "Informational", "severity": 200, "serviceabilityText": "Not Required", "failFRUs": "", "msg": "Management Server 10.243.12.93 started by SYSMGR_7QXUWSTC.", "componentID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "eventClass": 800, "eventID": "FQXHMNM0125I", "sourceLogSequence": 0, "systemSerialNumberText": "Not Available", "cn": "5", "service": 100, "typeText": "System", "msgID": "", "systemFruNumberText": "Not Available", "systemText": "Management Server" }, { "eventDate": "2016-10-19T20:49:23Z", "systemTypeText": "Management", "chassisText": "Not Available", "timeStamp": "2016-10-19T20:49:25Z", "location": "", "args": [ "10.243.13.246", "SYSMGR_CAJFSKVT" ], "originatorUUID": "", "systemName": "Management Server", "bayText": "Not Available", "mtm": "", "userid": "", "fruSerialNumberText": "Not Available", "eventSourceText": "Management", "serialnum": "", "sourceLogID": "", "action": 100, "parameters": {}, "localLogSequence": "", "localLogID": "", "sourceID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "systemTypeModelText": "Not Available", "flags": "", "userIDIndex": 1, "failSNs": "", "severityText": "Informational", "severity": 200, "serviceabilityText": "Not Required", "failFRUs": "", "msg": "Management Server 10.243.13.246 started by SYSMGR_CAJFSKVT.", "componentID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "eventClass": 800, "eventID": "FQXHMNM0125I", "sourceLogSequence": 0, "systemSerialNumberText": "Not Available", "cn": "16", "service": 100, "typeText": "System", "msgID": "", "systemFruNumberText": "Not Available", "systemText": "Management Server" }, { "eventDate": "2016-11-10T10:05:01Z", "systemTypeText": "Management", "chassisText": "Not Available", "timeStamp": "2016-11-10T10:05:01Z", "location": "", "args": [ "server", "RD650", "8270A9889761E51181793C18A001A220" ], "originatorUUID": "", "systemName": "Management Server", "bayText": "Not Available", "mtm": "", "userid": "", "fruSerialNumberText": "Not Available", "eventSourceText": "Management", "serialnum": "", "sourceLogID": "", "action": 100, "parameters": {}, "localLogSequence": "", "localLogID": "", "sourceID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "systemTypeModelText": "Not Available", "flags": "", "userIDIndex": 0, "failSNs": "", "severityText": "Informational", "severity": 200, "serviceabilityText": "Not Required", "failFRUs": "", "msg": "Connectivity to server RD650 has been lost. UUID is 8270A9889761E51181793C18A001A220.", "componentID": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "eventClass": 800, "eventID": "FQXHMDM0003I", "sourceLogSequence": 0, "systemSerialNumberText": "Not Available", "cn": "74", "service": 100, "typeText": "System", "msgID": "", "systemFruNumberText": "Not Available", "systemText": "Management Server" } ]
31
+
32
+ + Response 400
33
+ + Response 401
34
+ + Response 404
35
+ + Response 409
36
+ + Response 500
@@ -9008,3 +9008,17 @@ FORMAT: 1A
9008
9008
  + Response 404
9009
9009
  + Response 409
9010
9010
  + Response 500
9011
+
9012
+ # PUT /nodes/6B538D351B8211E193F65CF3FC6E4030
9013
+
9014
+ + Response 200 (application/json)
9015
+
9016
+ +Headers
9017
+
9018
+ Location: "/jobs/1"
9019
+
9020
+ + Response 400
9021
+ + Response 401
9022
+ + Response 404
9023
+ + Response 409
9024
+ + Response 500
@@ -1,4 +1,4 @@
1
- require "xclarity_client/version"
1
+ require 'xclarity_client/version'
2
2
 
3
3
  module XClarityClient
4
4
  end
@@ -29,3 +29,5 @@ require 'xclarity_client/canister'
29
29
  require 'xclarity_client/canister_management'
30
30
  require 'xclarity_client/cabinet'
31
31
  require 'xclarity_client/cabinet_management'
32
+ require 'xclarity_client/event'
33
+ require 'xclarity_client/event_management'
@@ -1,6 +1,5 @@
1
1
  module XClarityClient
2
2
  class Client
3
-
4
3
  def initialize(connection)
5
4
  @connection = connection
6
5
  end
@@ -17,28 +16,48 @@ module XClarityClient
17
16
  CabinetManagement.new(@connection).population opts
18
17
  end
19
18
 
20
- def fetch_cabinet(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
21
- CabinetManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Cabinet)
19
+ def fetch_cabinet(uuids = nil,
20
+ includeAttributes = nil,
21
+ excludeAttributes = nil)
22
+ CabinetManagement.new(@connection).get_object(uuids,
23
+ includeAttributes,
24
+ excludeAttributes,
25
+ Cabinet)
22
26
  end
23
27
 
24
28
  def discover_canisters(opts = {})
25
29
  CanisterManagement.new(@connection).population opts
26
30
  end
27
31
 
28
- def fetch_canisters(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
29
- CanisterManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Canister)
32
+ def fetch_canisters(uuids = nil,
33
+ includeAttributes = nil,
34
+ excludeAttributes = nil)
35
+ CanisterManagement.new(@connection).get_object(uuids,
36
+ includeAttributes,
37
+ excludeAttributes,
38
+ Canister)
30
39
  end
31
40
 
32
41
  def discover_cmms(opts = {})
33
42
  CmmManagement.new(@connection).population opts
34
43
  end
35
44
 
36
- def fetch_cmms(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
37
- CmmManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Cmm)
45
+ def fetch_cmms(uuids = nil,
46
+ includeAttributes = nil,
47
+ excludeAttributes = nil)
48
+ CmmManagement.new(@connection).get_object(uuids,
49
+ includeAttributes,
50
+ excludeAttributes,
51
+ Cmm)
38
52
  end
39
53
 
40
- def fetch_fans(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
41
- FanManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Fan)
54
+ def fetch_fans(uuids = nil,
55
+ includeAttributes = nil,
56
+ excludeAttributes = nil)
57
+ FanManagement.new(@connection).get_object(uuids,
58
+ includeAttributes,
59
+ excludeAttributes,
60
+ Fan)
42
61
  end
43
62
 
44
63
  def discover_fans(opts = {})
@@ -53,8 +72,13 @@ module XClarityClient
53
72
  FanMuxManagement.new(@connection).population opts
54
73
  end
55
74
 
56
- def fetch_fan_muxes(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
57
- FanMuxManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, FanMux)
75
+ def fetch_fan_muxes(uuids = nil,
76
+ includeAttributes = nil,
77
+ excludeAttributes = nil)
78
+ FanMuxManagement.new(@connection).get_object(uuids,
79
+ includeAttributes,
80
+ excludeAttributes,
81
+ FanMux)
58
82
  end
59
83
 
60
84
  def discover_chassis(opts = {})
@@ -65,24 +89,83 @@ module XClarityClient
65
89
  PowerSupplyManagement.new(@connection).population opts
66
90
  end
67
91
 
68
- def fetch_nodes(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
69
- NodeManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Node)
92
+ def fetch_nodes(uuids = nil,
93
+ includeAttributes = nil,
94
+ excludeAttributes = nil)
95
+ NodeManagement.new(@connection).get_object(uuids,
96
+ includeAttributes,
97
+ excludeAttributes,
98
+ Node)
99
+ end
100
+
101
+ def fetch_chassis(uuids = nil,
102
+ includeAttributes = nil,
103
+ excludeAttributes = nil)
104
+ ChassiManagement.new(@connection).get_object(uuids,
105
+ includeAttributes,
106
+ excludeAttributes,
107
+ Chassi)
108
+ end
109
+
110
+ def fetch_scalableComplexes(uuids = nil,
111
+ includeAttributes = nil,
112
+ excludeAttributes = nil)
113
+ ScalableComplexManagement.new(@connection).get_object(uuids,
114
+ includeAttributes,
115
+ excludeAttributes,
116
+ ScalableComplex)
117
+ end
118
+
119
+ def fetch_switches(uuids = nil,
120
+ includeAttributes = nil,
121
+ excludeAttributes = nil)
122
+ SwitchManagement.new(@connection).get_object(uuids,
123
+ includeAttributes,
124
+ excludeAttributes,
125
+ Switch)
126
+ end
127
+
128
+ def fetch_power_supplies(uuids = nil,
129
+ includeAttributes = nil,
130
+ excludeAttributes = nil)
131
+ PowerSupplyManagement.new(@connection).get_object(uuids,
132
+ includeAttributes,
133
+ excludeAttributes,
134
+ PowerSupply)
135
+ end
136
+
137
+ def discover_events
138
+ EventManagement.new(@connection).population
139
+ end
140
+
141
+ def fetch_events(opts = {})
142
+ EventManagement.new(@connection).get_object_with_opts(opts, Event)
143
+ end
144
+
145
+ def power_on_node(uuid = '')
146
+ NodeManagement.new(@connection).set_node_power_state(uuid, 'powerOn')
147
+ end
148
+
149
+ def power_off_node(uuid = '')
150
+ NodeManagement.new(@connection).set_node_power_state(uuid, 'powerOff')
70
151
  end
71
152
 
72
- def fetch_chassis(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
73
- ChassiManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Chassi)
153
+ def power_restart_node(uuid = '')
154
+ NodeManagement.new(@connection).set_node_power_state(uuid,
155
+ 'powerCycleSoftGrace'
156
+ )
74
157
  end
75
158
 
76
- def fetch_scalableComplexes(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
77
- ScalableComplexManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, ScalableComplex)
159
+ def blink_loc_led(uuid = '')
160
+ NodeManagement.new(@connection).set_loc_led_state(uuid, 'Blinking')
78
161
  end
79
162
 
80
- def fetch_switches(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
81
- SwitchManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, Switch)
163
+ def turn_on_loc_led(uuid = '')
164
+ NodeManagement.new(@connection).set_loc_led_state(uuid, 'On')
82
165
  end
83
166
 
84
- def fetch_power_supplies(uuids = nil, includeAttributes = nil, excludeAttributes = nil)
85
- PowerSupplyManagement.new(@connection).get_object(uuids, includeAttributes, excludeAttributes, PowerSupply)
167
+ def turn_off_loc_led(uuid = '')
168
+ NodeManagement.new(@connection).set_loc_led_state(uuid, 'Off')
86
169
  end
87
170
  end
88
171
  end
@@ -6,7 +6,6 @@ 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}"
10
9
 
11
10
  args.each { |key, value| send("#{key}=", value) }
12
11
 
@@ -0,0 +1,20 @@
1
+ module XClarityClient
2
+ class Event
3
+ include XClarityClient::Resource
4
+
5
+ BASE_URI = '/events'.freeze
6
+ LIST_NAME = 'eventList'.freeze
7
+
8
+ attr_accessor :action, :args, :bayText, :chassisText, :cn, :componentID, :eventClass, :eventDate,
9
+ :eventSourceText, :eventID, :failFRUs, :failSNs, :flags, :fruSerialNumberText, :localLogID,
10
+ :localLogSequence, :location, :msg, :msgID, :mtm, :originatorUUID, :parameters,
11
+ :serialnum, :severity, :severityText, :service, :serviceabilityText, :sourceID,
12
+ :sourceLogID, :sourceLogSequence, :systemFruNumberText, :systemName,
13
+ :systemSerialNumberText, :systemText, :systemTypeModelText, :systemTypeText, :timeStamp,
14
+ :typeText, :userid, :userIDIndex
15
+
16
+ def initialize(attributes)
17
+ build_resource(attributes)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ require 'json'
2
+
3
+ module XClarityClient
4
+ class EventManagement < XClarityBase
5
+
6
+ include XClarityClient::ManagementMixin
7
+
8
+ def initialize(conf)
9
+ super(conf, Event::BASE_URI)
10
+ end
11
+
12
+ def population
13
+ get_all_resources(Event)
14
+ end
15
+
16
+ end
17
+ end
@@ -3,7 +3,7 @@ require 'uuid'
3
3
 
4
4
  module XClarityClient
5
5
  class NodeManagement < XClarityBase
6
-
6
+ OFF = 1
7
7
  include XClarityClient::ManagementMixin
8
8
 
9
9
  def initialize(conf)
@@ -14,5 +14,21 @@ module XClarityClient
14
14
  get_all_resources(Node, opts)
15
15
  end
16
16
 
17
+ def set_node_power_state(uuid, powerState = OFF)
18
+ puts 'UUID to shutdown ' + uuid
19
+ power_request = case powerState
20
+ when OFF
21
+ JSON.generate(powerState: 'powerOff')
22
+ else
23
+ JSON.generate(powerState: 'powerOn')
24
+ end
25
+
26
+ do_put(Node::BASE_URI + '/' + uuid, power_request)
27
+ end
28
+
29
+ def set_loc_led_state(uuid, state, name = 'Identify')
30
+ request = JSON.generate(leds: [{ name: name, state: state }])
31
+ do_put("#{Node::BASE_URI}/#{uuid}", request)
32
+ end
17
33
  end
18
34
  end
@@ -1,3 +1,3 @@
1
1
  module XClarityClient
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -37,6 +37,14 @@ module XClarityClient
37
37
  @conn.get(uri + query)
38
38
  end
39
39
 
40
+ def do_put (uri="", request = {})
41
+ @conn.put do |req|
42
+ req.url uri
43
+ req.headers['Content-Type'] = 'application/json'
44
+ req.body = request
45
+ end
46
+ end
47
+
40
48
  def authentication(conf)
41
49
  response = @conn.post do |request|
42
50
  request.url '/session'
@@ -1,13 +1,12 @@
1
1
  module XClarityClient
2
2
  module ManagementMixin
3
-
4
-
5
3
  def get_all_resources (resource, opts = {})
6
4
  response = connection(resource::BASE_URI, opts)
7
5
 
8
6
  return [] unless response.success?
9
-
7
+
10
8
  body = JSON.parse(response.body)
9
+ body = {resource::LIST_NAME => body} if body.is_a? Array
11
10
  body = {resource::LIST_NAME => [body]} unless body.has_key? resource::LIST_NAME
12
11
  body[resource::LIST_NAME].map do |resource_params|
13
12
  resource.new resource_params
@@ -31,6 +30,7 @@ module XClarityClient
31
30
  return [] unless response.success?
32
31
 
33
32
  body = JSON.parse(response.body)
33
+ body = {resource::LIST_NAME => body} if body.is_a? Array
34
34
  body = {resource::LIST_NAME => [body]} unless body.has_key? resource::LIST_NAME
35
35
  body[resource::LIST_NAME].map do |resource_params|
36
36
  resource.new resource_params
@@ -58,8 +58,37 @@ module XClarityClient
58
58
  else
59
59
  connection(resource::BASE_URI + "?excludeAttributes=" + attributes.join(","))
60
60
  end
61
-
62
61
  end
63
62
 
63
+ def get_object_with_opts(opts, resource)
64
+ raise "The opts cannot be empty" if opts.empty?
65
+ filter = ""
66
+
67
+ response = if not opts.empty?
68
+ if not opts.has_key? "type"
69
+ if opts.has_key? "filterWith"
70
+ filter += "?filterWith="
71
+ filter += "#{opts["filterWith"]}"
72
+
73
+ elsif opts.has_key? "sort"
74
+ filter += ",sort=" if filter != ""
75
+ filter += "?sort=" if filter == ""
76
+ filter += "#{opts["sort"]}"
77
+ end
78
+ else
79
+ filter += "?type=#{opts["type"]}"
80
+ end
81
+ connection(resource::BASE_URI + filter)
82
+ end
83
+
84
+ return [] unless response.success?
85
+
86
+ body = JSON.parse(response.body)
87
+ body = {resource::LIST_NAME => body} if body.is_a? Array
88
+ body = {resource::LIST_NAME => [body]} unless body.has_key? resource::LIST_NAME
89
+ body[resource::LIST_NAME].map do |resource_params|
90
+ resource.new resource_params
91
+ end
92
+ end
64
93
  end
65
94
  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.3.1
4
+ version: 0.4.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-09 00:00:00.000000000 Z
11
+ date: 2017-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -131,6 +131,7 @@ files:
131
131
  - docs/apib/canister.apib
132
132
  - docs/apib/chassis.apib
133
133
  - docs/apib/cmm.apib
134
+ - docs/apib/event.apib
134
135
  - docs/apib/fan.apib
135
136
  - docs/apib/fan_mux.apib
136
137
  - docs/apib/fan_muxes.apib
@@ -151,6 +152,8 @@ files:
151
152
  - lib/xclarity_client/cmm.rb
152
153
  - lib/xclarity_client/cmm_management.rb
153
154
  - lib/xclarity_client/configuration.rb
155
+ - lib/xclarity_client/event.rb
156
+ - lib/xclarity_client/event_management.rb
154
157
  - lib/xclarity_client/fan.rb
155
158
  - lib/xclarity_client/fan_management.rb
156
159
  - lib/xclarity_client/fan_mux.rb
@@ -188,9 +191,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
191
  version: '0'
189
192
  requirements: []
190
193
  rubyforge_project:
191
- rubygems_version: 2.6.3
194
+ rubygems_version: 2.5.1
192
195
  signing_key:
193
196
  specification_version: 4
194
197
  summary: Lenovo XClairty API Client
195
198
  test_files: []
196
- has_rdoc: