add new option : spice: 1

this enable spice (currently without tls on socket), and force vga=qxl

Signed-off-by: Alexandre Derumier <aderum...@odiso.com>
---
 PVE/QemuServer.pm |   34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index d2b942f..25f163d 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -332,6 +332,12 @@ EODESC
        type => 'boolean',
        description => "Freeze CPU at startup (use 'c' monitor command to start 
execution).",
     },
+    spice => {
+       optional => 1,
+       type => 'boolean',
+       description => "Enable/disable Spice Console.",
+       default => 1,
+    },
     vga => {
        optional => 1,
        type => 'string',
@@ -2349,6 +2355,8 @@ sub config_to_command {
        }
     }
 
+    $vga = 'qxl' if $conf->{spice};
+
     push @$cmd, '-vga', $vga if $vga; # for kvm 77 and later
 
     # time drift fix
@@ -2414,6 +2422,26 @@ sub config_to_command {
        push @$devices, '-device', 
'virtserialport,chardev=qga0,name=org.qemu.guest_agent.0';
     }
 
+    if($conf->{spice}){
+           my $pciaddr = print_pci_addr("spice", $bridges);
+
+           #tls support
+
+            my $x509 = "x509-key-file=/etc/pve/local/pve-ssl.key";
+            $x509 .= ",x509-cert-file=/etc/pve/local/pve-ssl.pem";
+            $x509 .= ",x509-cacert-file=/etc/pve/pve-root-ca.pem";
+
+           #push @$cmd, 
'-spice',"port=60100,tls-port=60101,disable-ticketing,$x509,tls-ciphers=DES-CBC3-SHA";
+           #push @$cmd, '-spice',"unix=$socket,$x509,tls-ciphers=DES-CBC3-SHA";
+
+           my $socket = spice_socket($vmid);
+
+            push @$cmd, '-spice',"disable-ticketing,unix=$socket";
+            push @$cmd, '-device',"virtio-serial,id=spice$pciaddr";
+            push @$cmd, '-chardev',"spicevmc,id=vdagent,name=vdagent";
+            push @$cmd, 
'-device',"virtserialport,chardev=vdagent,name=com.redhat.spice.0";
+    }
+
     # enable balloon by default, unless explicitly disabled
     if (!defined($conf->{balloon}) || $conf->{balloon}) {
        $pciaddr = print_pci_addr("balloon0", $bridges);
@@ -2537,6 +2565,11 @@ sub vnc_socket {
     return "${var_run_tmpdir}/$vmid.vnc";
 }
 
+sub spice_socket {
+    my ($vmid) = @_;
+    return "${var_run_tmpdir}/$vmid.spice";
+}
+
 sub qmp_socket {
     my ($vmid) = @_;
     return "${var_run_tmpdir}/$vmid.qmp";
@@ -3405,6 +3438,7 @@ sub print_pci_addr {
        scsihw1 => { bus => 0, addr => 6 },
        ahci0 => { bus => 0, addr => 7 },
        qga0 => { bus => 0, addr => 8 },
+       spice => { bus => 0, addr => 9 },
        virtio0 => { bus => 0, addr => 10 },
        virtio1 => { bus => 0, addr => 11 },
        virtio2 => { bus => 0, addr => 12 },
-- 
1.7.10.4

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

Reply via email to