ibm_power_hmc 0.23.0 → 0.24.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/ibm_power_hmc/schema/uom.rb +127 -19
- data/lib/ibm_power_hmc/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa2829db70216f23c73d2d06e8daebdbc2be4f3bde1f8f17d2659961288caa19
|
4
|
+
data.tar.gz: cb7a7cabacbf9efffe013715af8b0e4c5cc4fdf6b941cd0ef42cc8d19861fea5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 390b00cf4dd7f4fd83ef4c8619d25274f3b708fe5bdc075eef77b8bd7f199875b2003cbc203ecdf3adbee4518a8905bd59003bd238a7c81033504e0763971943
|
7
|
+
data.tar.gz: 7fee8e0a80ce4b266b27469706e00dd8804a5f706a272301751680bc660bf04d6398583c8268a0b8e28176da6e4f96c161b22f4d71813c4b1b101c6c5872fa5a
|
data/CHANGELOG.md
CHANGED
@@ -94,10 +94,15 @@ module IbmPowerHmc
|
|
94
94
|
uuids_from_links("AssociatedVirtualIOServers")
|
95
95
|
end
|
96
96
|
|
97
|
+
# Deprecated: use io_slots.io_adapter
|
97
98
|
def io_adapters
|
98
99
|
collection_of("AssociatedSystemIOConfiguration/IOSlots/IOSlot/RelatedIOAdapter", "IOAdapter")
|
99
100
|
end
|
100
101
|
|
102
|
+
def io_slots
|
103
|
+
collection_of("AssociatedSystemIOConfiguration/IOSlots", "IOSlot")
|
104
|
+
end
|
105
|
+
|
101
106
|
def vswitches_uuids
|
102
107
|
uuids_from_links("AssociatedSystemIOConfiguration/AssociatedSystemVirtualNetwork/VirtualSwitches")
|
103
108
|
end
|
@@ -107,6 +112,73 @@ module IbmPowerHmc
|
|
107
112
|
end
|
108
113
|
end
|
109
114
|
|
115
|
+
# I/O Slot information
|
116
|
+
class IOSlot < AbstractNonRest
|
117
|
+
ATTRS = {
|
118
|
+
:description => "Description",
|
119
|
+
:lpar_id => "PartitionID",
|
120
|
+
:lpar_name => "PartitionName",
|
121
|
+
:lpar_type => "PartitionType",
|
122
|
+
:pci_class => "PCIClass",
|
123
|
+
:pci_dev => "PCIDeviceID",
|
124
|
+
:pci_subsys_dev => "PCISubsystemDeviceID",
|
125
|
+
:pci_man => "PCIManufacturerID",
|
126
|
+
:pci_rev => "PCIRevisionID",
|
127
|
+
:pci_vendor => "PCIVendorID",
|
128
|
+
:pci_subsys_vendor => "PCISubsystemVendorID",
|
129
|
+
:dr_name => "SlotDynamicReconfigurationConnectorName",
|
130
|
+
:physloc => "SlotPhysicalLocationCode",
|
131
|
+
:sriov_capable_dev => "SRIOVCapableDevice",
|
132
|
+
:sriov_capable => "SRIOVCapableSlot",
|
133
|
+
:vpd_model => "VitalProductDataModel",
|
134
|
+
:vpd_serial => "VitalProductDataSerialNumber",
|
135
|
+
:vpd_stale => "VitalProductDataStale",
|
136
|
+
:vpd_type => "VitalProductDataType"
|
137
|
+
}.freeze
|
138
|
+
|
139
|
+
def io_adapter
|
140
|
+
elem = xml.elements["RelatedIOAdapter/*[1]"]
|
141
|
+
Module.const_get("IbmPowerHmc::#{elem.name}").new(elem) unless elem.nil?
|
142
|
+
rescue NameError
|
143
|
+
nil
|
144
|
+
end
|
145
|
+
|
146
|
+
def features
|
147
|
+
xml.get_elements("FeatureCodes").map do |elem|
|
148
|
+
elem.text&.strip
|
149
|
+
end.compact
|
150
|
+
end
|
151
|
+
|
152
|
+
def ior_devices
|
153
|
+
collection_of("IORDevices", "IORDevice")
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
# I/O Device information
|
158
|
+
class IORDevice < AbstractNonRest
|
159
|
+
ATTRS = {
|
160
|
+
:parent => "ParentName",
|
161
|
+
:pci_dev => "PCIDeviceId",
|
162
|
+
:pci_vendor => "PCIVendorId",
|
163
|
+
:pci_subsys_dev => "PCISubsystemDeviceId",
|
164
|
+
:pci_subsys_vendor => "PCISubsystemVendorId",
|
165
|
+
:pci_rev => "PCIRevisionId",
|
166
|
+
:pci_class => "PCIClassCode",
|
167
|
+
:type => "DeviceType",
|
168
|
+
:serial => "SerialNumber",
|
169
|
+
:fru_number => "FruNumber",
|
170
|
+
:part_number => "PartNumber",
|
171
|
+
:ccin => "CCIN",
|
172
|
+
:size => "Size",
|
173
|
+
:location => "LocationCode",
|
174
|
+
:ucode_version => "MicroCodeVersion",
|
175
|
+
:wwpn => "WWPN",
|
176
|
+
:wwnn => "WWNN",
|
177
|
+
:macaddr => "MacAddressValue",
|
178
|
+
:description => "Description"
|
179
|
+
}.freeze
|
180
|
+
end
|
181
|
+
|
110
182
|
# I/O Adapter information
|
111
183
|
class IOAdapter < AbstractNonRest
|
112
184
|
ATTRS = {
|
@@ -124,11 +196,29 @@ module IbmPowerHmc
|
|
124
196
|
|
125
197
|
# FC adapter information
|
126
198
|
class PhysicalFibreChannelAdapter < IOAdapter
|
127
|
-
def
|
199
|
+
def ports
|
128
200
|
collection_of("PhysicalFibreChannelPorts", "PhysicalFibreChannelPort")
|
129
201
|
end
|
130
202
|
end
|
131
203
|
|
204
|
+
# FC port information
|
205
|
+
class PhysicalFibreChannelPort < AbstractNonRest
|
206
|
+
ATTRS = {
|
207
|
+
:location => "LocationCode",
|
208
|
+
:name => "PortName",
|
209
|
+
:udid => "UniqueDeviceID",
|
210
|
+
:wwpn => "WWPN",
|
211
|
+
:wwnn => "WWNN",
|
212
|
+
:avail_ports => "AvailablePorts",
|
213
|
+
:total_ports => "TotalPorts",
|
214
|
+
:label => "Label"
|
215
|
+
}.freeze
|
216
|
+
|
217
|
+
def pvs
|
218
|
+
collection_of("PhysicalVolumes", "PhysicalVolume")
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
132
222
|
# Common class for LPAR and VIOS
|
133
223
|
class BasePartition < AbstractRest
|
134
224
|
ATTRS = {
|
@@ -193,10 +283,17 @@ module IbmPowerHmc
|
|
193
283
|
end.compact
|
194
284
|
end
|
195
285
|
|
286
|
+
# Deprecated: use io_slots.io_adapter
|
196
287
|
def io_adapters
|
197
288
|
collection_of("PartitionIOConfiguration/ProfileIOSlots/ProfileIOSlot/AssociatedIOSlot/RelatedIOAdapter", "*[1]")
|
198
289
|
end
|
199
290
|
|
291
|
+
def io_slots
|
292
|
+
xml.get_elements("PartitionIOConfiguration/ProfileIOSlots/ProfileIOSlot/AssociatedIOSlot").map do |elem|
|
293
|
+
IOSlot.new(elem)
|
294
|
+
end.compact
|
295
|
+
end
|
296
|
+
|
200
297
|
def shared_processor_pool_uuid
|
201
298
|
href = singleton("ProcessorPool", "href")
|
202
299
|
uuid_from_href(href) unless href.nil?
|
@@ -260,10 +357,39 @@ module IbmPowerHmc
|
|
260
357
|
collection_of("VirtualSCSIMappings", "VirtualSCSIMapping")
|
261
358
|
end
|
262
359
|
|
360
|
+
# Remove VSCSI mapping (vhostX) from XML
|
361
|
+
def vscsi_mapping_delete!(location)
|
362
|
+
vscsi_mappings.each do |mapping|
|
363
|
+
mapping.xml.parent.delete(mapping.xml) if mapping.server&.location == location
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
# Remove VSCSI target (vtscsiX) from XML
|
368
|
+
def vscsi_mapping_unmap!(target)
|
369
|
+
mapping = vscsi_mappings.find { |m| m.device&.target == target }
|
370
|
+
mapping.xml.parent.delete(mapping.xml) unless mapping.nil?
|
371
|
+
end
|
372
|
+
|
263
373
|
def vfc_mappings
|
264
374
|
collection_of("VirtualFibreChannelMappings", "VirtualFibreChannelMapping")
|
265
375
|
end
|
266
376
|
|
377
|
+
# Remove VFC mapping (vfchostX) from XML
|
378
|
+
def vfc_mapping_delete!(location)
|
379
|
+
mapping = vfc_mappings.find { |m| m.server&.location == location }
|
380
|
+
mapping.xml.parent.delete(mapping.xml) unless mapping.nil?
|
381
|
+
end
|
382
|
+
|
383
|
+
# Remove FC adapter mapping (fcsX) from XML
|
384
|
+
def vfc_mapping_unmap!(location)
|
385
|
+
mapping = vfc_mappings.find { |m| m.port && m.server&.location == location }
|
386
|
+
return if mapping.nil?
|
387
|
+
|
388
|
+
mapping.port.xml.parent.delete(mapping.port.xml)
|
389
|
+
mapping.server.map_port = nil
|
390
|
+
mapping.server.xml.delete(mapping.server.port.xml) unless mapping.server.port.nil?
|
391
|
+
end
|
392
|
+
|
267
393
|
def seas
|
268
394
|
collection_of("SharedEthernetAdapters", "SharedEthernetAdapter")
|
269
395
|
end
|
@@ -759,24 +885,6 @@ module IbmPowerHmc
|
|
759
885
|
end
|
760
886
|
end
|
761
887
|
|
762
|
-
# FC port information
|
763
|
-
class PhysicalFibreChannelPort < AbstractNonRest
|
764
|
-
ATTRS = {
|
765
|
-
:location => "LocationCode",
|
766
|
-
:name => "PortName",
|
767
|
-
:udid => "UniqueDeviceID",
|
768
|
-
:wwpn => "WWPN",
|
769
|
-
:wwnn => "WWNN",
|
770
|
-
:avail_ports => "AvailablePorts",
|
771
|
-
:total_ports => "TotalPorts",
|
772
|
-
:label => "Label"
|
773
|
-
}.freeze
|
774
|
-
|
775
|
-
def pvs
|
776
|
-
collection_of("PhysicalVolumes", "PhysicalVolume")
|
777
|
-
end
|
778
|
-
end
|
779
|
-
|
780
888
|
# Cluster information
|
781
889
|
class Cluster < AbstractRest
|
782
890
|
ATTRS = {
|
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.
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- IBM Power
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-11-
|
11
|
+
date: 2022-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|