ibm_power_hmc 0.13.0 → 0.15.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: 3e96072a9ae18c79163e6f52a904e3b4f696f9b5d56729fc92d234a385929269
4
- data.tar.gz: 69738a546bff4977e35c4732894a0b1916ec8e0dd49601c7e41d95e793f83ae8
3
+ metadata.gz: 795c24c54a66370ed07b6d1fdac7f156e2802f2e3ddcc874a3e63704cea8c1f9
4
+ data.tar.gz: 0cb32bfa4740e020d444e1d4b520cee210c50e14c13c7caacf3c79edc9529121
5
5
  SHA512:
6
- metadata.gz: cbe96ad163dc152b885638579ca712a47e07716d98485cd3585de86d8b01e8ba961211cc27a0d0d8b0e4273f610b94eab46e114fc98f1049b480ab73a266f0fa
7
- data.tar.gz: 94dafbe96f39811e3b1e70eae35fcc22442c05bbe0eae3fbca3e1e5577c35dffeb575bef5ecc87babdd08939904882391f811b5ddd980983ce30679e7f6c7f18
6
+ metadata.gz: c980bfb6bea2bcf632903a5cda0dccfafc49f4115fa94d80823d6ba836cd9c385a37faa7e3951bb1c7675e8d928d92250890920689d8b07c870b8043196d532e
7
+ data.tar.gz: 7af86636d815da7b63587e459bbd4601045c55f4485cb22eb503b6875e00c43cd94f83d412882fe995e3846171547979f0fd5f93ab4e6804013e01fb9bd9d38d
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'erb'
4
+
3
5
  # Module for IBM HMC Rest API Client
4
6
  module IbmPowerHmc
5
7
  class Error < StandardError; end
@@ -16,12 +18,13 @@ module IbmPowerHmc
16
18
  # @param username [String] User name.
17
19
  # @param port [Integer] TCP port number.
18
20
  # @param validate_ssl [Boolean] Verify SSL certificates.
19
- def initialize(host:, password:, username: "hscroot", port: 12_443, validate_ssl: true)
21
+ def initialize(host:, password:, username: "hscroot", port: 12_443, validate_ssl: true, timeout: 60)
20
22
  @hostname = "#{host}:#{port}"
21
23
  @username = username
22
24
  @password = password
23
25
  @verify_ssl = validate_ssl
24
26
  @api_session_token = nil
27
+ @timeout = timeout
25
28
  end
26
29
 
27
30
  ##
@@ -76,17 +79,40 @@ module IbmPowerHmc
76
79
  end
77
80
 
78
81
  ##
79
- # @!method managed_systems(search = {})
82
+ # @!method managed_systems(search = nil)
80
83
  # Retrieve the list of systems managed by the HMC.
81
- # @param search [Hash] The optional property name and value to match.
84
+ # @param search [String] The optional search criteria.
82
85
  # @return [Array<IbmPowerHmc::ManagedSystem>] The list of managed systems.
83
- def managed_systems(search = {})
86
+ def managed_systems(search = nil)
84
87
  method_url = "/rest/api/uom/ManagedSystem"
85
- search.each { |key, value| method_url += "/search/(#{key}==#{value})" }
88
+ method_url += "/search/(#{ERB::Util.url_encode(search)})" unless search.nil?
86
89
  response = request(:get, method_url)
87
90
  FeedParser.new(response.body).objects(:ManagedSystem)
88
91
  end
89
92
 
93
+ ##
94
+ # @!method managed_systems_quick
95
+ # Retrieve the list of systems managed by the HMC (using Quick API).
96
+ # @return [Array<Hash>] The list of managed systems.
97
+ def managed_systems_quick
98
+ method_url = "/rest/api/uom/ManagedSystem/quick/All"
99
+ response = request(:get, method_url)
100
+ JSON.parse(response.body)
101
+ end
102
+
103
+ ##
104
+ # @!method managed_system_quick(sys_uuid, property = nil)
105
+ # Retrieve information about a managed system (using Quick API).
106
+ # @param sys_uuid [String] The UUID of the managed system.
107
+ # @param property_name [String] The quick property name (optional).
108
+ # @return [Hash] The managed system.
109
+ def managed_system_quick(sys_uuid, property = nil)
110
+ method_url = "/rest/api/uom/ManagedSystem/#{sys_uuid}/quick"
111
+ method_url += "/#{property}" unless property.nil?
112
+ response = request(:get, method_url)
113
+ JSON.parse(response.body)
114
+ end
115
+
90
116
  ##
91
117
  # @!method managed_system(lpar_uuid, sys_uuid = nil, group_name = nil)
92
118
  # Retrieve information about a managed system.
@@ -102,15 +128,15 @@ module IbmPowerHmc
102
128
  end
103
129
 
104
130
  ##
105
- # @!method lpars(sys_uuid = nil, search = {})
131
+ # @!method lpars(sys_uuid = nil, search = nil)
106
132
  # Retrieve the list of logical partitions managed by the HMC.
107
133
  # @param sys_uuid [String] The UUID of the managed system.
108
- # @param search [Hash] The optional property name and value to match.
134
+ # @param search [String] The optional search criteria.
109
135
  # @return [Array<IbmPowerHmc::LogicalPartition>] The list of logical partitions.
110
- def lpars(sys_uuid = nil, search = {})
136
+ def lpars(sys_uuid = nil, search = nil)
111
137
  if sys_uuid.nil?
112
138
  method_url = "/rest/api/uom/LogicalPartition"
113
- search.each { |key, value| method_url += "/search/(#{key}==#{value})" }
139
+ method_url += "/search/(#{ERB::Util.url_encode(search)})" unless search.nil?
114
140
  else
115
141
  method_url = "/rest/api/uom/ManagedSystem/#{sys_uuid}/LogicalPartition"
116
142
  end
@@ -198,16 +224,16 @@ module IbmPowerHmc
198
224
  end
199
225
 
200
226
  ##
201
- # @!method vioses(sys_uuid = nil, search = {}, permissive = true)
227
+ # @!method vioses(sys_uuid = nil, search = nil, permissive = true)
202
228
  # Retrieve the list of virtual I/O servers managed by the HMC.
203
229
  # @param sys_uuid [String] The UUID of the managed system.
204
- # @param search [Hash] The optional property name and value to match.
230
+ # @param search [String] The optional search criteria.
205
231
  # @param permissive [Boolean] Skip virtual I/O servers that have error conditions.
206
232
  # @return [Array<IbmPowerHmc::VirtualIOServer>] The list of virtual I/O servers.
207
- def vioses(sys_uuid = nil, search = {}, permissive = true)
233
+ def vioses(sys_uuid = nil, search = nil, permissive = true)
208
234
  if sys_uuid.nil?
209
235
  method_url = "/rest/api/uom/VirtualIOServer"
210
- search.each { |key, value| method_url += "/search/(#{key}==#{value})" }
236
+ method_url += "/search/(#{ERB::Util.url_encode(search)})" unless search.nil?
211
237
  else
212
238
  method_url = "/rest/api/uom/ManagedSystem/#{sys_uuid}/VirtualIOServer"
213
239
  end
@@ -858,7 +884,8 @@ module IbmPowerHmc
858
884
  :url => url,
859
885
  :verify_ssl => @verify_ssl,
860
886
  :payload => payload,
861
- :headers => headers
887
+ :headers => headers,
888
+ :timeout => @timeout
862
889
  )
863
890
  rescue RestClient::Exception => e
864
891
  # Do not retry on failed logon attempts.
@@ -262,7 +262,9 @@ module IbmPowerHmc
262
262
  :model => "MachineTypeModelAndSerialNumber/Model",
263
263
  :serial => "MachineTypeModelAndSerialNumber/SerialNumber",
264
264
  :vtpm_version => "AssociatedSystemSecurity/VirtualTrustedPlatformModuleVersion",
265
- :vtpm_lpars => "AssociatedSystemSecurity/AvailableVirtualTrustedPlatformModulePartitions"
265
+ :vtpm_lpars => "AssociatedSystemSecurity/AvailableVirtualTrustedPlatformModulePartitions",
266
+ :is_classic_hmc_mgmt => "IsClassicHMCManagement",
267
+ :is_hmc_mgmt_master => "IsHMCPowerVMManagementMaster"
266
268
  }.freeze
267
269
 
268
270
  def group_uuids
@@ -517,7 +519,9 @@ module IbmPowerHmc
517
519
  :type => "AdapterType", # "Server", "Client", "Unknown"
518
520
  :location => "LocationCode",
519
521
  :slot => "VirtualSlotNumber",
520
- :required => "RequiredAdapter"
522
+ :required => "RequiredAdapter",
523
+ :lpar_id => "LocalPartitionID",
524
+ :dr_name => "DynamicReconfigurationConnectorName"
521
525
  }.freeze
522
526
  end
523
527
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IbmPowerHmc
4
- VERSION = "0.13.0"
4
+ VERSION = "0.15.0"
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.13.0
4
+ version: 0.15.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-09-06 00:00:00.000000000 Z
11
+ date: 2022-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client