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