all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [RFC PATCH installer] fix #5973: auto: first boot: allow snake- and kebabcased property names
@ 2024-12-05 14:07 Daniel Kral
  2025-01-28 14:38 ` Thomas Lamprecht
  2025-02-17 12:21 ` Daniel Kral
  0 siblings, 2 replies; 6+ messages in thread
From: Daniel Kral @ 2024-12-05 14:07 UTC (permalink / raw)
  To: pve-devel

Allow the names for the [first-boot] properties to be parsed as either
snake_cased or kebab-cased strings, i.e. `cert_fingerprint` or
`cert-fingerprint`, to have consistent property name casings. Currently,
this only affects the `cert_fingerprint`.

This change does not break API as it preserves the kebabcased variant
`cert-fingerprint`, but as this change propagates to the auto-installer,
using the snakecased `cert_fingerprint` will result in a parse error
during auto installation on any unpatched ISO (e.g. Proxmox VE 8.3-1).

Signed-off-by: Daniel Kral <d.kral@proxmox.com>
---
I have tested this by setting up a small HTTPS server with Python's
`http.server` and `ssl.wrap_socket()` on my local machine and creating
two different ISOs (with the Proxmox VE 8.3-1 ISO):

- with `cert-fingerprint` (which works correctly as expected), and
- with `cert_fingerprint` (which will fail at a parser error with the
newest Proxmox VE 8.3-1 ISO).

I've also tested the change by booting the ISO in debug mode and copying
over the recompiled binaries, setting up the environment and running the
auto installation with `proxmox-fetch-answer | proxmox-auto-installer`,
which worked as expected.

 proxmox-auto-installer/src/answer.rs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/proxmox-auto-installer/src/answer.rs b/proxmox-auto-installer/src/answer.rs
index c206fcc..04c0ace 100644
--- a/proxmox-auto-installer/src/answer.rs
+++ b/proxmox-auto-installer/src/answer.rs
@@ -107,7 +107,7 @@ impl FirstBootHookServiceOrdering {
 /// Describes from where to fetch the first-boot hook script, either being baked into the ISO or
 /// from a URL.
 #[derive(Clone, Deserialize, Debug)]
-#[serde(rename_all = "kebab-case", deny_unknown_fields)]
+#[serde(deny_unknown_fields)]
 pub struct FirstBootHookInfo {
     /// Mode how to retrieve the first-boot executable file, either from an URL or from the ISO if
     /// it has been baked-in.
@@ -118,6 +118,7 @@ pub struct FirstBootHookInfo {
     /// Retrieve the post-install script from a URL, if source == "from-url".
     pub url: Option<String>,
     /// SHA256 cert fingerprint if certificate pinning should be used, if source == "from-url".
+    #[serde(alias = "cert-fingerprint")]
     pub cert_fingerprint: Option<String>,
 }
 
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-02-17 12:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-12-05 14:07 [pve-devel] [RFC PATCH installer] fix #5973: auto: first boot: allow snake- and kebabcased property names Daniel Kral
2025-01-28 14:38 ` Thomas Lamprecht
2025-01-29  9:34   ` Christoph Heiss
2025-01-30  9:11   ` Daniel Kral
2025-01-30 10:06     ` Thomas Lamprecht
2025-02-17 12:21 ` Daniel Kral

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal