]> git.proxmox.com Git - qemu-server.git/commitdiff
Refactor defaut bootdisk and smbios1 uuid generation in own subs
authorEmmanuel Kasper <e.kasper@proxmox.com>
Wed, 13 Sep 2017 14:10:25 +0000 (16:10 +0200)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Mon, 25 Sep 2017 11:31:55 +0000 (13:31 +0200)
This will allow code reuse for qm importovf

PVE/API2/Qemu.pm
PVE/QemuServer.pm

index 2c32648697fb5953d3ad46c85adb6a4bbbfdd5d7..c3f10040036c303413b45eb18b9477b6b2c5b6a7 100644 (file)
@@ -542,26 +542,14 @@ __PACKAGE__->register_method({
 
                    $vollist = &$create_disks($rpcenv, $authuser, $conf, $storecfg, $vmid, $pool, $param, $storage);
 
-                   # try to be smart about bootdisk
-                   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;
-                   }
-
-                   if (!$conf->{bootdisk} && $firstdisk) {
-                       $conf->{bootdisk} = $firstdisk;
+                   if (!$conf->{bootdisk}) {
+                       my $firstdisk = PVE::QemuServer::resolve_first_disk($conf);
+                       $conf->{bootdisk} = $firstdisk if $firstdisk;
                    }
 
                    # auto generate uuid if user did not specify smbios1 option
                    if (!$conf->{smbios1}) {
-                       my ($uuid, $uuid_str);
-                       UUID::generate($uuid);
-                       UUID::unparse($uuid, $uuid_str);
-                       $conf->{smbios1} = "uuid=$uuid_str";
+                       $conf->{smbios1} = PVE::QemuServer::generate_smbios1_uuid();
                    }
 
                    PVE::QemuConfig->write_config($vmid, $conf);
index 0f4af1d8dc7ff978f46f6f7554c1ebe4ad99ceb0..2b6fda9ea7ab0a46d84c4ca2a2653e82f09b9f42 100644 (file)
@@ -6428,6 +6428,26 @@ sub resolve_dst_disk_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
 
 sub complete_backup_archives {