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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 214dfa7f9a89d236f1f9bc4ee927b619596a0fabe59c2f596359637e891601ab
4
- data.tar.gz: 2affd160febc3952014ab522bb9b0f89b0ebef6d785720d2d8d2a875cd1df918
3
+ metadata.gz: 6aae673197b8e5426c2f75250ef521db9d7e8eed79a20c70089612a10d189cfc
4
+ data.tar.gz: f7b5cd95629fedf835a97eebd33874edf777527cb8af2c4c5ebdbaaf9364d4d8
5
5
  SHA512:
6
- metadata.gz: 3e6e6ae8b4c7d84eea70e3328ea44834a5b95ecd98fbe6a31c045e575951b6c17751ca7d6517d3ad58647b5c8b7e1321470c368c48018c31a450a28ba40463e5
7
- data.tar.gz: f9139f2ea1a83d0abedc3c73832450e20fa4fcf7c56cc65c50ec5b14750bb5bb2eb17d7948ffc22d5887984d0f412ae8213a237892350e55f0cd55a49af80f30
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
- doc = REXML::Document.new(err.response.body)
346
- entry = doc.elements["entry"]
347
- unless entry.nil?
348
- resp = HttpErrorResponse.new(entry)
349
- @uri = resp.uri
350
- @reason = resp.reason
351
- @message = resp.message
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 => "https://" + @hostname + 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",
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IbmPowerHmc
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  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.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-28 00:00:00.000000000 Z
11
+ date: 2021-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client