xclarity_client 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/docs/apib/node_bmc.apib +15 -0
- data/lib/xclarity_client/client.rb +2 -14
- data/lib/xclarity_client/node_management.rb +33 -12
- data/lib/xclarity_client/version.rb +1 -1
- data/lib/xclarity_client/xclarity_power_management_mixin.rb +36 -0
- data/lib/xclarity_client/xclarity_resource.rb +1 -0
- data/lib/xclarity_client.rb +2 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66b57c7b42803f37cb0a30b52a4e98224beeb4e4
|
4
|
+
data.tar.gz: 68bccb6791d594e9215cd1f415520e009aba56f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e9b91e844ad444cad459fdef944c327d9925016b2928c1e53a1f436a4d355161b2aad9cf2f95aa887cd83702775e8944700ab8b90545416c2fb7fa138c6c520
|
7
|
+
data.tar.gz: 830f1079550d10f203feba46d65db5bd54c497e5a0a77b80265a1d784c5eb7aaad1e87ebfd9ada21fa3b7a58d61794779d1a53126c82b97ce8b01deea44f4682
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module XClarityClient
|
2
2
|
class Client
|
3
|
+
include XClarityClient::PowerManagementMixin
|
4
|
+
|
3
5
|
def initialize(connection)
|
4
6
|
@connection = connection
|
5
7
|
end
|
@@ -142,20 +144,6 @@ module XClarityClient
|
|
142
144
|
EventManagement.new(@connection).get_object_with_opts(opts, Event)
|
143
145
|
end
|
144
146
|
|
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')
|
151
|
-
end
|
152
|
-
|
153
|
-
def power_restart_node(uuid = '')
|
154
|
-
NodeManagement.new(@connection).set_node_power_state(uuid,
|
155
|
-
'powerCycleSoftGrace'
|
156
|
-
)
|
157
|
-
end
|
158
|
-
|
159
147
|
def blink_loc_led(uuid = '')
|
160
148
|
NodeManagement.new(@connection).set_loc_led_state(uuid, 'Blinking')
|
161
149
|
end
|
@@ -1,9 +1,10 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'uuid'
|
3
3
|
|
4
|
+
# XClarityClient module/namespace
|
4
5
|
module XClarityClient
|
6
|
+
# Node Management class
|
5
7
|
class NodeManagement < XClarityBase
|
6
|
-
OFF = 1
|
7
8
|
include XClarityClient::ManagementMixin
|
8
9
|
|
9
10
|
def initialize(conf)
|
@@ -14,17 +15,26 @@ module XClarityClient
|
|
14
15
|
get_all_resources(Node, opts)
|
15
16
|
end
|
16
17
|
|
17
|
-
def set_node_power_state(uuid,
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
18
|
+
def set_node_power_state(uuid, requested_state = nil)
|
19
|
+
if [uuid, requested_state].any? { |item| item.nil? }
|
20
|
+
error = 'Invalid target or power state requested'
|
21
|
+
source = 'XClarity::NodeManagement set_node_power_state'
|
22
|
+
$lxca_log.info source, error
|
23
|
+
raise ArgumentError, error
|
24
|
+
end
|
25
|
+
|
26
|
+
send_power_request(Node::BASE_URI + '/' + uuid, requested_state)
|
27
|
+
end
|
28
|
+
|
29
|
+
def set_bmc_power_state(uuid, requested_state = nil)
|
30
|
+
if [uuid, requested_state].any? { |item| item.nil? }
|
31
|
+
error = 'Invalid target or power state requested'
|
32
|
+
source = 'XClarity::NodeManagement set_bmc_power_state'
|
33
|
+
$lxca_log.info source, error
|
34
|
+
raise ArgumentError, error
|
35
|
+
end
|
36
|
+
|
37
|
+
send_power_request(Node::BASE_URI + '/' + uuid + '/bmc', requested_state)
|
28
38
|
end
|
29
39
|
|
30
40
|
def set_loc_led_state(uuid, state, name = 'Identify')
|
@@ -34,5 +44,16 @@ module XClarityClient
|
|
34
44
|
|
35
45
|
do_put("#{Node::BASE_URI}/#{uuid}", request)
|
36
46
|
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def send_power_request(uri, requested_state = nil)
|
51
|
+
power_request = JSON.generate(powerState: requested_state)
|
52
|
+
response = do_put(uri, power_request)
|
53
|
+
msg = "Power state action has been sent with request #{power_request}"
|
54
|
+
|
55
|
+
$lxca_log.info 'XclarityClient::NodeManagement set_node_power_state', msg
|
56
|
+
response
|
57
|
+
end
|
37
58
|
end
|
38
59
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Top Level Xclarity module
|
2
|
+
module XClarityClient
|
3
|
+
# Power management mixin
|
4
|
+
module PowerManagementMixin
|
5
|
+
def power_on_node(uuid = '')
|
6
|
+
NodeManagement.new(@connection).set_node_power_state(uuid, :powerOn)
|
7
|
+
end
|
8
|
+
|
9
|
+
def power_off_node(uuid = '')
|
10
|
+
NodeManagement.new(@connection).set_node_power_state(uuid, :powerOff)
|
11
|
+
end
|
12
|
+
|
13
|
+
def power_off_node_now(uuid = '')
|
14
|
+
NodeManagement.new(@connection).set_node_power_state(uuid, :powerNMI)
|
15
|
+
end
|
16
|
+
|
17
|
+
def power_restart_node(uuid = '')
|
18
|
+
client = NodeManagement.new(@connection)
|
19
|
+
client.set_node_power_state(uuid, :powerCycleSoftGrace)
|
20
|
+
end
|
21
|
+
|
22
|
+
def power_restart_node_now(uuid = '')
|
23
|
+
client = NodeManagement.new(@connection)
|
24
|
+
client.set_node_power_state(uuid, :powerCycleSoft)
|
25
|
+
end
|
26
|
+
|
27
|
+
def power_restart_node_controller(uuid = '')
|
28
|
+
client = NodeManagement.new(@connection)
|
29
|
+
client.set_bmc_power_state(uuid, :restart)
|
30
|
+
end
|
31
|
+
|
32
|
+
def power_restart_node_to_setup(uuid = '')
|
33
|
+
NodeManagement.new(@connection).set_node_power_state(uuid, :bootToF1)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -4,6 +4,7 @@ module XClarityClient
|
|
4
4
|
attributes.each do |key, value|
|
5
5
|
begin
|
6
6
|
value = value.gsub("\u0000", '') if value.is_a?(String)
|
7
|
+
key = key.to_s.gsub("-","_")
|
7
8
|
send("#{key}=", value)
|
8
9
|
rescue
|
9
10
|
$log.warn("UNEXISTING ATTRIBUTES FOR #{self.class}: #{key}") unless defined?(Rails).nil?
|
data/lib/xclarity_client.rb
CHANGED
@@ -6,10 +6,10 @@ module XClarityClient
|
|
6
6
|
end
|
7
7
|
|
8
8
|
require 'xclarity_client/configuration'
|
9
|
-
require 'xclarity_client/client'
|
10
9
|
require 'xclarity_client/xclarity_base'
|
11
10
|
require 'xclarity_client/xclarity_resource'
|
12
11
|
require 'xclarity_client/xclarity_management_mixin'
|
12
|
+
require 'xclarity_client/xclarity_power_management_mixin'
|
13
13
|
require 'xclarity_client/virtual_appliance_management'
|
14
14
|
require 'xclarity_client/node'
|
15
15
|
require 'xclarity_client/node_management'
|
@@ -34,3 +34,4 @@ require 'xclarity_client/cabinet_management'
|
|
34
34
|
require 'xclarity_client/event'
|
35
35
|
require 'xclarity_client/event_management'
|
36
36
|
require 'xclarity_client/discover'
|
37
|
+
require 'xclarity_client/client'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xclarity_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manasa Rao
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-07-
|
12
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -152,6 +152,7 @@ files:
|
|
152
152
|
- docs/apib/fan_mux.apib
|
153
153
|
- docs/apib/fan_muxes.apib
|
154
154
|
- docs/apib/node.apib
|
155
|
+
- docs/apib/node_bmc.apib
|
155
156
|
- docs/apib/power_supply.apib
|
156
157
|
- docs/apib/scalable_complex.apib
|
157
158
|
- docs/apib/squisher.rb
|
@@ -188,6 +189,7 @@ files:
|
|
188
189
|
- lib/xclarity_client/virtual_appliance_management.rb
|
189
190
|
- lib/xclarity_client/xclarity_base.rb
|
190
191
|
- lib/xclarity_client/xclarity_management_mixin.rb
|
192
|
+
- lib/xclarity_client/xclarity_power_management_mixin.rb
|
191
193
|
- lib/xclarity_client/xclarity_resource.rb
|
192
194
|
- xclarity_client.gemspec
|
193
195
|
homepage: https://github.com/lenovo/xclarity_client
|