radfish-ami 0.1.15 → 0.2.1

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: b7fbc8a153c2cab4049f4f939fb0256b56e9e0c707a0a38414c676a08abe3e41
4
- data.tar.gz: 9b1308064a87ba306e31af4c36a130289797bffeafa416a8664445dbbd87efad
3
+ metadata.gz: b06ca71ca0b62604b0346f94e4c78f769d48f4d5fe21f1d4e6175a31704b050c
4
+ data.tar.gz: 47504aa7a12ffc64e3a38e9f0a36c0481d053c0f3b7de680d91b4226cc3882c0
5
5
  SHA512:
6
- metadata.gz: 64c904e52a386179cccaf4ae1ccf063947424a3edf1544da07e3fad7dc466b72011638d8095960eb62a8127d70a2dff2877288a771a05d8e0386f4c6eb419a39
7
- data.tar.gz: 646f1c49b11e8627520e2f4444a13b60686ff92828cf483f1091329e4604319d064ac70514bbba7b3163aa5ff902f9144bf2e60c2a0c9f92896840513ff22db1
6
+ metadata.gz: 06722dd27255de68dbb526bab9cba315060f492df584fa5889fda1a3e84dedb41d2bbc9e9521b2fefe21ae8eee8b8b55653db632c8385b3720c43910d12dfaf5
7
+ data.tar.gz: 45a93ab4245a9629ca32188185867cbcd24a794722a98bcbdf1d2edffde83432233c49abfc31c84b1d3131c60f56d044bd2e2e1aa937c6516ccc71353f3a9fa0
data/README.md CHANGED
@@ -46,7 +46,7 @@ client.power_restart(force: true)
46
46
 
47
47
  # Virtual media
48
48
  client.insert_virtual_media('http://example.com/boot.iso')
49
- client.set_boot_override('Cd', persistent: false)
49
+ client.set_boot_override('Cd', persistence: 'Once')
50
50
  client.power_restart
51
51
 
52
52
  # Thermal data
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Radfish
4
4
  module Ami
5
- VERSION = "0.1.15"
5
+ VERSION = "0.2.1"
6
6
  end
7
7
  end
@@ -648,7 +648,7 @@ module Radfish
648
648
 
649
649
  def mount_iso_and_boot(iso_url, device: nil)
650
650
  insert_virtual_media(iso_url, device: device)
651
- set_boot_override("Cd", persistent: false)
651
+ set_boot_override("Cd", persistence: 'Once')
652
652
  power_restart(force: true)
653
653
  end
654
654
 
@@ -669,19 +669,23 @@ module Radfish
669
669
  }
670
670
  end
671
671
 
672
- def set_boot_override(target, persistent: false)
673
- enabled = persistent ? "Continuous" : "Once"
672
+ def set_boot_override(target, persistence: nil, mode: nil)
673
+ persistence = "Once" unless persistence
674
674
  payload = {
675
675
  "Boot" => {
676
676
  "BootSourceOverrideTarget" => target,
677
- "BootSourceOverrideEnabled" => enabled
677
+ "BootSourceOverrideEnabled" => persistence
678
678
  }
679
679
  }
680
680
 
681
+ # Only send the mode when the caller asked for one; BMCs that do not
682
+ # support BootSourceOverrideMode reject the property outright.
683
+ payload["Boot"]["BootSourceOverrideMode"] = mode if mode
684
+
681
685
  response = authenticated_request(:patch, "/redfish/v1/Systems/#{SYSTEM_ID}", body: payload.to_json)
682
686
 
683
687
  if response.status.between?(200, 204)
684
- debug "Boot override set to #{target} (#{enabled})", 1, :green
688
+ debug "Boot override set to #{target} (#{persistence})", 1, :green
685
689
  true
686
690
  else
687
691
  error_msg = begin
@@ -720,24 +724,24 @@ module Radfish
720
724
  boot_config["BootOrder"] || []
721
725
  end
722
726
 
723
- def boot_to_pxe(persistent: false)
724
- set_boot_override("Pxe", persistent: persistent)
727
+ def boot_to_pxe(persistence: nil, mode: nil)
728
+ set_boot_override("Pxe", persistence: persistence, mode: mode)
725
729
  end
726
730
 
727
- def boot_to_disk(persistent: false)
728
- set_boot_override("Hdd", persistent: persistent)
731
+ def boot_to_disk(persistence: nil, mode: nil)
732
+ set_boot_override("Hdd", persistence: persistence, mode: mode)
729
733
  end
730
734
 
731
- def boot_to_cd(persistent: false)
732
- set_boot_override("Cd", persistent: persistent)
735
+ def boot_to_cd(persistence: nil, mode: nil)
736
+ set_boot_override("Cd", persistence: persistence, mode: mode)
733
737
  end
734
738
 
735
- def boot_to_usb(persistent: false)
736
- set_boot_override("Usb", persistent: persistent)
739
+ def boot_to_usb(persistence: nil, mode: nil)
740
+ set_boot_override("Usb", persistence: persistence, mode: mode)
737
741
  end
738
742
 
739
- def boot_to_bios_setup(persistent: false)
740
- set_boot_override("BiosSetup", persistent: persistent)
743
+ def boot_to_bios_setup(persistence: nil, mode: nil)
744
+ set_boot_override("BiosSetup", persistence: persistence, mode: mode)
741
745
  end
742
746
 
743
747
  # Jobs/Tasks
data/radfish-ami.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  end
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_dependency "radfish", "~> 0.2"
24
+ spec.add_dependency "radfish", "~> 0.3", ">= 0.3.0"
25
25
  spec.add_dependency "ostruct", "~> 0.6"
26
26
 
27
27
  spec.add_development_dependency "bundler", "~> 2.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: radfish-ami
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Siegel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-21 00:00:00.000000000 Z
11
+ date: 2026-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: radfish
@@ -16,14 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.2'
19
+ version: '0.3'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.3.0
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: '0.2'
29
+ version: '0.3'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.3.0
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: ostruct
29
35
  requirement: !ruby/object:Gem::Requirement