[pve-devel] [PATCH 4/7] pve-bridge : find node where conf file is located.

Alexandre DERUMIER aderumier at odiso.com
Thu Aug 23 11:07:27 CEST 2012


Oh, thanks, I was unhappy with that too.

I'll retest the whole stack today.

----- Mail original ----- 

De: "Dietmar Maurer" <dietmar at proxmox.com> 
À: "Alexandre Derumier" <aderumier at odiso.com>, pve-devel at pve.proxmox.com 
Envoyé: Jeudi 23 Août 2012 11:02:58 
Objet: RE: [pve-devel] [PATCH 4/7] pve-bridge : find node where conf file is located. 

I did that a bit different - I simply pass the node inside an environment variable. 
Hope that change will work also. 

> -----Original Message----- 
> From: pve-devel-bounces at pve.proxmox.com [mailto:pve-devel- 
> bounces at pve.proxmox.com] On Behalf Of Alexandre Derumier 
> Sent: Dienstag, 21. August 2012 12:22 
> To: pve-devel at pve.proxmox.com 
> Subject: [pve-devel] [PATCH 4/7] pve-bridge : find node where conf file is 
> located. 
> 
> tap interface name is too short to pass nodename, so we need to search it 
> 
> Signed-off-by: Alexandre Derumier <aderumier at odiso.com> 
> --- 
> PVE/QemuServer.pm | 21 +++++++++++++++++++-- 
> pve-bridge | 2 +- 
> 2 files changed, 20 insertions(+), 3 deletions(-) 
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 
> c4631bf..7709883 100644 
> --- a/PVE/QemuServer.pm 
> +++ b/PVE/QemuServer.pm 
> @@ -21,7 +21,7 @@ use PVE::SafeSyslog; 
> use Storable qw(dclone); 
> use PVE::Exception qw(raise raise_param_exc); use PVE::Storage; -use 
> PVE::Tools qw(run_command lock_file file_read_firstline); 
> +use PVE::Tools qw(run_command lock_file file_read_firstline 
> +dir_glob_foreach); 
> use PVE::Cluster qw(cfs_register_file cfs_read_file cfs_write_file 
> cfs_lock_file); use PVE::INotify; use PVE::ProcFSTools; @@ -1499,17 
> +1499,34 @@ sub destroy_vm { } 
> 
> sub load_config { 
> - my ($vmid, $node) = @_; 
> + my ($vmid, $node, $findnode) = @_; 
> 
> my $cfspath = cfs_config_path($vmid, $node); 
> 
> my $conf = PVE::Cluster::cfs_read_file($cfspath); 
> + if(!defined($conf) && $findnode){ 
> + $node = find_node_config($vmid); 
> + $cfspath = cfs_config_path($vmid, $node); 
> + $conf = PVE::Cluster::cfs_read_file($cfspath); 
> + } 
> 
> die "no such VM ('$vmid')\n" if !defined($conf); 
> 
> return $conf; 
> } 
> 
> +sub find_node_config { 
> + my($vmid) = @_; 
> + 
> + my $findnode = undef; 
> + dir_glob_foreach("/etc/pve/nodes/", '(\S+)', sub { 
> + my ($node) = @_; 
> + $findnode = $node if (-f "/etc/pve/nodes/$node/qemu- 
> server/$vmid.conf"); 
> + }); 
> + 
> + return $findnode; 
> +} 
> + 
> sub parse_vm_config { 
> my ($filename, $raw) = @_; 
> 
> diff --git a/pve-bridge b/pve-bridge 
> index fdee920..56c960f 100755 
> --- a/pve-bridge 
> +++ b/pve-bridge 
> @@ -15,7 +15,7 @@ die "got strange interface name '$iface'\n" 
> my $vmid = $1; 
> my $netid = "net$2"; 
> 
> -my $conf = PVE::QemuServer::load_config ($vmid); 
> +my $conf = PVE::QemuServer::load_config ($vmid, undef, 1); 
> 
> die "unable to get network config '$netid'\n" 
> if !$conf->{$netid}; 
> -- 
> 1.7.2.5 
> 
> _______________________________________________ 
> pve-devel mailing list 
> pve-devel at pve.proxmox.com 
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 





-- 

-- 



	

Alexandre D e rumier 

Ingénieur Systèmes et Réseaux 


Fixe : 03 20 68 88 85 

Fax : 03 20 68 90 88 


45 Bvd du Général Leclerc 59100 Roubaix 
12 rue Marivaux 75002 Paris 



More information about the pve-devel mailing list