xclarity_client 0.3.1 → 0.4.1

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 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: