ibm_power_hmc 0.18.0 → 0.20.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 +4 -4
- data/CHANGELOG.md +84 -1
- data/README.md +15 -1
- data/lib/ibm_power_hmc/apis/connection.rb +197 -0
- data/lib/ibm_power_hmc/{job.rb → apis/job.rb} +0 -0
- data/lib/ibm_power_hmc/{pcm.rb → apis/pcm.rb} +0 -0
- data/lib/ibm_power_hmc/apis/sem.rb +20 -0
- data/lib/ibm_power_hmc/apis/templates.rb +171 -0
- data/lib/ibm_power_hmc/{connection.rb → apis/uom.rb} +100 -400
- data/lib/ibm_power_hmc/schema/parser.rb +232 -0
- data/lib/ibm_power_hmc/schema/pcm.rb +31 -0
- data/lib/ibm_power_hmc/schema/sem.rb +92 -0
- data/lib/ibm_power_hmc/schema/templates.rb +108 -0
- data/lib/ibm_power_hmc/{parser.rb → schema/uom.rb} +33 -345
- data/lib/ibm_power_hmc/version.rb +1 -1
- data/lib/ibm_power_hmc.rb +11 -4
- metadata +13 -6
@@ -1,220 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'time'
|
4
|
-
require 'uri'
|
5
|
-
|
6
3
|
module IbmPowerHmc
|
7
|
-
##
|
8
|
-
# Generic parser for HMC K2 XML responses.
|
9
|
-
class Parser
|
10
|
-
def initialize(body)
|
11
|
-
@doc = REXML::Document.new(body)
|
12
|
-
end
|
13
|
-
|
14
|
-
##
|
15
|
-
# @!method entry
|
16
|
-
# Return the first K2 entry element in the response.
|
17
|
-
# @return [REXML::Element, nil] The first entry element.
|
18
|
-
def entry
|
19
|
-
@doc.elements["entry"]
|
20
|
-
end
|
21
|
-
|
22
|
-
##
|
23
|
-
# @!method object(filter_type = nil)
|
24
|
-
# Parse the first K2 entry element into an object.
|
25
|
-
# @param filter_type [String] Entry type must match the specified type.
|
26
|
-
# @return [IbmPowerHmc::AbstractRest, nil] The parsed object.
|
27
|
-
def object(filter_type = nil)
|
28
|
-
self.class.to_obj(entry, filter_type)
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.to_obj(entry, filter_type = nil)
|
32
|
-
return if entry.nil?
|
33
|
-
|
34
|
-
content = entry.elements["content[@type]"]
|
35
|
-
return if content.nil?
|
36
|
-
|
37
|
-
type = content.attributes["type"].split("=")[1] || filter_type.to_s
|
38
|
-
return unless filter_type.nil? || filter_type.to_s == type
|
39
|
-
|
40
|
-
Module.const_get("IbmPowerHmc::#{type}").new(entry)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
##
|
45
|
-
# Parser for HMC K2 feeds.
|
46
|
-
# A feed encapsulates a list of entries like this:
|
47
|
-
# <feed>
|
48
|
-
# <entry>
|
49
|
-
# <!-- entry #1 -->
|
50
|
-
# </entry>
|
51
|
-
# <entry>
|
52
|
-
# <!-- entry #2 -->
|
53
|
-
# </entry>
|
54
|
-
# ...
|
55
|
-
# </feed>
|
56
|
-
class FeedParser < Parser
|
57
|
-
def entries
|
58
|
-
objs = []
|
59
|
-
@doc.each_element("feed/entry") do |entry|
|
60
|
-
objs << yield(entry)
|
61
|
-
end
|
62
|
-
objs
|
63
|
-
end
|
64
|
-
|
65
|
-
##
|
66
|
-
# @!method objects(filter_type = nil)
|
67
|
-
# Parse feed entries into objects.
|
68
|
-
# @param filter_type [String] Filter entries based on content type.
|
69
|
-
# @return [Array<IbmPowerHmc::AbstractRest>] The list of objects.
|
70
|
-
def objects(filter_type = nil)
|
71
|
-
entries do |entry|
|
72
|
-
self.class.to_obj(entry, filter_type)
|
73
|
-
end.compact
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
##
|
78
|
-
# HMC generic K2 non-REST object.
|
79
|
-
# @abstract
|
80
|
-
# @attr_reader [REXML::Document] xml The XML document representing this object.
|
81
|
-
class AbstractNonRest
|
82
|
-
ATTRS = {}.freeze
|
83
|
-
attr_reader :xml
|
84
|
-
|
85
|
-
def initialize(xml)
|
86
|
-
@xml = xml
|
87
|
-
self.class::ATTRS.each { |varname, xpath| define_attr(varname, xpath) }
|
88
|
-
end
|
89
|
-
|
90
|
-
##
|
91
|
-
# @!method define_attr(varname, xpath)
|
92
|
-
# Define an instance variable using the text of an XML element as value.
|
93
|
-
# @param varname [String] The name of the instance variable.
|
94
|
-
# @param xpath [String] The XPath of the XML element containing the text.
|
95
|
-
def define_attr(varname, xpath)
|
96
|
-
value = singleton(xpath)
|
97
|
-
self.class.__send__(:attr_reader, varname)
|
98
|
-
self.class.__send__(:define_method, "#{varname}=") do |v|
|
99
|
-
if v.nil?
|
100
|
-
xml.elements.delete(xpath)
|
101
|
-
else
|
102
|
-
create_element(xpath) if xml.elements[xpath].nil?
|
103
|
-
xml.elements[xpath].text = v
|
104
|
-
end
|
105
|
-
instance_variable_set("@#{varname}", v)
|
106
|
-
end
|
107
|
-
instance_variable_set("@#{varname}", value)
|
108
|
-
end
|
109
|
-
private :define_attr
|
110
|
-
|
111
|
-
##
|
112
|
-
# @!method create_element(xpath)
|
113
|
-
# Create a new XML element.
|
114
|
-
# @param xpath [String] The XPath of the XML element to create.
|
115
|
-
def create_element(xpath)
|
116
|
-
cur = xml
|
117
|
-
xpath.split("/").each do |el|
|
118
|
-
p = cur.elements[el]
|
119
|
-
if p.nil?
|
120
|
-
cur = cur.add_element(el)
|
121
|
-
else
|
122
|
-
cur = p
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
##
|
128
|
-
# @!method singleton(xpath, attr = nil)
|
129
|
-
# Get the text (or the value of a specified attribute) of an XML element.
|
130
|
-
# @param xpath [String] The XPath of the XML element.
|
131
|
-
# @param attr [String] The name of the attribute.
|
132
|
-
# @return [String, nil] The text or attribute value of the XML element or nil.
|
133
|
-
# @example lpar.singleton("PartitionProcessorConfiguration/*/MaximumVirtualProcessors").to_i
|
134
|
-
def singleton(xpath, attr = nil)
|
135
|
-
elem = xml.elements[xpath]
|
136
|
-
return if elem.nil?
|
137
|
-
|
138
|
-
attr.nil? ? elem.text&.strip : elem.attributes[attr]
|
139
|
-
end
|
140
|
-
|
141
|
-
def to_s
|
142
|
-
str = +"#{self.class.name}:\n"
|
143
|
-
self.class::ATTRS.each do |varname, _|
|
144
|
-
value = instance_variable_get("@#{varname}")
|
145
|
-
value = value.nil? ? "null" : "'#{value}'"
|
146
|
-
str << " #{varname}: #{value}\n"
|
147
|
-
end
|
148
|
-
str
|
149
|
-
end
|
150
|
-
|
151
|
-
def uuid_from_href(href, index = -1)
|
152
|
-
URI(href).path.split('/')[index]
|
153
|
-
end
|
154
|
-
|
155
|
-
def uuids_from_links(elem, index = -1)
|
156
|
-
xml.get_elements("#{elem}/link[@href]").map do |link|
|
157
|
-
uuid_from_href(link.attributes["href"], index)
|
158
|
-
end.compact
|
159
|
-
end
|
160
|
-
|
161
|
-
def collection_of(name, type)
|
162
|
-
xml.get_elements([name, type].compact.join("/")).map do |elem|
|
163
|
-
Module.const_get("IbmPowerHmc::#{elem.name}").new(elem)
|
164
|
-
rescue NameError
|
165
|
-
nil
|
166
|
-
end.compact
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
|
-
##
|
171
|
-
# HMC generic K2 REST object.
|
172
|
-
# Encapsulate data for a single REST object.
|
173
|
-
# The XML looks like this:
|
174
|
-
# <entry>
|
175
|
-
# <id>uuid</id>
|
176
|
-
# <published>timestamp</published>
|
177
|
-
# <link rel="SELF" href="https://..."/>
|
178
|
-
# <etag:etag>ETag</etag:etag>
|
179
|
-
# <content type="type">
|
180
|
-
# <!-- actual content here -->
|
181
|
-
# </content>
|
182
|
-
# </entry>
|
183
|
-
#
|
184
|
-
# @abstract
|
185
|
-
# @attr_reader [String] uuid The UUID of the object contained in the entry.
|
186
|
-
# @attr_reader [Time] published The time at which the entry was published.
|
187
|
-
# @attr_reader [URI::HTTPS] href The URL of the object itself.
|
188
|
-
# @attr_reader [String] etag The entity tag of the entry.
|
189
|
-
# @attr_reader [String] content_type The content type of the object contained in the entry.
|
190
|
-
class AbstractRest < AbstractNonRest
|
191
|
-
attr_reader :uuid, :published, :href, :etag, :content_type
|
192
|
-
|
193
|
-
def initialize(entry)
|
194
|
-
if entry.name != "entry"
|
195
|
-
# We are inlined.
|
196
|
-
super(entry)
|
197
|
-
return
|
198
|
-
end
|
199
|
-
|
200
|
-
@uuid = entry.elements["id"]&.text
|
201
|
-
@published = Time.xmlschema(entry.elements["published"]&.text)
|
202
|
-
link = entry.elements["link[@rel='SELF']"]
|
203
|
-
@href = URI(link.attributes["href"]) unless link.nil?
|
204
|
-
@etag = entry.elements["etag:etag"]&.text&.strip
|
205
|
-
content = entry.elements["content"]
|
206
|
-
@content_type = content.attributes["type"]
|
207
|
-
super(content.elements.first)
|
208
|
-
end
|
209
|
-
|
210
|
-
def to_s
|
211
|
-
str = super
|
212
|
-
str << " uuid: '#{uuid}'\n" if defined?(@uuid)
|
213
|
-
str << " published: '#{published}'\n" if defined?(@published)
|
214
|
-
str
|
215
|
-
end
|
216
|
-
end
|
217
|
-
|
218
4
|
# HMC information
|
219
5
|
class ManagementConsole < AbstractRest
|
220
6
|
ATTRS = {
|
@@ -240,7 +26,7 @@ module IbmPowerHmc
|
|
240
26
|
}.freeze
|
241
27
|
|
242
28
|
def time
|
243
|
-
|
29
|
+
timestamp("ManagementConsoleTime")
|
244
30
|
end
|
245
31
|
|
246
32
|
def managed_systems_uuids
|
@@ -283,7 +69,7 @@ module IbmPowerHmc
|
|
283
69
|
end
|
284
70
|
|
285
71
|
def time
|
286
|
-
|
72
|
+
timestamp("SystemTime")
|
287
73
|
end
|
288
74
|
|
289
75
|
def capabilities
|
@@ -343,8 +129,13 @@ module IbmPowerHmc
|
|
343
129
|
:state => "PartitionState",
|
344
130
|
:type => "PartitionType",
|
345
131
|
:memory => "PartitionMemoryConfiguration/CurrentMemory",
|
132
|
+
:desired_memory => "PartitionMemoryConfiguration/DesiredMemory",
|
133
|
+
:min_memory => "PartitionMemoryConfiguration/MinimumMemory",
|
134
|
+
:max_memory => "PartitionMemoryConfiguration/MaximumMemory",
|
346
135
|
:dedicated => "PartitionProcessorConfiguration/CurrentHasDedicatedProcessors",
|
347
136
|
:sharing_mode => "PartitionProcessorConfiguration/CurrentSharingMode",
|
137
|
+
:uncapped_weight => "PartitionProcessorConfiguration/CurrentSharedProcessorConfiguration/CurrentUncappedWeight",
|
138
|
+
:desired_uncapped_weight => "PartitionProcessorConfiguration/SharedProcessorConfiguration/UncappedWeight",
|
348
139
|
:rmc_state => "ResourceMonitoringControlState",
|
349
140
|
:rmc_ipaddr => "ResourceMonitoringIPAddress",
|
350
141
|
:os => "OperatingSystemVersion",
|
@@ -352,6 +143,13 @@ module IbmPowerHmc
|
|
352
143
|
:procs => "PartitionProcessorConfiguration/CurrentDedicatedProcessorConfiguration/CurrentProcessors",
|
353
144
|
:proc_units => "PartitionProcessorConfiguration/CurrentSharedProcessorConfiguration/CurrentProcessingUnits",
|
354
145
|
:vprocs => "PartitionProcessorConfiguration/CurrentSharedProcessorConfiguration/AllocatedVirtualProcessors",
|
146
|
+
:desired_proc_units => "PartitionProcessorConfiguration/SharedProcessorConfiguration/DesiredProcessingUnits",
|
147
|
+
:desired_vprocs => "PartitionProcessorConfiguration/SharedProcessorConfiguration/DesiredVirtualProcessors",
|
148
|
+
:minimum_proc_units => "PartitionProcessorConfiguration/SharedProcessorConfiguration/MinimumProcessingUnits",
|
149
|
+
:minimum_vprocs => "PartitionProcessorConfiguration/SharedProcessorConfiguration/MinimumVirtualProcessors",
|
150
|
+
:maximum_proc_units => "PartitionProcessorConfiguration/SharedProcessorConfiguration/MaximumProcessingUnits",
|
151
|
+
:maximum_vprocs => "PartitionProcessorConfiguration/SharedProcessorConfiguration/MaximumVirtualProcessors",
|
152
|
+
:cpu_compat_mode => "CurrentProcessorCompatibilityMode",
|
355
153
|
:description => "Description"
|
356
154
|
}.freeze
|
357
155
|
|
@@ -1008,107 +806,35 @@ module IbmPowerHmc
|
|
1008
806
|
end
|
1009
807
|
end
|
1010
808
|
|
1011
|
-
|
1012
|
-
|
1013
|
-
:name => "partitionTemplateName"
|
1014
|
-
}.freeze
|
1015
|
-
end
|
1016
|
-
|
1017
|
-
class PartitionTemplate < AbstractRest
|
809
|
+
# Shared Memory Pool
|
810
|
+
class SharedMemoryPool < AbstractRest
|
1018
811
|
ATTRS = {
|
1019
|
-
:
|
1020
|
-
:
|
1021
|
-
:
|
1022
|
-
:
|
1023
|
-
:
|
1024
|
-
:
|
1025
|
-
:memory => "logicalPartitionConfig/memoryConfiguration/currMemory",
|
1026
|
-
:dedicated => "logicalPartitionConfig/processorConfiguration/hasDedicatedProcessors",
|
1027
|
-
:sharing_mode => "logicalPartitionConfig/processorConfiguration/sharingMode",
|
1028
|
-
:vprocs => "logicalPartitionConfig/processorConfiguration/sharedProcessorConfiguration/desiredVirtualProcessors",
|
1029
|
-
:proc_units => "logicalPartitionConfig/processorConfiguration/sharedProcessorConfiguration/desiredProcessingUnits",
|
1030
|
-
:procs => "logicalPartitionConfig/processorConfiguration/dedicatedProcessorConfiguration/desiredProcessors"
|
812
|
+
:pool_mb => "CurrentPoolMemory",
|
813
|
+
:available_mb => "CurrentAvailablePoolMemory",
|
814
|
+
:max_mb => "CurrentMaximumPoolMemory",
|
815
|
+
:sys_mb =>"SystemFirmwarePoolMemory",
|
816
|
+
:pool_id => "PoolID",
|
817
|
+
:dedup => "MemoryDeduplicationEnabled"
|
1031
818
|
}.freeze
|
1032
819
|
|
1033
|
-
def
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1037
|
-
:physvol => adap.elements['associatedPhysicalVolume/PhysicalVolume/name']&.text,
|
1038
|
-
}
|
1039
|
-
end
|
1040
|
-
end
|
1041
|
-
|
1042
|
-
def vscsi=(list = [])
|
1043
|
-
adaps = REXML::Element.new('virtualSCSIClientAdapters')
|
1044
|
-
adaps.add_attribute('schemaVersion', 'V1_5_0')
|
1045
|
-
list.each do |vscsi|
|
1046
|
-
adaps.add_element('VirtualSCSIClientAdapter', {'schemaVersion' => 'V1_5_0'}).tap do |v|
|
1047
|
-
v.add_element('associatedLogicalUnits', {'schemaVersion' => 'V1_5_0'})
|
1048
|
-
v.add_element('associatedPhysicalVolume', {'schemaVersion' => 'V1_5_0'}).tap do |e|
|
1049
|
-
e.add_element('PhysicalVolume', {'schemaVersion' => 'V1_5_0'}).add_element('name').text = vscsi[:physvol] if vscsi[:physvol]
|
1050
|
-
end
|
1051
|
-
v.add_element('connectingPartitionName').text = vscsi[:vios]
|
1052
|
-
v.add_element('AssociatedTargetDevices', {'schemaVersion' => 'V1_5_0'})
|
1053
|
-
v.add_element('associatedVirtualOpticalMedia', {'schemaVersion' => 'V1_5_0'})
|
820
|
+
def paging_vios_uuids
|
821
|
+
["PagingServicePartitionOne", "PagingServicePartitionTwo"].map do |attr|
|
822
|
+
if (vios_href = singleton(attr, "href"))
|
823
|
+
uuid_from_href(vios_href)
|
1054
824
|
end
|
1055
825
|
end
|
1056
|
-
if xml.elements['logicalPartitionConfig/virtualSCSIClientAdapters']
|
1057
|
-
xml.elements['logicalPartitionConfig/virtualSCSIClientAdapters'] = adaps
|
1058
|
-
else
|
1059
|
-
xml.elements['logicalPartitionConfig'].add_element(adaps)
|
1060
|
-
end
|
1061
826
|
end
|
1062
827
|
|
1063
|
-
def
|
1064
|
-
REXML::XPath.match(xml,
|
1065
|
-
|
1066
|
-
|
1067
|
-
:port => adap.elements['portName']&.text
|
1068
|
-
}
|
1069
|
-
end
|
1070
|
-
end
|
1071
|
-
|
1072
|
-
def vfc=(list = [])
|
1073
|
-
adaps = REXML::Element.new('virtualFibreChannelClientAdapters')
|
1074
|
-
adaps.add_attribute('schemaVersion', 'V1_5_0')
|
1075
|
-
list.each do |vfc|
|
1076
|
-
adaps.add_element('VirtualFibreChannelClientAdapter', {'schemaVersion' => 'V1_5_0'}).tap do |v|
|
1077
|
-
v.add_element('connectingPartitionName').text = vfc[:vios]
|
1078
|
-
v.add_element('portName').text = vfc[:port]
|
828
|
+
def lpar_uuids
|
829
|
+
REXML::XPath.match(xml, "PagingDevices/ReservedStorageDevice").map do |dev|
|
830
|
+
if (lpar = dev.elements["AssociatedLogicalPartition"])
|
831
|
+
uuid_from_href(lpar.attributes["href"])
|
1079
832
|
end
|
1080
|
-
end
|
1081
|
-
if xml.elements['logicalPartitionConfig/virtualFibreChannelClientAdapters']
|
1082
|
-
xml.elements['logicalPartitionConfig/virtualFibreChannelClientAdapters'] = adaps
|
1083
|
-
else
|
1084
|
-
xml.elements['logicalPartitionConfig'].add_element(adaps)
|
1085
|
-
end
|
1086
|
-
end
|
1087
|
-
|
1088
|
-
def vlans
|
1089
|
-
REXML::XPath.match(xml, 'logicalPartitionConfig/clientNetworkAdapters/ClientNetworkAdapter/clientVirtualNetworks/ClientVirtualNetwork').map do |vlan|
|
1090
|
-
{
|
1091
|
-
:name => vlan.elements['name']&.text,
|
1092
|
-
:vlan_id => vlan.elements['vlanId']&.text,
|
1093
|
-
:switch => vlan.elements['associatedSwitchName']&.text
|
1094
|
-
}
|
1095
|
-
end
|
833
|
+
end.compact
|
1096
834
|
end
|
1097
835
|
|
1098
|
-
def
|
1099
|
-
|
1100
|
-
adaps.add_attribute('schemaVersion', 'V1_5_0')
|
1101
|
-
list.each do |vlan|
|
1102
|
-
adaps.add_element('ClientNetworkAdapter', {'schemaVersion' => 'V1_5_0'})
|
1103
|
-
.add_element('clientVirtualNetworks', {'schemaVersion' => 'V1_5_0'})
|
1104
|
-
.add_element('ClientVirtualNetwork', {'schemaVersion' => 'V1_5_0'})
|
1105
|
-
.tap do |v|
|
1106
|
-
v.add_element('name').text = vlan[:name]
|
1107
|
-
v.add_element('vlanId').text = vlan[:vlan_id]
|
1108
|
-
v.add_element('associatedSwitchName').text = vlan[:switch]
|
1109
|
-
end
|
1110
|
-
end
|
1111
|
-
xml.elements['logicalPartitionConfig/clientNetworkAdapters'] = adaps
|
836
|
+
def sys_uuid
|
837
|
+
uuid_from_href(href, -3)
|
1112
838
|
end
|
1113
839
|
end
|
1114
840
|
|
@@ -1124,16 +850,6 @@ module IbmPowerHmc
|
|
1124
850
|
}.freeze
|
1125
851
|
end
|
1126
852
|
|
1127
|
-
# Error response from HMC
|
1128
|
-
class HttpErrorResponse < AbstractRest
|
1129
|
-
ATTRS = {
|
1130
|
-
:status => "HTTPStatus",
|
1131
|
-
:uri => "RequestURI",
|
1132
|
-
:reason => "ReasonCode",
|
1133
|
-
:message => "Message"
|
1134
|
-
}.freeze
|
1135
|
-
end
|
1136
|
-
|
1137
853
|
# Job Response
|
1138
854
|
class JobResponse < AbstractRest
|
1139
855
|
ATTRS = {
|
@@ -1154,32 +870,4 @@ module IbmPowerHmc
|
|
1154
870
|
results
|
1155
871
|
end
|
1156
872
|
end
|
1157
|
-
|
1158
|
-
# Performance and Capacity Monitoring preferences
|
1159
|
-
class ManagementConsolePcmPreference < AbstractRest
|
1160
|
-
ATTRS = {
|
1161
|
-
:max_ltm => "MaximumManagedSystemsForLongTermMonitor",
|
1162
|
-
:max_compute_ltm => "MaximumManagedSystemsForComputeLTM",
|
1163
|
-
:max_aggregation => "MaximumManagedSystemsForAggregation",
|
1164
|
-
:max_stm => "MaximumManagedSystemsForShortTermMonitor",
|
1165
|
-
:max_em => "MaximumManagedSystemsForEnergyMonitor",
|
1166
|
-
:aggregated_storage_duration => "AggregatedMetricsStorageDuration"
|
1167
|
-
}.freeze
|
1168
|
-
|
1169
|
-
def managed_system_preferences
|
1170
|
-
collection_of(nil, "ManagedSystemPcmPreference")
|
1171
|
-
end
|
1172
|
-
end
|
1173
|
-
|
1174
|
-
class ManagedSystemPcmPreference < AbstractNonRest
|
1175
|
-
ATTRS = {
|
1176
|
-
:id => "Metadata/Atom/AtomID",
|
1177
|
-
:name => "SystemName",
|
1178
|
-
:long_term_monitor => "LongTermMonitorEnabled",
|
1179
|
-
:aggregation => "AggregationEnabled",
|
1180
|
-
:short_term_monitor => "ShortTermMonitorEnabled",
|
1181
|
-
:compute_ltm => "ComputeLTMEnabled",
|
1182
|
-
:energy_monitor => "EnergyMonitorEnabled"
|
1183
|
-
}.freeze
|
1184
|
-
end
|
1185
873
|
end
|
data/lib/ibm_power_hmc.rb
CHANGED
@@ -7,8 +7,15 @@ require "ibm_power_hmc/version"
|
|
7
7
|
|
8
8
|
# Module for IBM HMC Rest API Client
|
9
9
|
module IbmPowerHmc
|
10
|
-
require_relative "./ibm_power_hmc/
|
11
|
-
require_relative "./ibm_power_hmc/job"
|
12
|
-
require_relative "./ibm_power_hmc/
|
13
|
-
require_relative "./ibm_power_hmc/
|
10
|
+
require_relative "./ibm_power_hmc/apis/connection"
|
11
|
+
require_relative "./ibm_power_hmc/apis/job"
|
12
|
+
require_relative "./ibm_power_hmc/apis/pcm"
|
13
|
+
require_relative "./ibm_power_hmc/apis/sem"
|
14
|
+
require_relative "./ibm_power_hmc/apis/templates"
|
15
|
+
require_relative "./ibm_power_hmc/apis/uom"
|
16
|
+
require_relative "./ibm_power_hmc/schema/parser"
|
17
|
+
require_relative "./ibm_power_hmc/schema/pcm"
|
18
|
+
require_relative "./ibm_power_hmc/schema/sem"
|
19
|
+
require_relative "./ibm_power_hmc/schema/templates"
|
20
|
+
require_relative "./ibm_power_hmc/schema/uom"
|
14
21
|
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.
|
4
|
+
version: 0.20.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-10-
|
11
|
+
date: 2022-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -56,10 +56,17 @@ files:
|
|
56
56
|
- bin/setup
|
57
57
|
- ibm_power_hmc.gemspec
|
58
58
|
- lib/ibm_power_hmc.rb
|
59
|
-
- lib/ibm_power_hmc/connection.rb
|
60
|
-
- lib/ibm_power_hmc/job.rb
|
61
|
-
- lib/ibm_power_hmc/
|
62
|
-
- lib/ibm_power_hmc/
|
59
|
+
- lib/ibm_power_hmc/apis/connection.rb
|
60
|
+
- lib/ibm_power_hmc/apis/job.rb
|
61
|
+
- lib/ibm_power_hmc/apis/pcm.rb
|
62
|
+
- lib/ibm_power_hmc/apis/sem.rb
|
63
|
+
- lib/ibm_power_hmc/apis/templates.rb
|
64
|
+
- lib/ibm_power_hmc/apis/uom.rb
|
65
|
+
- lib/ibm_power_hmc/schema/parser.rb
|
66
|
+
- lib/ibm_power_hmc/schema/pcm.rb
|
67
|
+
- lib/ibm_power_hmc/schema/sem.rb
|
68
|
+
- lib/ibm_power_hmc/schema/templates.rb
|
69
|
+
- lib/ibm_power_hmc/schema/uom.rb
|
63
70
|
- lib/ibm_power_hmc/version.rb
|
64
71
|
homepage: http://github.com/IBM/ibm_power_hmc_sdk_ruby
|
65
72
|
licenses:
|