ibm_power_hmc 0.8.7 → 0.10.0

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: 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: []