[pve-devel] [PATCH] Add copy_disk and change_disk command

Dietmar Maurer dietmar at proxmox.com
Fri May 22 13:18:24 CEST 2015


Well, I don't understand those changes - see comments inline:

> diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
> index fae2872..8fbbe6d 100644
> --- a/PVE/API2/Qemu.pm
> +++ b/PVE/API2/Qemu.pm
> @@ -20,7 +20,6 @@ use PVE::AccessControl;
>   use PVE::INotify;
>   use PVE::Network;
>   use PVE::API2::Firewall::VM;
> -use PVE::HA::Config;

why?

>    use Data::Dumper; # fixme: remove
>   @@ -688,7 +687,7 @@ __PACKAGE__->register_method({
>   	delete $conf->{snapshots};
>    	if (!$param->{current}) {
> -	    foreach my $opt (keys %{$conf->{pending}}) {
> +	    foreach my $opt (keys $conf->{pending}) {

looks wrong to me.

>   		next if $opt eq 'delete';
>   		my $value = $conf->{pending}->{$opt};
>   		next if ref($value); # just to be sure
> @@ -759,7 +758,7 @@ __PACKAGE__->register_method({
>    	my $res = [];
>   -	foreach my $opt (keys %$conf) {
> +	foreach my $opt (keys $conf) {

why?

>   	    next if ref($conf->{$opt});
>   	    my $item = { key => $opt };
>   	    $item->{value} = $conf->{$opt} if defined($conf->{$opt});
> @@ -768,7 +767,7 @@ __PACKAGE__->register_method({
>   	    push @$res, $item;
>   	}
>   -	foreach my $opt (keys %{$conf->{pending}}) {
> +	foreach my $opt (keys $conf->{pending}) {

why?

>   	    next if $opt eq 'delete';
>   	    next if ref($conf->{pending}->{$opt}); # just to be sure
>   	    next if defined($conf->{$opt});
> @@ -1299,19 +1298,17 @@ __PACKAGE__->register_method({
>   	$sslcert = PVE::Tools::file_get_contents("/etc/pve/pve-root-ca.pem", 
> 8192)
>   	    if !$sslcert;
>   -	my ($remip, $family);
> +	my $port = PVE::Tools::next_vnc_port();
> +
> +	my $remip;
>   	my $remcmd = [];
>    	if ($node ne 'localhost' && $node ne PVE::INotify::nodename()) {
> -	    ($remip, $family) = PVE::Cluster::remote_node_ip($node);
> +	    $remip = PVE::Cluster::remote_node_ip($node);

what is that?

>   	    # NOTE: kvm VNC traffic is already TLS encrypted or is known unsecure
>   	    $remcmd = ['/usr/bin/ssh', '-T', '-o', 'BatchMode=yes', $remip];
> -	} else {
> -	    $family = PVE::Tools::get_host_address_family($node);
>   	}
>   -	my $port = PVE::Tools::next_vnc_port($family);
> -
>   	my $timeout = 10;
>    	my $realcmd = sub {
> @@ -1339,7 +1336,7 @@ __PACKAGE__->register_method({
>   		my $qmstr = join(' ', @$qmcmd);
>    		# also redirect stderr (else we get RFB protocol errors)
> -		$cmd = ['/bin/nc6', '-l', '-p', $port, '-w', $timeout, '-e', "$qmstr 
> 2>/dev/null"];
> +		$cmd = ['/bin/nc', '-l', '-p', $port, '-w', $timeout, '-c', "$qmstr 
> 2>/dev/null"];
>   	    }
>    	    PVE::Tools::run_command($cmd);
> @@ -1503,6 +1500,16 @@ __PACKAGE__->register_method({
>   	return $res;
>       }});
>   +my $vm_is_ha_managed = sub {
> +    my ($vmid) = @_;
> +
> +    my $cc = PVE::Cluster::cfs_read_file('cluster.conf');
> +    if (PVE::Cluster::cluster_conf_lookup_pvevm($cc, 0, $vmid, 1)) {
> +	return 1;
> +    }
> +    return 0;
> +};
> +

?
...




More information about the pve-devel mailing list