ibm_power_hmc 0.7.0 → 0.8.3

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: 128d1d4297c8885e438de247ccf25a143c856a3cdff5e2894f49c0541b475a6e
4
- data.tar.gz: ee5304a78bf10231755750641b3ea5fc11064bea52753db4c8c42456461bbd3f
3
+ metadata.gz: 90008b33210851e9ac14f556bd7e3b42231f38adcf68b6d5d59eed7e35671678
4
+ data.tar.gz: 6c85e9814f527680bea78f9c90fcc06a8796c949ac458c41074e01d6f44f7b61
5
5
  SHA512:
6
- metadata.gz: 7924966345897965a3789b26ef307ae3df5e5dccbdf316e0d59ed665d57a2ceaaf51128f225cd08a2544b6c77d54ae634b5f75d25bfa766c3672480f01fc72da
7
- data.tar.gz: '078600454867693aaf410ca0a898eb5464f24b4dd40db56c61caa5145fbc54685f0819f576862f6065649f4a2d46dab2d5f838938b207fc376e563cfc724c56f'
6
+ metadata.gz: ece63d99cccdf86022d907f75be7fe48871c6cac5fd64b5469fb0470fc4a0fe25e586fff16e2cc8ee65799eae8b315ba81b34879f395a7bb7375ae04edb74d61
7
+ data.tar.gz: 767ee9bd259139e97bba680a1edd395da73f5f40ab5ec149574c1538fd4964dd081dc1d272feee5395a8bf2aabeb8b8e5d57b410c5250699f6eef6b19f07f8f9
@@ -383,6 +383,16 @@ module IbmPowerHmc
383
383
  FeedParser.new(response.body).objects(:PartitionTemplateSummary)
384
384
  end
385
385
 
386
+ ##
387
+ # @!method templates
388
+ # Retrieve the list of partition templates.
389
+ # @return [Array<IbmPowerHmc::PartitionTemplate>] The list of partition templates.
390
+ def templates
391
+ method_url = "/rest/api/templates/PartitionTemplate?detail=full"
392
+ response = request(:get, method_url)
393
+ FeedParser.new(response.body).objects(:PartitionTemplate)
394
+ end
395
+
386
396
  ##
387
397
  # @!method template(template_uuid)
388
398
  # Retrieve details for a particular partition template.
@@ -550,8 +560,8 @@ module IbmPowerHmc
550
560
  break if response.code != 204 || !wait
551
561
  end
552
562
  FeedParser.new(response.body).objects(:Event).map do |e|
553
- data = e.data.split("/")
554
- if data[-2].eql?("UserTask")
563
+ data = e.data.split("/") unless e.data.nil?
564
+ if !data.nil? && data.length >= 2 && data[-2].eql?("UserTask")
555
565
  e.usertask = usertask(data.last)
556
566
  end
557
567
  e
@@ -566,7 +576,14 @@ module IbmPowerHmc
566
576
  def usertask(uuid)
567
577
  method_url = "/rest/api/ui/UserTask/#{uuid}"
568
578
  response = request(:get, method_url)
569
- JSON.parse(response.body)
579
+ j = JSON.parse(response.body)
580
+ if j['status'].eql?("Completed")
581
+ case j['key']
582
+ when "TEMPLATE_PARTITION_SAVE", "TEMPLATE_PARTITION_SAVE_AS", "TEMPLATE_PARTITION_CAPTURE"
583
+ j['template_uuid'] = templates_summary.find { |t| t.name.eql?(j['labelParams'].first) }&.uuid
584
+ end
585
+ end
586
+ j
570
587
  end
571
588
 
572
589
  ##
@@ -74,9 +74,6 @@ module IbmPowerHmc
74
74
  end
75
75
  end
76
76
 
77
- private_constant :Parser
78
- private_constant :FeedParser
79
-
80
77
  ##
81
78
  # HMC generic K2 non-REST object.
82
79
  # @abstract
@@ -135,6 +132,15 @@ module IbmPowerHmc
135
132
  uuid_from_href(link.attributes["href"], index)
136
133
  end.compact
137
134
  end
135
+
136
+ def collection_of(name, type)
137
+ objtype = Module.const_get("IbmPowerHmc::#{type}")
138
+ xml.get_elements("#{name}/#{type}").map do |elem|
139
+ objtype.new(elem)
140
+ end
141
+ rescue
142
+ []
143
+ end
138
144
  end
139
145
 
140
146
  ##
@@ -190,12 +196,19 @@ module IbmPowerHmc
190
196
  ATTRS = {
191
197
  :name => "ManagementConsoleName",
192
198
  :build_level => "VersionInfo/BuildLevel",
193
- :version => "BaseVersion"
199
+ :version => "BaseVersion",
200
+ :ssh_pubkey => "PublicSSHKeyValue"
194
201
  }.freeze
195
202
 
196
203
  def managed_systems_uuids
197
204
  uuids_from_links("ManagedSystems")
198
205
  end
206
+
207
+ def ssh_authkeys
208
+ xml.get_elements("AuthorizedKeysValue/AuthorizedKey").map do |elem|
209
+ elem.text&.strip
210
+ end.compact
211
+ end
199
212
  end
200
213
 
201
214
  # Managed System information
@@ -232,9 +245,7 @@ module IbmPowerHmc
232
245
  end
233
246
 
234
247
  def io_adapters
235
- xml.get_elements("AssociatedSystemIOConfiguration/IOSlots/IOSlot/RelatedIOAdapter/IOAdapter").map do |elem|
236
- IOAdapter.new(elem)
237
- end
248
+ collection_of("AssociatedSystemIOConfiguration/IOSlots/IOSlot/RelatedIOAdapter", "IOAdapter")
238
249
  end
239
250
 
240
251
  def vswitches_uuids
@@ -266,7 +277,8 @@ module IbmPowerHmc
266
277
  :state => "PartitionState",
267
278
  :type => "PartitionType",
268
279
  :memory => "PartitionMemoryConfiguration/CurrentMemory",
269
- :dedicated => "PartitionProcessorConfiguration/HasDedicatedProcessors",
280
+ :dedicated => "PartitionProcessorConfiguration/CurrentHasDedicatedProcessors",
281
+ :sharing_mode => "PartitionProcessorConfiguration/CurrentSharingMode",
270
282
  :rmc_state => "ResourceMonitoringControlState",
271
283
  :rmc_ipaddr => "ResourceMonitoringIPAddress",
272
284
  :os => "OperatingSystemVersion",
@@ -277,8 +289,8 @@ module IbmPowerHmc
277
289
  }.freeze
278
290
 
279
291
  def sys_uuid
280
- sys_href = singleton("AssociatedManagedSystem", "href")
281
- uuid_from_href(sys_href)
292
+ href = singleton("AssociatedManagedSystem", "href")
293
+ uuid_from_href(href) unless href.nil?
282
294
  end
283
295
 
284
296
  def net_adap_uuids
@@ -286,9 +298,7 @@ module IbmPowerHmc
286
298
  end
287
299
 
288
300
  def lhea_ports
289
- xml.get_elements("HostEthernetAdapterLogicalPorts/HostEthernetAdapterLogicalPort").map do |elem|
290
- HostEthernetAdapterLogicalPort.new(elem)
291
- end
301
+ collection_of("HostEthernetAdapterLogicalPorts", "HostEthernetAdapterLogicalPort")
292
302
  end
293
303
 
294
304
  def sriov_elp_uuids
@@ -321,9 +331,7 @@ module IbmPowerHmc
321
331
  # VIOS information
322
332
  class VirtualIOServer < BasePartition
323
333
  def pvs
324
- xml.get_elements("PhysicalVolumes/PhysicalVolume").map do |elem|
325
- PhysicalVolume.new(elem)
326
- end
334
+ collection_of("PhysicalVolumes", "PhysicalVolume")
327
335
  end
328
336
 
329
337
  def rep
@@ -332,15 +340,11 @@ module IbmPowerHmc
332
340
  end
333
341
 
334
342
  def vscsi_mappings
335
- xml.get_elements("VirtualSCSIMappings/VirtualSCSIMapping").map do |elem|
336
- VirtualSCSIMapping.new(elem)
337
- end
343
+ collection_of("VirtualSCSIMappings", "VirtualSCSIMapping")
338
344
  end
339
345
 
340
346
  def vfc_mappings
341
- xml.get_elements("VirtualFibreChannelMappings/VirtualFibreChannelMapping").map do |elem|
342
- VirtualFibreChannelMapping.new(elem)
343
- end
347
+ collection_of("VirtualFibreChannelMappings", "VirtualFibreChannelMapping")
344
348
  end
345
349
  end
346
350
 
@@ -390,9 +394,7 @@ module IbmPowerHmc
390
394
  }.freeze
391
395
 
392
396
  def vopts
393
- xml.get_elements("OpticalMedia/VirtualOpticalMedia").map do |elem|
394
- VirtualOpticalMedia.new(elem)
395
- end
397
+ collection_of("OpticalMedia", "VirtualOpticalMedia")
396
398
  end
397
399
  end
398
400
 
@@ -424,7 +426,7 @@ module IbmPowerHmc
424
426
 
425
427
  def vswitch_uuid
426
428
  href = singleton("AssociatedSwitch", "href")
427
- uuid_from_href(href)
429
+ uuid_from_href(href) unless href.nil?
428
430
  end
429
431
 
430
432
  def lpars_uuids
@@ -511,7 +513,7 @@ module IbmPowerHmc
511
513
  class VirtualSCSIMapping < AbstractNonRest
512
514
  def lpar_uuid
513
515
  href = singleton("AssociatedLogicalPartition", "href")
514
- uuid_from_href(href)
516
+ uuid_from_href(href) unless href.nil?
515
517
  end
516
518
 
517
519
  def client
@@ -562,7 +564,7 @@ module IbmPowerHmc
562
564
 
563
565
  def vios_uuid
564
566
  href = singleton("ConnectingPartition", "href")
565
- uuid_from_href(href)
567
+ uuid_from_href(href) unless href.nil?
566
568
  end
567
569
  end
568
570
 
@@ -606,7 +608,7 @@ module IbmPowerHmc
606
608
  class VirtualFibreChannelMapping < AbstractNonRest
607
609
  def lpar_uuid
608
610
  href = singleton("AssociatedLogicalPartition", "href")
609
- uuid_from_href(href)
611
+ uuid_from_href(href) unless href.nil?
610
612
  end
611
613
 
612
614
  def client
@@ -636,16 +638,14 @@ module IbmPowerHmc
636
638
 
637
639
  def lpar_uuid
638
640
  href = singleton("ConnectingPartition", "href")
639
- uuid_from_href(href)
641
+ uuid_from_href(href) unless href.nil?
640
642
  end
641
643
  end
642
644
 
643
645
  # VFC client information
644
646
  class VirtualFibreChannelClientAdapter < VirtualFibreChannelAdapter
645
647
  def nport_loggedin
646
- xml.get_elements("NportLoggedInStatus/VirtualFibreChannelNPortLoginStatus").map do |elem|
647
- VirtualFibreChannelNPortLoginStatus.new(elem)
648
- end
648
+ collection_of("NportLoggedInStatus", "VirtualFibreChannelNPortLoginStatus")
649
649
  end
650
650
 
651
651
  def server
@@ -699,9 +699,7 @@ module IbmPowerHmc
699
699
  }.freeze
700
700
 
701
701
  def pvs
702
- xml.get_elements("PhysicalVolumes/PhysicalVolume").map do |elem|
703
- PhysicalVolume.new(elem)
704
- end
702
+ collection_of("PhysicalVolumes", "PhysicalVolume")
705
703
  end
706
704
  end
707
705
 
@@ -713,15 +711,17 @@ module IbmPowerHmc
713
711
  :tier_capable => "ClusterCapabilities/IsTierCapable"
714
712
  }.freeze
715
713
 
714
+ def repopvs
715
+ collection_of("RepositoryDisk", "PhysicalVolume")
716
+ end
717
+
716
718
  def ssp_uuid
717
719
  href = singleton("ClusterSharedStoragePool", "href")
718
- uuid_from_href(href)
720
+ uuid_from_href(href) unless href.nil?
719
721
  end
720
722
 
721
723
  def nodes
722
- xml.get_elements("Node/Node").map do |elem|
723
- Node.new(elem)
724
- end
724
+ collection_of("Node", "Node")
725
725
  end
726
726
  end
727
727
 
@@ -736,13 +736,14 @@ module IbmPowerHmc
736
736
 
737
737
  def vios_uuid
738
738
  href = singleton("VirtualIOServer", "href")
739
- uuid_from_href(href)
739
+ uuid_from_href(href) unless href.nil?
740
740
  end
741
741
  end
742
742
 
743
743
  # SSP information
744
744
  class SharedStoragePool < AbstractRest
745
745
  ATTRS = {
746
+ :id => "SharedStoragePoolID",
746
747
  :name => "StoragePoolName",
747
748
  :udid => "UniqueDeviceID",
748
749
  :capacity => "Capacity",
@@ -754,13 +755,11 @@ module IbmPowerHmc
754
755
 
755
756
  def cluster_uuid
756
757
  href = singleton("AssociatedCluster", "href")
757
- uuid_from_href(href)
758
+ uuid_from_href(href) unless href.nil?
758
759
  end
759
760
 
760
761
  def pvs
761
- xml.get_elements("PhysicalVolumes/PhysicalVolume").map do |elem|
762
- PhysicalVolume.new(elem)
763
- end
762
+ collection_of("PhysicalVolumes", "PhysicalVolume")
764
763
  end
765
764
 
766
765
  def tiers_uuids
@@ -768,9 +767,7 @@ module IbmPowerHmc
768
767
  end
769
768
 
770
769
  def lus
771
- xml.get_elements("LogicalUnits/LogicalUnit").map do |elem|
772
- LogicalUnit.new(elem)
773
- end
770
+ collection_of("LogicalUnits", "LogicalUnit")
774
771
  end
775
772
  end
776
773
 
@@ -788,7 +785,7 @@ module IbmPowerHmc
788
785
 
789
786
  def ssp_uuid
790
787
  href = singleton("AssociatedSharedStoragePool", "href")
791
- uuid_from_href(href)
788
+ uuid_from_href(href) unless href.nil?
792
789
  end
793
790
 
794
791
  def lus_uuids
@@ -816,10 +813,15 @@ module IbmPowerHmc
816
813
 
817
814
  class PartitionTemplate < AbstractRest
818
815
  ATTRS = {
819
- :name => "partitionTemplateName",
820
- :description => "description",
821
- :os => "logicalPartitionConfig/osVersion",
822
- :memory => "logicalPartitionConfig/memoryConfiguration/currMemory"
816
+ :name => "partitionTemplateName",
817
+ :description => "description",
818
+ :os => "logicalPartitionConfig/osVersion",
819
+ :memory => "logicalPartitionConfig/memoryConfiguration/currMemory",
820
+ :dedicated => "logicalPartitionConfig/processorConfiguration/hasDedicatedProcessors",
821
+ :sharing_mode => "logicalPartitionConfig/processorConfiguration/sharingMode",
822
+ :vprocs => "logicalPartitionConfig/processorConfiguration/sharedProcessorConfiguration/desiredVirtualProcessors",
823
+ :proc_units => "logicalPartitionConfig/processorConfiguration/sharedProcessorConfiguration/desiredProcessingUnits",
824
+ :procs => "logicalPartitionConfig/processorConfiguration/dedicatedProcessorConfiguration/desiredProcessors"
823
825
  }.freeze
824
826
  end
825
827
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IbmPowerHmc
4
- VERSION = "0.7.0"
4
+ VERSION = "0.8.3"
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.7.0
4
+ version: 0.8.3
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-11-25 00:00:00.000000000 Z
11
+ date: 2022-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client