* [pdm-devel] [PATCH proxmox-api-types 1/2] regenerate and adapt to rng changes
@ 2025-04-18 9:32 Dominik Csapak
2025-04-18 9:32 ` [pdm-devel] [PATCH proxmox-api-types 2/2] generator: derive default for enums that provide a default Dominik Csapak
2025-04-22 19:49 ` [pdm-devel] applied: " Thomas Lamprecht
0 siblings, 2 replies; 4+ messages in thread
From: Dominik Csapak @ 2025-04-18 9:32 UTC (permalink / raw)
To: pdm-devel
the recent changes for rng in qemu-server:
18fc321e (refactor: move rng related code into its own module)
converted the rng0 format to a proper registered format, which changes
its name, so we have to adapt the renaming of the enum variants.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
pve-api-types/generate.pl | 6 +-
pve-api-types/src/generated/code.rs | 2 +
pve-api-types/src/generated/types.rs | 306 ++++++++++++++++++++-------
3 files changed, 238 insertions(+), 76 deletions(-)
diff --git a/pve-api-types/generate.pl b/pve-api-types/generate.pl
index 8be737b..c7ce9a6 100644
--- a/pve-api-types/generate.pl
+++ b/pve-api-types/generate.pl
@@ -89,9 +89,9 @@ Schema2Rust::register_enum_variant('QemuConfigEfidisk0Efitype::2m' => 'Mb2');
Schema2Rust::register_enum_variant('QemuConfigEfidisk0Efitype::4m' => 'Mb4');
Schema2Rust::register_enum_variant('QemuConfigHugepages::2' => 'Mb2');
Schema2Rust::register_enum_variant('QemuConfigHugepages::1024' => 'Mb1024');
-Schema2Rust::register_enum_variant('QemuConfigRng0Source::/dev/urandom', => 'DevUrandom');
-Schema2Rust::register_enum_variant('QemuConfigRng0Source::/dev/random', => 'DevRandom');
-Schema2Rust::register_enum_variant('QemuConfigRng0Source::/dev/hwrng', => 'DevHwrng');
+Schema2Rust::register_enum_variant('PveQmRngSource::/dev/urandom', => 'DevUrandom');
+Schema2Rust::register_enum_variant('PveQmRngSource::/dev/random', => 'DevRandom');
+Schema2Rust::register_enum_variant('PveQmRngSource::/dev/hwrng', => 'DevHwrng');
Schema2Rust::register_enum_variant('QemuConfigTpmstate0Version::v1.2' => 'V1_2');
Schema2Rust::register_enum_variant('QemuConfigTpmstate0Version::v2.0' => 'V2_0');
diff --git a/pve-api-types/src/generated/code.rs b/pve-api-types/src/generated/code.rs
index 401d3bc..42f9e37 100644
--- a/pve-api-types/src/generated/code.rs
+++ b/pve-api-types/src/generated/code.rs
@@ -80,6 +80,8 @@
/// - /cluster/jobs/schedule-analyze
/// - /cluster/log
/// - /cluster/mapping
+/// - /cluster/mapping/dir
+/// - /cluster/mapping/dir/{id}
/// - /cluster/mapping/pci
/// - /cluster/mapping/pci/{id}
/// - /cluster/mapping/usb
diff --git a/pve-api-types/src/generated/types.rs b/pve-api-types/src/generated/types.rs
index 5a656ba..c64da8b 100644
--- a/pve-api-types/src/generated/types.rs
+++ b/pve-api-types/src/generated/types.rs
@@ -3818,6 +3818,10 @@ pub struct ProxmoxRemote {
#[api(
default_key: "type",
properties: {
+ "allow-smt": {
+ default: true,
+ optional: true,
+ },
"kernel-hashes": {
default: false,
optional: true,
@@ -3838,19 +3842,27 @@ pub struct ProxmoxRemote {
/// Object.
#[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct PveQemuSevFmt {
+ /// Sets policy bit to allow Simultaneous Multi Threading (SMT) (Ignored
+ /// unless for SEV-SNP)
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ #[serde(rename = "allow-smt")]
+ pub allow_smt: Option<bool>,
+
/// Add kernel hashes to guest firmware for measured linux kernel launch
#[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
#[serde(default, skip_serializing_if = "Option::is_none")]
#[serde(rename = "kernel-hashes")]
pub kernel_hashes: Option<bool>,
- /// Sets policy bit 0 to 1 to disallow debugging of guest
+ /// Sets policy bit to disallow debugging of guest
#[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
#[serde(default, skip_serializing_if = "Option::is_none")]
#[serde(rename = "no-debug")]
pub no_debug: Option<bool>,
- /// Sets policy bit 1 to 1 to disallow key sharing with other guests
+ /// Sets policy bit to disallow key sharing with other guests (Ignored for
+ /// SEV-SNP)
#[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
#[serde(default, skip_serializing_if = "Option::is_none")]
#[serde(rename = "no-key-sharing")]
@@ -3862,7 +3874,7 @@ pub struct PveQemuSevFmt {
#[api]
/// Enable standard SEV with type='std' or enable experimental SEV-ES with the
-/// 'es' option.
+/// 'es' option or enable experimental SEV-SNP with the 'snp' option.
#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum PveQemuSevFmtType {
#[serde(rename = "std")]
@@ -3871,6 +3883,9 @@ pub enum PveQemuSevFmtType {
#[serde(rename = "es")]
/// es.
Es,
+ #[serde(rename = "snp")]
+ /// snp.
+ Snp,
}
serde_plain::derive_display_from_serialize!(PveQemuSevFmtType);
serde_plain::derive_fromstr_from_deserialize!(PveQemuSevFmtType);
@@ -4531,9 +4546,6 @@ pub enum PveQmIdeFormat {
#[serde(rename = "raw")]
/// raw.
Raw,
- #[serde(rename = "cow")]
- /// cow.
- Cow,
#[serde(rename = "qcow")]
/// qcow.
Qcow,
@@ -4667,6 +4679,64 @@ pub struct PveQmIpconfig {
pub ip6: Option<String>,
}
+#[api(
+ default_key: "source",
+ properties: {
+ max_bytes: {
+ default: 1024,
+ optional: true,
+ type: Integer,
+ },
+ period: {
+ default: 1000,
+ optional: true,
+ type: Integer,
+ },
+ source: {
+ type: PveQmRngSource,
+ },
+ },
+)]
+/// Object.
+#[derive(Debug, serde::Deserialize, serde::Serialize)]
+pub struct PveQmRng {
+ /// Maximum bytes of entropy allowed to get injected into the guest every
+ /// 'period' milliseconds. Use `0` to disable limiting (potentially
+ /// dangerous!).
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_i64")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ pub max_bytes: Option<i64>,
+
+ /// Every 'period' milliseconds the entropy-injection quota is reset,
+ /// allowing the guest to retrieve another 'max_bytes' of entropy.
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_i64")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ pub period: Option<i64>,
+
+ pub source: PveQmRngSource,
+}
+
+#[api]
+/// The file on the host to gather entropy from. Using urandom does *not*
+/// decrease security in any meaningful way, as it's still seeded from real
+/// entropy, and the bytes provided will most likely be mixed with real entropy
+/// on the guest as well. '/dev/hwrng' can be used to pass through a hardware
+/// RNG from the host.
+#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+pub enum PveQmRngSource {
+ #[serde(rename = "/dev/urandom")]
+ /// /dev/urandom.
+ DevUrandom,
+ #[serde(rename = "/dev/random")]
+ /// /dev/random.
+ DevRandom,
+ #[serde(rename = "/dev/hwrng")]
+ /// /dev/hwrng.
+ DevHwrng,
+}
+serde_plain::derive_display_from_serialize!(PveQmRngSource);
+serde_plain::derive_fromstr_from_deserialize!(PveQmRngSource);
+
#[api(
properties: {
base64: {
@@ -5345,7 +5415,7 @@ QEMU_CONFIG_VMSTATESTORAGE_RE = r##"^(?i:[a-z][a-z0-9\-_.]*[a-z0-9])$"##;
optional: true,
},
rng0: {
- format: &ApiStringFormat::PropertyString(&QemuConfigRng0::API_SCHEMA),
+ format: &ApiStringFormat::PropertyString(&PveQmRng::API_SCHEMA),
optional: true,
type: String,
},
@@ -5454,6 +5524,9 @@ QEMU_CONFIG_VMSTATESTORAGE_RE = r##"^(?i:[a-z][a-z0-9\-_.]*[a-z0-9])$"##;
virtio: {
type: QemuConfigVirtioArray,
},
+ virtiofs: {
+ type: QemuConfigVirtiofsArray,
+ },
vmgenid: {
default: "1 (autogenerated)",
optional: true,
@@ -5842,6 +5915,11 @@ pub struct QemuConfig {
#[serde(flatten)]
pub virtio: QemuConfigVirtioArray,
+ /// Configuration for sharing a directory between host and guest using
+ /// Virtio-fs.
+ #[serde(flatten)]
+ pub virtiofs: QemuConfigVirtiofsArray,
+
/// Set VM Generation ID. Use '1' to autogenerate on create or update, pass
/// '0' to disable explicitly.
#[serde(default, skip_serializing_if = "Option::is_none")]
@@ -5994,6 +6072,16 @@ generate_array_field! {
}
virtio
}
+generate_array_field! {
+ QemuConfigVirtiofsArray [ 10 ] :
+ r#"Configuration for sharing a directory between host and guest using Virtio-fs."#,
+ String => {
+ description: "Configuration for sharing a directory between host and guest using Virtio-fs.",
+ format: &ApiStringFormat::PropertyString(&QemuConfigVirtiofs::API_SCHEMA),
+ type: String,
+ }
+ virtiofs
+}
#[api(
default_key: "enabled",
@@ -6389,6 +6477,14 @@ serde_plain::derive_fromstr_from_deserialize!(QemuConfigLock);
#[api(
default_key: "type",
properties: {
+ "enable-s3": {
+ default: false,
+ optional: true,
+ },
+ "enable-s4": {
+ default: false,
+ optional: true,
+ },
type: {
max_length: 40,
optional: true,
@@ -6403,6 +6499,20 @@ serde_plain::derive_fromstr_from_deserialize!(QemuConfigLock);
/// Object.
#[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct QemuConfigMachine {
+ /// Enables S3 power state. Defaults to false beginning with machine types
+ /// 9.2+pve1, true before.
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ #[serde(rename = "enable-s3")]
+ pub enable_s3: Option<bool>,
+
+ /// Enables S4 power state. Defaults to false beginning with machine types
+ /// 9.2+pve1, true before.
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ #[serde(rename = "enable-s4")]
+ pub enable_s4: Option<bool>,
+
/// Specifies the QEMU machine type.
#[serde(default, skip_serializing_if = "Option::is_none")]
#[serde(rename = "type")]
@@ -6735,65 +6845,6 @@ pub enum QemuConfigOstype {
serde_plain::derive_display_from_serialize!(QemuConfigOstype);
serde_plain::derive_fromstr_from_deserialize!(QemuConfigOstype);
-#[api(
- default_key: "source",
- properties: {
- max_bytes: {
- default: 1024,
- optional: true,
- type: Integer,
- },
- period: {
- default: 1000,
- optional: true,
- type: Integer,
- },
- source: {
- type: QemuConfigRng0Source,
- },
- },
-)]
-/// Object.
-#[derive(Debug, serde::Deserialize, serde::Serialize)]
-pub struct QemuConfigRng0 {
- /// Maximum bytes of entropy allowed to get injected into the guest every
- /// 'period' milliseconds. Prefer a lower value when using '/dev/random' as
- /// source. Use `0` to disable limiting (potentially dangerous!).
- #[serde(deserialize_with = "proxmox_login::parse::deserialize_i64")]
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub max_bytes: Option<i64>,
-
- /// Every 'period' milliseconds the entropy-injection quota is reset,
- /// allowing the guest to retrieve another 'max_bytes' of entropy.
- #[serde(deserialize_with = "proxmox_login::parse::deserialize_i64")]
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub period: Option<i64>,
-
- pub source: QemuConfigRng0Source,
-}
-
-#[api]
-/// The file on the host to gather entropy from. In most cases '/dev/urandom'
-/// should be preferred over '/dev/random' to avoid entropy-starvation issues on
-/// the host. Using urandom does *not* decrease security in any meaningful way,
-/// as it's still seeded from real entropy, and the bytes provided will most
-/// likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be
-/// used to pass through a hardware RNG from the host.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
-pub enum QemuConfigRng0Source {
- #[serde(rename = "/dev/urandom")]
- /// /dev/urandom.
- DevUrandom,
- #[serde(rename = "/dev/random")]
- /// /dev/random.
- DevRandom,
- #[serde(rename = "/dev/hwrng")]
- /// /dev/hwrng.
- DevHwrng,
-}
-serde_plain::derive_display_from_serialize!(QemuConfigRng0Source);
-serde_plain::derive_fromstr_from_deserialize!(QemuConfigRng0Source);
-
const_regex! {
QEMU_CONFIG_SATA_SERIAL_RE = r##"^[-%a-zA-Z0-9_.!~*'()]*$"##;
@@ -8226,6 +8277,88 @@ pub struct QemuConfigVirtio {
pub werror: Option<PveQmIdeWerror>,
}
+const_regex! {
+
+QEMU_CONFIG_VIRTIOFS_DIRID_RE = r##"^(?i:[a-z][a-z0-9_-]+)$"##;
+
+}
+
+#[api(
+ default_key: "dirid",
+ properties: {
+ cache: {
+ optional: true,
+ type: QemuConfigVirtiofsCache,
+ },
+ "direct-io": {
+ default: false,
+ optional: true,
+ },
+ dirid: {
+ format: &ApiStringFormat::Pattern(&QEMU_CONFIG_VIRTIOFS_DIRID_RE),
+ type: String,
+ },
+ "expose-acl": {
+ default: false,
+ optional: true,
+ },
+ "expose-xattr": {
+ default: false,
+ optional: true,
+ },
+ },
+)]
+/// Object.
+#[derive(Debug, serde::Deserialize, serde::Serialize)]
+pub struct QemuConfigVirtiofs {
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ pub cache: Option<QemuConfigVirtiofsCache>,
+
+ /// Honor the O_DIRECT flag passed down by guest applications.
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ #[serde(rename = "direct-io")]
+ pub direct_io: Option<bool>,
+
+ /// Mapping identifier of the directory mapping to be shared with the guest.
+ /// Also used as a mount tag inside the VM.
+ pub dirid: String,
+
+ /// Enable support for POSIX ACLs (enabled ACL implies xattr) for this
+ /// mount.
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ #[serde(rename = "expose-acl")]
+ pub expose_acl: Option<bool>,
+
+ /// Enable support for extended attributes for this mount.
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ #[serde(rename = "expose-xattr")]
+ pub expose_xattr: Option<bool>,
+}
+
+#[api]
+/// The caching policy the file system should use (auto, always, metadata,
+/// never).
+#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+pub enum QemuConfigVirtiofsCache {
+ #[serde(rename = "auto")]
+ /// auto.
+ Auto,
+ #[serde(rename = "always")]
+ /// always.
+ Always,
+ #[serde(rename = "metadata")]
+ /// metadata.
+ Metadata,
+ #[serde(rename = "never")]
+ /// never.
+ Never,
+}
+serde_plain::derive_display_from_serialize!(QemuConfigVirtiofsCache);
+serde_plain::derive_fromstr_from_deserialize!(QemuConfigVirtiofsCache);
+
#[api(
properties: {
allowed_nodes: {
@@ -8249,6 +8382,11 @@ pub struct QemuConfigVirtio {
},
type: Array,
},
+ "mapped-resource-info": {
+ description: "Object of mapped resources with additional information such if they're live migratable.",
+ properties: {},
+ type: Object,
+ },
"mapped-resources": {
items: {
description: "A mapped resource",
@@ -8268,22 +8406,27 @@ pub struct QemuConfigVirtio {
/// Object.
#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QemuMigratePreconditions {
- /// List nodes allowed for offline migration, only passed if VM is offline
+ /// List of nodes allowed for migration.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_nodes: Option<Vec<String>>,
/// List local disks including CD-Rom, unused and not referenced disks
pub local_disks: Vec<QemuMigratePreconditionsLocalDisks>,
- /// List local resources e.g. pci, usb
+ /// List local resources (e.g. pci, usb) that block migration.
pub local_resources: Vec<String>,
- /// List of mapped resources e.g. pci, usb
+ /// Object of mapped resources with additional information such if they're
+ /// live migratable.
+ #[serde(rename = "mapped-resource-info")]
+ pub mapped_resource_info: serde_json::Value,
+
+ /// List of mapped resources e.g. pci, usb. Deprecated, use
+ /// 'mapped-resource-info' instead.
#[serde(rename = "mapped-resources")]
pub mapped_resources: Vec<String>,
- /// List not allowed nodes with additional information, only passed if VM is
- /// offline
+ /// List of not allowed nodes with additional information.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub not_allowed_nodes: Option<QemuMigratePreconditionsNotAllowedNodes>,
@@ -8339,8 +8482,7 @@ pub struct QemuMigratePreconditionsLocalDisks {
},
},
)]
-/// List not allowed nodes with additional information, only passed if VM is
-/// offline
+/// List of not allowed nodes with additional information.
#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QemuMigratePreconditionsNotAllowedNodes {
/// A list of not available storages.
@@ -8415,6 +8557,10 @@ pub struct QemuMigratePreconditionsNotAllowedNodes {
optional: true,
type: String,
},
+ serial: {
+ default: false,
+ optional: true,
+ },
spice: {
default: false,
optional: true,
@@ -8533,6 +8679,11 @@ pub struct QemuStatus {
#[serde(rename = "running-qemu")]
pub running_qemu: Option<String>,
+ /// Guest has serial device configured.
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ pub serial: Option<bool>,
+
/// QEMU VGA configuration supports spice.
#[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
#[serde(default, skip_serializing_if = "Option::is_none")]
@@ -9459,6 +9610,10 @@ serde_plain::derive_fromstr_from_deserialize!(VersionResponseConsole);
optional: true,
type: String,
},
+ serial: {
+ default: false,
+ optional: true,
+ },
status: {
type: IsRunning,
},
@@ -9562,6 +9717,11 @@ pub struct VmEntry {
#[serde(rename = "running-qemu")]
pub running_qemu: Option<String>,
+ /// Guest has serial device configured.
+ #[serde(deserialize_with = "proxmox_login::parse::deserialize_bool")]
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ pub serial: Option<bool>,
+
pub status: IsRunning,
/// The current configured tags, if any
--
2.39.5
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pdm-devel] [PATCH proxmox-api-types 2/2] generator: derive default for enums that provide a default
2025-04-18 9:32 [pdm-devel] [PATCH proxmox-api-types 1/2] regenerate and adapt to rng changes Dominik Csapak
@ 2025-04-18 9:32 ` Dominik Csapak
2025-04-22 19:49 ` [pdm-devel] applied: " Thomas Lamprecht
1 sibling, 0 replies; 4+ messages in thread
From: Dominik Csapak @ 2025-04-18 9:32 UTC (permalink / raw)
To: pdm-devel
and mark the correct variant as such.
This will be useful if we want to derive `Default` for structs than
contain enums.
while at it, regenerate the bindings.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
pve-api-types/generator-lib/Schema2Rust.pm | 2 +
pve-api-types/src/generated/types.rs | 45 ++++++++++++++--------
2 files changed, 32 insertions(+), 15 deletions(-)
diff --git a/pve-api-types/generator-lib/Schema2Rust.pm b/pve-api-types/generator-lib/Schema2Rust.pm
index b974454..5235c55 100644
--- a/pve-api-types/generator-lib/Schema2Rust.pm
+++ b/pve-api-types/generator-lib/Schema2Rust.pm
@@ -278,6 +278,7 @@ sub print_types : prototype($) {
for my $variant ($def->{variants}->@*) {
my ($orig, $named) = @$variant;
print {$out} " #[serde(rename = \"$orig\")]\n" if $named ne $orig;
+ print {$out} " #[default]\n" if $def->{default} && $def->{default} eq $named;
print {$out} " /// $orig.\n";
print {$out} " $named,\n";
};
@@ -982,6 +983,7 @@ sub generate_enum : prototype($$;$) {
if (defined($default)) {
if (defined($rust_default)) {
$def->{default} = $rust_default;
+ $def->{derive} = derive_default(qw(Clone Copy Default Eq PartialEq));
} else {
warn "non-existent default enum value '$default'\n" if !defined($rust_default);
}
diff --git a/pve-api-types/src/generated/types.rs b/pve-api-types/src/generated/types.rs
index c64da8b..63be171 100644
--- a/pve-api-types/src/generated/types.rs
+++ b/pve-api-types/src/generated/types.rs
@@ -1319,9 +1319,10 @@ pub struct ListTasksResponse {
#[api]
/// List archived, active or all tasks.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum ListTasksSource {
#[serde(rename = "archive")]
+ #[default]
/// archive.
Archive,
#[serde(rename = "active")]
@@ -1704,9 +1705,10 @@ generate_array_field! {
#[api]
/// OS architecture type.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum LxcConfigArch {
#[serde(rename = "amd64")]
+ #[default]
/// amd64.
Amd64,
#[serde(rename = "i386")]
@@ -1733,7 +1735,7 @@ serde_plain::derive_fromstr_from_deserialize!(LxcConfigArch);
/// one of the available tty devices. By setting cmode to 'console' it tries to
/// attach to /dev/console instead. If you set cmode to 'shell', it simply
/// invokes a shell inside the container (no login).
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum LxcConfigCmode {
#[serde(rename = "shell")]
/// shell.
@@ -1742,6 +1744,7 @@ pub enum LxcConfigCmode {
/// console.
Console,
#[serde(rename = "tty")]
+ #[default]
/// tty.
Tty,
}
@@ -4567,12 +4570,13 @@ serde_plain::derive_fromstr_from_deserialize!(PveQmIdeFormat);
#[api]
/// The drive's media type.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum PveQmIdeMedia {
#[serde(rename = "cdrom")]
/// cdrom.
Cdrom,
#[serde(rename = "disk")]
+ #[default]
/// disk.
Disk,
}
@@ -4862,9 +4866,10 @@ serde_plain::derive_fromstr_from_deserialize!(PveQmWatchdogAction);
#[api]
/// Watchdog type to emulate.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum PveQmWatchdogModel {
#[serde(rename = "i6300esb")]
+ #[default]
/// i6300esb.
I6300esb,
#[serde(rename = "ib700")]
@@ -4949,7 +4954,7 @@ pub struct PveVmCpuConf {
/// CPU model and vendor to report to the guest. Must be a QEMU/KVM supported
/// model. Only valid for custom CPU model definitions, default models will
/// always report themselves to the guest OS.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum PveVmCpuConfReportedModel {
#[serde(rename = "486")]
/// 486.
@@ -5080,6 +5085,7 @@ pub enum PveVmCpuConfReportedModel {
/// kvm32.
Kvm32,
#[serde(rename = "kvm64")]
+ #[default]
/// kvm64.
Kvm64,
#[serde(rename = "max")]
@@ -6129,9 +6135,10 @@ pub struct QemuConfigAgent {
#[api]
/// Select the agent type
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum QemuConfigAgentType {
#[serde(rename = "virtio")]
+ #[default]
/// virtio.
Virtio,
#[serde(rename = "isa")]
@@ -6194,9 +6201,10 @@ serde_plain::derive_fromstr_from_deserialize!(QemuConfigAudio0Device);
#[api]
/// Driver backend for the audio device.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum QemuConfigAudio0Driver {
#[serde(rename = "spice")]
+ #[default]
/// spice.
Spice,
#[serde(rename = "none")]
@@ -6208,9 +6216,10 @@ serde_plain::derive_fromstr_from_deserialize!(QemuConfigAudio0Driver);
#[api]
/// Select BIOS implementation.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum QemuConfigBios {
#[serde(rename = "seabios")]
+ #[default]
/// seabios.
Seabios,
#[serde(rename = "ovmf")]
@@ -6301,9 +6310,10 @@ pub struct QemuConfigEfidisk0 {
/// Size and type of the OVMF EFI vars. '4m' is newer and recommended, and
/// required for Secure Boot. For backwards compatibility, '2m' is used if not
/// otherwise specified. Ignored for VMs with arch=aarch64 (ARM).
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum QemuConfigEfidisk0Efitype {
#[serde(rename = "2m")]
+ #[default]
/// 2m.
Mb2,
#[serde(rename = "4m")]
@@ -7625,9 +7635,10 @@ pub struct QemuConfigScsi {
#[api]
/// SCSI controller model
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum QemuConfigScsihw {
#[serde(rename = "lsi")]
+ #[default]
/// lsi.
Lsi,
#[serde(rename = "lsi53c810")]
@@ -7676,9 +7687,10 @@ pub struct QemuConfigSpiceEnhancements {
#[api]
/// Enable video streaming. Uses compression for detected video streams.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum QemuConfigSpiceEnhancementsVideostreaming {
#[serde(rename = "off")]
+ #[default]
/// off.
Off,
#[serde(rename = "all")]
@@ -7732,9 +7744,10 @@ pub struct QemuConfigTpmstate0 {
#[api]
/// The TPM interface version. v2.0 is newer and should be preferred. Note that
/// this cannot be changed later on.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum QemuConfigTpmstate0Version {
#[serde(rename = "v1.2")]
+ #[default]
/// v1.2.
V1_2,
#[serde(rename = "v2.0")]
@@ -7869,7 +7882,7 @@ serde_plain::derive_fromstr_from_deserialize!(QemuConfigVgaClipboard);
#[api]
/// Select the VGA type. Using type 'cirrus' is not recommended.
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum QemuConfigVgaType {
#[serde(rename = "cirrus")]
/// cirrus.
@@ -7902,6 +7915,7 @@ pub enum QemuConfigVgaType {
/// serial3.
Serial3,
#[serde(rename = "std")]
+ #[default]
/// std.
Std,
#[serde(rename = "virtio")]
@@ -8341,9 +8355,10 @@ pub struct QemuConfigVirtiofs {
#[api]
/// The caching policy the file system should use (auto, always, metadata,
/// never).
-#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
+#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum QemuConfigVirtiofsCache {
#[serde(rename = "auto")]
+ #[default]
/// auto.
Auto,
#[serde(rename = "always")]
--
2.39.5
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pve-devel] applied: [pdm-devel] [PATCH proxmox-api-types 1/2] regenerate and adapt to rng changes
2025-04-18 9:32 [pdm-devel] [PATCH proxmox-api-types 1/2] regenerate and adapt to rng changes Dominik Csapak
@ 2025-04-22 19:49 ` Thomas Lamprecht
2025-04-22 19:49 ` [pdm-devel] applied: " Thomas Lamprecht
1 sibling, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2025-04-22 19:49 UTC (permalink / raw)
To: pve-devel, pdm-devel, Dominik Csapak
On Fri, 18 Apr 2025 11:32:53 +0200, Dominik Csapak wrote:
> the recent changes for rng in qemu-server:
> 18fc321e (refactor: move rng related code into its own module)
>
> converted the rng0 format to a proper registered format, which changes
> its name, so we have to adapt the renaming of the enum variants.
>
>
> [...]
Applied, thanks!
[1/2] regenerate and adapt to rng changes
commit: f5f4aeff22023f850832a2618869c1524036ea9b
[2/2] generator: derive default for enums that provide a default
commit: 15cfa2e65fa10da406c4f845524548b670fa03d4
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pdm-devel] applied: [PATCH proxmox-api-types 1/2] regenerate and adapt to rng changes
@ 2025-04-22 19:49 ` Thomas Lamprecht
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2025-04-22 19:49 UTC (permalink / raw)
To: pve-devel, pdm-devel, Dominik Csapak
On Fri, 18 Apr 2025 11:32:53 +0200, Dominik Csapak wrote:
> the recent changes for rng in qemu-server:
> 18fc321e (refactor: move rng related code into its own module)
>
> converted the rng0 format to a proper registered format, which changes
> its name, so we have to adapt the renaming of the enum variants.
>
>
> [...]
Applied, thanks!
[1/2] regenerate and adapt to rng changes
commit: f5f4aeff22023f850832a2618869c1524036ea9b
[2/2] generator: derive default for enums that provide a default
commit: 15cfa2e65fa10da406c4f845524548b670fa03d4
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-04-22 19:50 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-18 9:32 [pdm-devel] [PATCH proxmox-api-types 1/2] regenerate and adapt to rng changes Dominik Csapak
2025-04-18 9:32 ` [pdm-devel] [PATCH proxmox-api-types 2/2] generator: derive default for enums that provide a default Dominik Csapak
2025-04-22 19:49 ` [pve-devel] applied: [pdm-devel] [PATCH proxmox-api-types 1/2] regenerate and adapt to rng changes Thomas Lamprecht
2025-04-22 19:49 ` [pdm-devel] applied: " Thomas Lamprecht
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