ibm_power_hmc 0.1.1 → 0.1.2
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 +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
|