ibm_power_hmc 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ibm_power_hmc/connection.rb +30 -9
- data/lib/ibm_power_hmc/objects.rb +3 -1
- data/lib/ibm_power_hmc/pcm.rb +0 -9
- data/lib/ibm_power_hmc/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6aae673197b8e5426c2f75250ef521db9d7e8eed79a20c70089612a10d189cfc
|
4
|
+
data.tar.gz: f7b5cd95629fedf835a97eebd33874edf777527cb8af2c4c5ebdbaaf9364d4d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 793385e1153eff3f9d4bdb8eafe62365a92f0d7fcde75452c1327c36de86b99b2ffd011bf05a57ec9101b4d2d6e84139bc4e86e6cb83347aadef1f0fe5e10b1c
|
7
|
+
data.tar.gz: 3eedcfd6693b0ac13c725488c1f13bb6433e94b136eaebf1c48f4118582b7ed937ad0e6fe1d06f8c74d209eb67f885e181cc26b7b60683f837628f9fc5ed4f3c
|
@@ -330,8 +330,19 @@ module IbmPowerHmc
|
|
330
330
|
parse_feed(doc, Event)
|
331
331
|
end
|
332
332
|
|
333
|
+
##
|
334
|
+
# @!method schema(type)
|
335
|
+
# Retrieve the XML schema file for a given object type.
|
336
|
+
# @param type [String] The object type (e.g. "LogicalPartition", "inc/Types")
|
337
|
+
# @return [REXML::Document] The XML schema file.
|
338
|
+
def schema(type)
|
339
|
+
method_url = "/rest/api/web/schema/#{type}.xsd"
|
340
|
+
response = request(:get, method_url)
|
341
|
+
REXML::Document.new(response.body)
|
342
|
+
end
|
343
|
+
|
333
344
|
class HttpError < Error
|
334
|
-
attr_reader :status, :uri, :reason, :message
|
345
|
+
attr_reader :status, :uri, :reason, :message, :original_exception
|
335
346
|
|
336
347
|
##
|
337
348
|
# @!method initialize(err)
|
@@ -339,18 +350,26 @@ module IbmPowerHmc
|
|
339
350
|
# @param err [RestClient::Exception] The REST client exception.
|
340
351
|
def initialize(err)
|
341
352
|
super
|
353
|
+
@original_exception = err
|
342
354
|
@status = err.http_code
|
355
|
+
@message = err.message
|
343
356
|
|
344
357
|
# Try to parse body as an HttpErrorResponse
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
358
|
+
unless err.response.nil?
|
359
|
+
doc = REXML::Document.new(err.response.body)
|
360
|
+
entry = doc.elements["entry"]
|
361
|
+
unless entry.nil?
|
362
|
+
resp = HttpErrorResponse.new(entry)
|
363
|
+
@uri = resp.uri
|
364
|
+
@reason = resp.reason
|
365
|
+
@message = resp.message
|
366
|
+
end
|
352
367
|
end
|
353
368
|
end
|
369
|
+
|
370
|
+
def to_s
|
371
|
+
"msg=#{@message} status=#{@status} reason=#{@reason} uri=#{@uri}"
|
372
|
+
end
|
354
373
|
end
|
355
374
|
|
356
375
|
##
|
@@ -364,11 +383,13 @@ module IbmPowerHmc
|
|
364
383
|
def request(method, url, headers = {}, payload = nil)
|
365
384
|
logon if @api_session_token.nil?
|
366
385
|
reauth = false
|
386
|
+
# Check for relative URLs
|
387
|
+
url = "https://#{@hostname}#{url}" if url.start_with?("/")
|
367
388
|
begin
|
368
389
|
headers = headers.merge({"X-API-Session" => @api_session_token})
|
369
390
|
RestClient::Request.execute(
|
370
391
|
:method => method,
|
371
|
-
:url =>
|
392
|
+
:url => url,
|
372
393
|
:verify_ssl => @verify_ssl,
|
373
394
|
:payload => payload,
|
374
395
|
:headers => headers
|
@@ -6,10 +6,11 @@ require 'uri'
|
|
6
6
|
module IbmPowerHmc
|
7
7
|
# HMC generic object
|
8
8
|
class HmcObject
|
9
|
-
attr_reader :uuid
|
9
|
+
attr_reader :uuid, :xml
|
10
10
|
|
11
11
|
def initialize(doc)
|
12
12
|
@uuid = doc.elements["id"].text
|
13
|
+
@xml = doc
|
13
14
|
end
|
14
15
|
|
15
16
|
def get_value(doc, xpath, varname)
|
@@ -49,6 +50,7 @@ module IbmPowerHmc
|
|
49
50
|
"State" => "state",
|
50
51
|
"Hostname" => "hostname",
|
51
52
|
"PrimaryIPAddress" => "ipaddr",
|
53
|
+
"SystemFirmware" => "fwversion",
|
52
54
|
"AssociatedSystemMemoryConfiguration/InstalledSystemMemory" => "memory",
|
53
55
|
"AssociatedSystemMemoryConfiguration/CurrentAvailableSystemMemory" => "avail_mem",
|
54
56
|
"AssociatedSystemProcessorConfiguration/InstalledSystemProcessorUnits" => "cpus",
|
data/lib/ibm_power_hmc/pcm.rb
CHANGED
@@ -37,15 +37,6 @@ module IbmPowerHmc
|
|
37
37
|
href = link.attributes["href"]
|
38
38
|
next if href.nil?
|
39
39
|
|
40
|
-
# Validate URI
|
41
|
-
begin
|
42
|
-
href = URI(href)
|
43
|
-
rescue
|
44
|
-
next
|
45
|
-
end
|
46
|
-
# Remove https://hostname:port prefix.
|
47
|
-
href.scheme = href.host = href.port = nil
|
48
|
-
|
49
40
|
response = request(:get, href.to_s)
|
50
41
|
metrics << JSON.parse(response.body)
|
51
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ibm_power_hmc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- IBM Power
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|