idrac 0.5.4 → 0.5.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 11b28d37156ee3d58ef6a804a016cc6ca35f6a4e7c4e158c93fe86c0053398f0
4
- data.tar.gz: c69c297450fb2715873e3dbd66f2779d3487ce1fecfca9a4032a7d917d87f8c6
3
+ metadata.gz: 905a49888753b1dcfe826181f2a758083ef39a0964afefac2358ff17474645aa
4
+ data.tar.gz: e45f1e19020802027765730e0903cd57191964d0d6d14638a919f1da0dec8ae0
5
5
  SHA512:
6
- metadata.gz: f0beadf7041ca23371999f125d536c25972a615092baf045fdb2694d3c15e2ea28c9f063943e1f8df67065855f26cca23e138622b2f80fba0c8bc8b575c8215c
7
- data.tar.gz: c88e403f07b030a238f999498c3da04fa5b3908713d469c4e52ed28ea8ac310ec018c9a6be519695d054358a1603045d4a8785d94d029e07b90cdcbf6445a1c5
6
+ metadata.gz: 5f09916115ddf02707df2f193eef9e0e7172a92c8fce94a1960002fed7429aa0bc4802d31074c3684e93404ea7c21de20a314340359a17b634c9db83b4590625
7
+ data.tar.gz: aeb4bea7d57908961898095dbf38c934f2178d42785b8ce630aaf0c6ebf6fe1d6b6c83f3e8b615ca28797c196e938a4a83f2c4a0e8c83fa152976891308d6c18
data/bin/idrac CHANGED
@@ -581,17 +581,17 @@ module IDRAC
581
581
  puts "-" * 80
582
582
 
583
583
  controllers.each do |controller|
584
- puts "Controller: #{controller[:name]}".cyan.bold
585
- puts " Model: #{controller[:model]}"
586
- puts " Status: #{controller[:status]}"
587
- puts " Drives: #{controller[:drives_count]}"
588
- puts " Firmware: #{controller[:firmware_version]}"
589
- puts " Type: #{controller[:controller_type]}"
590
- puts " PCI Slot: #{controller[:pci_slot]}"
584
+ puts "Controller: #{controller.name}".cyan.bold
585
+ puts " Model: #{controller.model}"
586
+ puts " Status: #{controller.status}"
587
+ puts " Drives: #{controller.drives_count}"
588
+ puts " Firmware: #{controller.firmware_version}"
589
+ puts " Type: #{controller.controller_type}"
590
+ puts " PCI Slot: #{controller.pci_slot}"
591
591
 
592
- if controller[:encryption_capability]
593
- puts " Encryption: #{controller[:encryption_capability]}"
594
- puts " Encryption Mode: #{controller[:encryption_mode] || 'Disabled'}"
592
+ if controller.encryption_capability
593
+ puts " Encryption: #{controller.encryption_capability}"
594
+ puts " Encryption Mode: #{controller.encryption_mode || 'Disabled'}"
595
595
  end
596
596
 
597
597
  puts
@@ -675,7 +675,7 @@ module IDRAC
675
675
  confirmation = $stdin.gets.chomp.downcase
676
676
 
677
677
  if confirmation == 'y'
678
- client.create_virtual_disk(controller.odata_Id, drives, name: options[:name], raid_type: options[:raid])
678
+ client.create_virtual_disk(controller.odata_id, drives, name: options[:name], raid_type: options[:raid])
679
679
  puts "Volume created successfully".green
680
680
  else
681
681
  puts "Operation cancelled".yellow
data/lib/idrac/client.rb CHANGED
@@ -302,6 +302,33 @@ module IDRAC
302
302
  end
303
303
  end
304
304
 
305
+ def get_firmware_version
306
+ response = authenticated_request(:get, "/redfish/v1/Managers/iDRAC.Embedded.1?$select=FirmwareVersion")
307
+
308
+ if response.status == 200
309
+ begin
310
+ data = JSON.parse(response.body)
311
+ return data["FirmwareVersion"]
312
+ rescue JSON::ParserError
313
+ raise Error, "Failed to parse firmware version response: #{response.body}"
314
+ end
315
+ else
316
+ # Try again without the $select parameter for older firmware
317
+ response = authenticated_request(:get, "/redfish/v1/Managers/iDRAC.Embedded.1")
318
+
319
+ if response.status == 200
320
+ begin
321
+ data = JSON.parse(response.body)
322
+ return data["FirmwareVersion"]
323
+ rescue JSON::ParserError
324
+ raise Error, "Failed to parse firmware version response: #{response.body}"
325
+ end
326
+ else
327
+ raise Error, "Failed to get firmware version. Status code: #{response.status}"
328
+ end
329
+ end
330
+ end
331
+
305
332
  # Execute a block with automatic retries
306
333
  # @param max_retries [Integer] Maximum number of retry attempts
307
334
  # @param initial_delay [Integer] Initial delay in seconds between retries (increases exponentially)
data/lib/idrac/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IDRAC
4
- VERSION = "0.5.4"
4
+ VERSION = "0.5.5"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idrac
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Siegel