idrac 0.10.7 → 0.11.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/lib/idrac/boot.rb +14 -13
- data/lib/idrac/firmware.rb +6 -6
- data/lib/idrac/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aae19c4ce800e57cb1b15ca37be3d48d1c22f52d2eb455a877fe517f21bd65f4
|
|
4
|
+
data.tar.gz: 1f772c3a6c316578e572e8b797695e19096e1a04e424f38633f6dfad56b6a12c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 51c2314dee2b317013816c1e87aacd0d2f5808bb63921826da788d50248e7b84fb871b14abcbc92f92b56ae7cea18d69b5ed32727939549351ee8026510356a1
|
|
7
|
+
data.tar.gz: e2fe2aad75892982b41819ac1dafd13a7317c85e7d427ee6379b21a8b2daa1e2563c87b1ac97d1910ff9f5900058562a727b06b3e104e9a3183cb82850843db0
|
data/lib/idrac/boot.rb
CHANGED
|
@@ -140,7 +140,8 @@ module IDRAC
|
|
|
140
140
|
end
|
|
141
141
|
|
|
142
142
|
# Set boot override for next boot
|
|
143
|
-
def set_boot_override(target,
|
|
143
|
+
def set_boot_override(target, persistence: nil, mode: nil)
|
|
144
|
+
persistence = "Once" unless persistence
|
|
144
145
|
# Validate target against allowed values
|
|
145
146
|
boot_data = boot
|
|
146
147
|
valid_targets = boot_data["allowed_override_targets"]
|
|
@@ -150,11 +151,11 @@ module IDRAC
|
|
|
150
151
|
raise Error, "Invalid boot target: #{target}"
|
|
151
152
|
end
|
|
152
153
|
|
|
153
|
-
debug "Setting boot override to #{target} (#{
|
|
154
|
+
debug "Setting boot override to #{target} (#{persistence})...", 1, :yellow
|
|
154
155
|
|
|
155
156
|
body = {
|
|
156
157
|
"Boot" => {
|
|
157
|
-
"BootSourceOverrideEnabled" =>
|
|
158
|
+
"BootSourceOverrideEnabled" => persistence, # Disabled/Once/Continuous
|
|
158
159
|
"BootSourceOverrideTarget" => target # None/Pxe/Hdd/Cd/etc
|
|
159
160
|
}
|
|
160
161
|
}
|
|
@@ -225,24 +226,24 @@ module IDRAC
|
|
|
225
226
|
end
|
|
226
227
|
|
|
227
228
|
# Convenience methods for common boot targets
|
|
228
|
-
def boot_to_pxe(
|
|
229
|
-
set_boot_override("Pxe",
|
|
229
|
+
def boot_to_pxe(persistence: nil, mode: nil)
|
|
230
|
+
set_boot_override("Pxe", persistence: persistence, mode: mode)
|
|
230
231
|
end
|
|
231
232
|
|
|
232
|
-
def boot_to_disk(
|
|
233
|
-
set_boot_override("Hdd",
|
|
233
|
+
def boot_to_disk(persistence: nil, mode: nil)
|
|
234
|
+
set_boot_override("Hdd", persistence: persistence, mode: mode)
|
|
234
235
|
end
|
|
235
236
|
|
|
236
|
-
def boot_to_cd(
|
|
237
|
-
set_boot_override("Cd",
|
|
237
|
+
def boot_to_cd(persistence: nil, mode: nil)
|
|
238
|
+
set_boot_override("Cd", persistence: persistence, mode: mode)
|
|
238
239
|
end
|
|
239
240
|
|
|
240
|
-
def boot_to_usb(
|
|
241
|
-
set_boot_override("Usb",
|
|
241
|
+
def boot_to_usb(persistence: nil, mode: nil)
|
|
242
|
+
set_boot_override("Usb", persistence: persistence, mode: mode)
|
|
242
243
|
end
|
|
243
244
|
|
|
244
|
-
def boot_to_bios_setup(
|
|
245
|
-
set_boot_override("BiosSetup",
|
|
245
|
+
def boot_to_bios_setup(persistence: nil, mode: nil)
|
|
246
|
+
set_boot_override("BiosSetup", persistence: persistence, mode: mode)
|
|
246
247
|
end
|
|
247
248
|
|
|
248
249
|
private
|
data/lib/idrac/firmware.rb
CHANGED
|
@@ -590,11 +590,10 @@ module IDRAC
|
|
|
590
590
|
end
|
|
591
591
|
|
|
592
592
|
# Construct the firmware URI from the upload response
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
end
|
|
593
|
+
# Prefer @odata.id from response body, then Location header, then constructed path
|
|
594
|
+
image_uri = upload_data&.dig('@odata.id') ||
|
|
595
|
+
upload_response.headers['Location'] ||
|
|
596
|
+
(firmware_id ? "#{http_push_uri}/#{firmware_id}" : http_push_uri)
|
|
598
597
|
|
|
599
598
|
# Check if Dell OEM Install action is available (iDRAC8)
|
|
600
599
|
# This is more reliable than SimpleUpdate on older iDRACs
|
|
@@ -604,9 +603,10 @@ module IDRAC
|
|
|
604
603
|
if dell_install_target
|
|
605
604
|
puts "Using Dell OEM Install action (iDRAC8)...".light_cyan
|
|
606
605
|
puts "Firmware URI: #{image_uri}".light_cyan
|
|
606
|
+
# iDRAC8 DellUpdateService.Install expects @odata.id URIs
|
|
607
607
|
install_payload = {
|
|
608
608
|
"SoftwareIdentityURIs" => [image_uri],
|
|
609
|
-
"InstallUpon" => "
|
|
609
|
+
"InstallUpon" => "NowAndReboot"
|
|
610
610
|
}
|
|
611
611
|
update_response = client.authenticated_request(
|
|
612
612
|
:post,
|
data/lib/idrac/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: idrac
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.11.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonathan Siegel
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-09-10 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: httparty
|
|
@@ -281,6 +282,7 @@ licenses:
|
|
|
281
282
|
metadata:
|
|
282
283
|
homepage_uri: https://github.com/buildio/idrac
|
|
283
284
|
source_code_uri: https://github.com/buildio/idrac
|
|
285
|
+
post_install_message:
|
|
284
286
|
rdoc_options: []
|
|
285
287
|
require_paths:
|
|
286
288
|
- lib
|
|
@@ -295,7 +297,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
295
297
|
- !ruby/object:Gem::Version
|
|
296
298
|
version: '0'
|
|
297
299
|
requirements: []
|
|
298
|
-
rubygems_version: 3.
|
|
300
|
+
rubygems_version: 3.5.16
|
|
301
|
+
signing_key:
|
|
299
302
|
specification_version: 4
|
|
300
303
|
summary: API Client for Dell iDRAC
|
|
301
304
|
test_files: []
|