ibm_power_hmc 0.8.7 → 0.10.0

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: 16483135f26b1c5fd1783c55cb0d83f7e195562cda7f5859d5f1470432a1c8a9
4
- data.tar.gz: d41ef9a0875f0b0400d619e9586083a0bdb985b8f36cc90e9869c5063e31e3fa
3
+ metadata.gz: ebd50ae53571c98987372d364410261fa5a5440cf23e009c9cf8219eb2e052de
4
+ data.tar.gz: 7514545bd7a9be7e958597b7fdebc161f9ea253b20550165a798765930b09eec
5
5
  SHA512:
6
- metadata.gz: 2c3aa1f9bd1e5c0994b82046fda92f5d31ef05b2f8d280f59820ad2b8ad986c5bb46e905d844e67caa5739ab3df413d822ae1f12b41777e1dcc2d265974e07f6
7
- data.tar.gz: 7948cc93b4835d3e421292345faaa5622d5fdea6123ff1e234f2e8345845b262c98fd5a0b8d4e1a88de28ac0b507b4a2c1a0824d5456a308e1296446596f4bb0
6
+ metadata.gz: 41c1fd98ca6750bad69416b3c29986c432c77d8168d72ae485a90a6199b53716dd214c70f74b4c5971e03845d359f847c15a3958a616debd097effcfc0a5567b
7
+ data.tar.gz: 44f761a7d986716fe2338bceee413785add2fbfdece042022fec02edadcf60d02ea9deb49bad75d0752ea05b64fbe37b36a554d15f7a6e52bb09c62966ab3e9b
data/.gitignore CHANGED
File without changes
data/.rubocop.yml CHANGED
File without changes
data/.rubocop_local.yml CHANGED
File without changes
data/CHANGELOG.md CHANGED
File without changes
data/Gemfile CHANGED
File without changes
data/LICENSE CHANGED
File without changes
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
File without changes
File without changes
File without changes
File without changes
@@ -34,7 +34,7 @@ module IbmPowerHmc
34
34
  content = entry.elements["content[@type]"]
35
35
  return if content.nil?
36
36
 
37
- type = content.attributes["type"].split("=").last
37
+ type = content.attributes["type"].split("=")[1] || filter_type.to_s
38
38
  return unless filter_type.nil? || filter_type.to_s == type
39
39
 
40
40
  Module.const_get("IbmPowerHmc::#{type}").new(entry)
@@ -135,7 +135,7 @@ module IbmPowerHmc
135
135
 
136
136
  def collection_of(name, type)
137
137
  objtype = Module.const_get("IbmPowerHmc::#{type}")
138
- xml.get_elements("#{name}/#{type}").map do |elem|
138
+ xml.get_elements([name, type].compact.join("/")).map do |elem|
139
139
  objtype.new(elem)
140
140
  end
141
141
  rescue
@@ -430,6 +430,15 @@ module IbmPowerHmc
430
430
  }.freeze
431
431
  end
432
432
 
433
+ # SharedFileSystemFile information
434
+ class SharedFileSystemFile < VirtualSCSIStorage
435
+ ATTRS = {
436
+ :name => "SharedFileSystemFileName",
437
+ :path => "SharedFileSystemFilePath",
438
+ :udid => "UniqueDeviceID"
439
+ }.freeze
440
+ end
441
+
433
442
  # Virtual Media Repository information
434
443
  class VirtualMediaRepository < AbstractNonRest
435
444
  ATTRS = {
@@ -573,17 +582,27 @@ module IbmPowerHmc
573
582
 
574
583
  def storage
575
584
  # Possible storage types are:
576
- # LogicalUnit, PhysicalVolume, VirtualDisk, VirtualOpticalMedia
585
+ # LogicalUnit, PhysicalVolume, VirtualDisk, VirtualOpticalMedia,
586
+ # SharedFileSystemFile
577
587
  elem = xml.elements["Storage/*[1]"]
578
- Module.const_get("IbmPowerHmc::#{elem.name}").new(elem) unless elem.nil?
588
+ begin
589
+ Module.const_get("IbmPowerHmc::#{elem.name}").new(elem) unless elem.nil?
590
+ rescue NameError
591
+ nil
592
+ end
579
593
  end
580
594
 
581
595
  def device
582
596
  # Possible backing device types are:
583
597
  # LogicalVolumeVirtualTargetDevice, PhysicalVolumeVirtualTargetDevice,
584
- # SharedStoragePoolLogicalUnitVirtualTargetDevice, VirtualOpticalTargetDevice
598
+ # SharedStoragePoolLogicalUnitVirtualTargetDevice, VirtualOpticalTargetDevice,
599
+ # SharedFileSystemFileVirtualTargetDevice
585
600
  elem = xml.elements["TargetDevice/*[1]"]
586
- Module.const_get("IbmPowerHmc::#{elem.name}").new(elem) unless elem.nil?
601
+ begin
602
+ Module.const_get("IbmPowerHmc::#{elem.name}").new(elem) unless elem.nil?
603
+ rescue NameError
604
+ nil
605
+ end
587
606
  end
588
607
  end
589
608
 
@@ -649,6 +668,9 @@ module IbmPowerHmc
649
668
  end
650
669
  end
651
670
 
671
+ # SharedFileSystemFile backing device information
672
+ class SharedFileSystemFileVirtualTargetDevice < VirtualTargetDevice; end
673
+
652
674
  # VFC mapping information
653
675
  class VirtualFibreChannelMapping < AbstractNonRest
654
676
  def lpar_uuid
@@ -910,4 +932,31 @@ module IbmPowerHmc
910
932
  results
911
933
  end
912
934
  end
935
+
936
+ class ManagementConsolePcmPreference < AbstractRest
937
+ ATTRS = {
938
+ :max_ltm => "MaximumManagedSystemsForLongTermMonitor",
939
+ :max_compute_ltm => "MaximumManagedSystemsForComputeLTM",
940
+ :max_aggregation => "MaximumManagedSystemsForAggregation",
941
+ :max_stm => "MaximumManagedSystemsForShortTermMonitor",
942
+ :max_em => "MaximumManagedSystemsForEnergyMonitor",
943
+ :aggregated_storage_duration => "AggregatedMetricsStorageDuration"
944
+ }.freeze
945
+
946
+ def managed_system_preferences
947
+ collection_of(nil, "ManagedSystemPcmPreference")
948
+ end
949
+ end
950
+
951
+ class ManagedSystemPcmPreference < AbstractNonRest
952
+ ATTRS = {
953
+ :id => "Metadata/Atom/AtomID",
954
+ :name => "SystemName",
955
+ :long_term_monitor => "LongTermMonitorEnabled",
956
+ :aggregation => "AggregationEnabled",
957
+ :short_term_monitor => "ShortTermMonitorEnabled",
958
+ :compute_ltm => "ComputeLTMEnabled",
959
+ :energy_monitor => "EnergyMonitorEnabled"
960
+ }.freeze
961
+ end
913
962
  end
@@ -5,11 +5,24 @@ require 'uri'
5
5
 
6
6
  module IbmPowerHmc
7
7
  class Connection
8
+ ##
9
+ # @!method pcm_preferences
10
+ # Retrieve global Performance and Capacity Monitor preferences for the HMC.
11
+ # @return [Array<IbmPowerHmc::ManagementConsolePcmPreference>] The PCM preferences for the HMC.
8
12
  def pcm_preferences
9
13
  method_url = "/rest/api/pcm/preferences"
10
14
 
11
15
  response = request(:get, method_url)
12
- REXML::Document.new(response.body)
16
+ FeedParser.new(response.body).objects(:ManagementConsolePcmPreference)
17
+ end
18
+
19
+ ##
20
+ # @!method managed_system_pcm_preferences
21
+ # Return Performance and Capacity Monitor preferences for a Managed System.
22
+ # @param sys_uuid [String] The managed system UUID.
23
+ # @return [IbmPowerHmc::ManagedSystemPcmPreference] The PCM preferences for the Managed System.
24
+ def managed_system_pcm_preferences(sys_uuid)
25
+ pcm_preferences.first.managed_system_preferences.find { |p| p.id.eql?(sys_uuid) }
13
26
  end
14
27
 
15
28
  ##
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IbmPowerHmc
4
- VERSION = "0.8.7"
4
+ VERSION = "0.10.0"
5
5
  end
data/lib/ibm_power_hmc.rb CHANGED
File without changes
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.8.7
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - IBM Power
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-07 00:00:00.000000000 Z
11
+ date: 2022-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  description: A Ruby gem for interacting with the IBM Hardware Management Console (HMC).
42
- email:
42
+ email:
43
43
  executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
@@ -69,7 +69,7 @@ metadata:
69
69
  homepage_uri: http://github.com/IBM/ibm_power_hmc_sdk_ruby
70
70
  source_code_uri: http://github.com/IBM/ibm_power_hmc_sdk_ruby
71
71
  changelog_uri: http://github.com/IBM/ibm_power_hmc_sdk_ruby/blob/master/CHANGELOG.md
72
- post_install_message:
72
+ post_install_message:
73
73
  rdoc_options: []
74
74
  require_paths:
75
75
  - lib
@@ -84,8 +84,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  requirements: []
87
- rubygems_version: 3.1.4
88
- signing_key:
87
+ rubygems_version: 3.1.2
88
+ signing_key:
89
89
  specification_version: 4
90
90
  summary: IBM Power HMC Ruby gem.
91
91
  test_files: []