]> git.proxmox.com Git - qemu-server.git/blobdiff - qm
drive-mirror : wait that busy eq false before block-job-complete
[qemu-server.git] / qm
diff --git a/qm b/qm
index 8a1b29e5096b2488f6895dabc26366316a5d796e..cea223e29994a5325214d238c69b49ee6dc2ecdb 100755 (executable)
--- a/qm
+++ b/qm
@@ -1,6 +1,7 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
 
 use strict;
+use warnings;
 use Getopt::Long;
 use Fcntl ':flock';
 use File::Path;
@@ -44,9 +45,7 @@ my $upid_exit = sub {
 my $nodename = PVE::INotify::nodename();
 
 sub run_vnc_proxy {
-    my ($vmid) = @_;
-
-    my $path = PVE::QemuServer::vnc_socket($vmid);
+    my ($path) = @_;
 
     my $c;
     while ( ++$c < 10 && !-e $path ) { sleep(1); }
@@ -164,8 +163,17 @@ __PACKAGE__->register_method ({
        my ($param) = @_;
 
        my $vmid = $param->{vmid};
+       my $vnc_socket = PVE::QemuServer::vnc_socket($vmid);
+
+       if (my $ticket = $ENV{LC_PVE_TICKET}) {  # NOTE: ssh on debian only pass LC_* variables
+           PVE::QemuServer::vm_mon_cmd($vmid, "change", device => 'vnc', target => "unix:$vnc_socket,password");
+           PVE::QemuServer::vm_mon_cmd($vmid, "set_password", protocol => 'vnc', password => $ticket);
+           PVE::QemuServer::vm_mon_cmd($vmid, "expire_password", protocol => 'vnc', time => "+30");
+       } else {
+           PVE::QemuServer::vm_mon_cmd($vmid, "change", device => 'vnc', target => "unix:$vnc_socket,x509,password");
+       }
 
-       run_vnc_proxy ($vmid);
+       run_vnc_proxy($vnc_socket);
 
        return undef;
     }});
@@ -336,6 +344,7 @@ __PACKAGE__->register_method ({
        properties => {
            vmid => get_standard_option('pve-vmid'),
            iface => {
+               description => "Select the serial device. By default we simply use the first suitable device.",
                type => 'string',
                optional => 1,
                enum => [qw(serial0 serial1 serial2 serial3)], 
@@ -413,7 +422,7 @@ my $cmddef = {
 
     move_disk => [ "PVE::API2::Qemu", 'move_vm_disk', ['vmid', 'disk', 'storage'], { node => $nodename }, $upid_exit ],
 
-    unlink => [ "PVE::API2::Qemu", 'unlink', ['vmid', 'idlist'], { node => $nodename } ],
+    unlink => [ "PVE::API2::Qemu", 'unlink', ['vmid'], { node => $nodename } ],
 
     config => [ "PVE::API2::Qemu", 'vm_config', ['vmid'], 
                { node => $nodename }, sub {