mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-08-13 19:26:11 +00:00
Refactor defaut bootdisk and smbios1 uuid generation in own subs
This will allow code reuse for qm importovf
This commit is contained in:
parent
5fd0910be3
commit
ae2fcb3be6
@ -542,26 +542,14 @@ __PACKAGE__->register_method({
|
|||||||
|
|
||||||
$vollist = &$create_disks($rpcenv, $authuser, $conf, $storecfg, $vmid, $pool, $param, $storage);
|
$vollist = &$create_disks($rpcenv, $authuser, $conf, $storecfg, $vmid, $pool, $param, $storage);
|
||||||
|
|
||||||
# try to be smart about bootdisk
|
if (!$conf->{bootdisk}) {
|
||||||
my @disks = PVE::QemuServer::valid_drive_names();
|
my $firstdisk = PVE::QemuServer::resolve_first_disk($conf);
|
||||||
my $firstdisk;
|
$conf->{bootdisk} = $firstdisk if $firstdisk;
|
||||||
foreach my $ds (reverse @disks) {
|
|
||||||
next if !$conf->{$ds};
|
|
||||||
my $disk = PVE::QemuServer::parse_drive($ds, $conf->{$ds});
|
|
||||||
next if PVE::QemuServer::drive_is_cdrom($disk);
|
|
||||||
$firstdisk = $ds;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$conf->{bootdisk} && $firstdisk) {
|
|
||||||
$conf->{bootdisk} = $firstdisk;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# auto generate uuid if user did not specify smbios1 option
|
# auto generate uuid if user did not specify smbios1 option
|
||||||
if (!$conf->{smbios1}) {
|
if (!$conf->{smbios1}) {
|
||||||
my ($uuid, $uuid_str);
|
$conf->{smbios1} = PVE::QemuServer::generate_smbios1_uuid();
|
||||||
UUID::generate($uuid);
|
|
||||||
UUID::unparse($uuid, $uuid_str);
|
|
||||||
$conf->{smbios1} = "uuid=$uuid_str";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE::QemuConfig->write_config($vmid, $conf);
|
PVE::QemuConfig->write_config($vmid, $conf);
|
||||||
|
@ -6428,6 +6428,26 @@ sub resolve_dst_disk_format {
|
|||||||
return $format;
|
return $format;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub resolve_first_disk {
|
||||||
|
my $conf = shift;
|
||||||
|
my @disks = PVE::QemuServer::valid_drive_names();
|
||||||
|
my $firstdisk;
|
||||||
|
foreach my $ds (reverse @disks) {
|
||||||
|
next if !$conf->{$ds};
|
||||||
|
my $disk = PVE::QemuServer::parse_drive($ds, $conf->{$ds});
|
||||||
|
next if PVE::QemuServer::drive_is_cdrom($disk);
|
||||||
|
$firstdisk = $ds;
|
||||||
|
}
|
||||||
|
return $firstdisk;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub generate_smbios1_uuid {
|
||||||
|
my ($uuid, $uuid_str);
|
||||||
|
UUID::generate($uuid);
|
||||||
|
UUID::unparse($uuid, $uuid_str);
|
||||||
|
return "uuid=$uuid_str";
|
||||||
|
}
|
||||||
|
|
||||||
# bash completion helper
|
# bash completion helper
|
||||||
|
|
||||||
sub complete_backup_archives {
|
sub complete_backup_archives {
|
||||||
|
Loading…
Reference in New Issue
Block a user