mirror of
git://git.proxmox.com/git/qemu-server.git
synced 2025-01-22 22:03:55 +03:00
use STDIN to pass spice ticket
This commit is contained in:
parent
86b8228b59
commit
7c14dcae1f
@ -1534,6 +1534,14 @@ __PACKAGE__->register_method({
|
|||||||
raise_param_exc({ migratedfrom => "Only root may use this option." })
|
raise_param_exc({ migratedfrom => "Only root may use this option." })
|
||||||
if $migratedfrom && $authuser ne 'root@pam';
|
if $migratedfrom && $authuser ne 'root@pam';
|
||||||
|
|
||||||
|
# read spice ticket from STDIN
|
||||||
|
my $spice_ticket;
|
||||||
|
if ($stateuri && ($stateuri eq 'tcp') && $migratedfrom && ($rpcenv->{type} eq 'cli')) {
|
||||||
|
my $line = <>;
|
||||||
|
chomp $line;
|
||||||
|
$spice_ticket = $line if $line;
|
||||||
|
}
|
||||||
|
|
||||||
my $storecfg = PVE::Storage::config();
|
my $storecfg = PVE::Storage::config();
|
||||||
|
|
||||||
if (&$vm_is_ha_managed($vmid) && !$stateuri &&
|
if (&$vm_is_ha_managed($vmid) && !$stateuri &&
|
||||||
@ -1562,7 +1570,8 @@ __PACKAGE__->register_method({
|
|||||||
|
|
||||||
syslog('info', "start VM $vmid: $upid\n");
|
syslog('info', "start VM $vmid: $upid\n");
|
||||||
|
|
||||||
PVE::QemuServer::vm_start($storecfg, $vmid, $stateuri, $skiplock, $migratedfrom, undef, $machine);
|
PVE::QemuServer::vm_start($storecfg, $vmid, $stateuri, $skiplock, $migratedfrom, undef,
|
||||||
|
$machine, $spice_ticket);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
@ -314,21 +314,23 @@ sub phase2 {
|
|||||||
## start on remote node
|
## start on remote node
|
||||||
my $cmd = [@{$self->{rem_ssh}}];
|
my $cmd = [@{$self->{rem_ssh}}];
|
||||||
|
|
||||||
|
my $spice_ticket;
|
||||||
if (PVE::QemuServer::vga_conf_has_spice($conf->{vga})) {
|
if (PVE::QemuServer::vga_conf_has_spice($conf->{vga})) {
|
||||||
my $res = PVE::QemuServer::vm_mon_cmd($vmid, 'query-spice');
|
my $res = PVE::QemuServer::vm_mon_cmd($vmid, 'query-spice');
|
||||||
push @$cmd, 'SPICETICKET='.$res->{ticket} if $res->{ticket};
|
$spice_ticket = $res->{ticket};
|
||||||
}
|
}
|
||||||
|
|
||||||
push @$cmd , 'qm', 'start', $vmid, '--stateuri', 'tcp', '--skiplock', '--migratedfrom', $nodename;
|
push @$cmd , 'qm', 'start', $vmid, '--stateuri', 'tcp', '--skiplock', '--migratedfrom', $nodename;
|
||||||
|
|
||||||
|
|
||||||
if ($self->{forcemachine}) {
|
if ($self->{forcemachine}) {
|
||||||
push @$cmd, '--machine', $self->{forcemachine};
|
push @$cmd, '--machine', $self->{forcemachine};
|
||||||
}
|
}
|
||||||
|
|
||||||
my $spice_port;
|
my $spice_port;
|
||||||
|
|
||||||
PVE::Tools::run_command($cmd, outfunc => sub {
|
# Note: We try to keep $spice_ticket secret (do not pass via command line parameter)
|
||||||
|
# instead we pipe it through STDIN
|
||||||
|
PVE::Tools::run_command($cmd, input => $spice_ticket, outfunc => sub {
|
||||||
my $line = shift;
|
my $line = shift;
|
||||||
|
|
||||||
if ($line =~ m/^migration listens on port (\d+)$/) {
|
if ($line =~ m/^migration listens on port (\d+)$/) {
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
qemu-server (3.0-26) unstable; urgency=low
|
qemu-server (3.0-26) unstable; urgency=low
|
||||||
|
|
||||||
* remove spice cert paths (depend on pve-qemu-kvm >= 1.4-16)
|
* remove spice cert paths (depend on pve-qemu-kvm >= 1.4-16)
|
||||||
|
|
||||||
|
* implement spice seamless migration
|
||||||
|
|
||||||
-- Proxmox Support Team <support@proxmox.com> Tue, 23 Jul 2013 10:08:33 +0200
|
-- Proxmox Support Team <support@proxmox.com> Tue, 23 Jul 2013 10:08:33 +0200
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user