pf-tools commit: r723 [ccaillet-guest] - in /trunk: debian/changelog filters/filter_privateresolve lib/PFTools/Net.pm lib/PFTools/Packages.pm lib/PFTools/Update.pm
parmelan-guest at users.alioth.debian.org
parmelan-guest at users.alioth.debian.org
Wed Nov 25 16:15:55 UTC 2009
Author: ccaillet-guest
Date: Wed Nov 25 16:15:55 2009
New Revision: 723
URL: http://svn.debian.org/wsvn/pf-tools/?sc=1&rev=723
Log:
* lib/PFTools/Package.pm
- in Get_pkg_policiy : handler for check if a specific version is available
- in Install_pkg : handler for a specific version during installation package
* lib/PFTools/Update.pm
- in Do_updateloop : skipping circular dependancies for avoiding infinite
loop
- in $FUNCTION->{'apt-get'} : adding handler for version directive which
specifies a version to install (NEED TESTING!!). A control is done for
the availability of the specified version.
* filters/filter_privateresolve : substitution occured with POPNAME keyword
accroding to the value which is in $SUBST hashtable (backported from branche
0.33-stable)
* lib/PFTools/Net.pm : permit different bonding definition for a specified
host number (backported from branche 0.33-stable)
Modified:
trunk/debian/changelog
trunk/filters/filter_privateresolve
trunk/lib/PFTools/Net.pm
trunk/lib/PFTools/Packages.pm
trunk/lib/PFTools/Update.pm
Modified: trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pf-tools/trunk/debian/changelog?rev=723&op=diff
==============================================================================
--- trunk/debian/changelog (original)
+++ trunk/debian/changelog Wed Nov 25 16:15:55 2009
@@ -34,6 +34,20 @@
* Avoid potential undefined value with %POPNAME% and %HOSTNODEINDEX%
* Permit an interface definition for a particular host even if interface.<iface>
(default value) is not defined. A warning is raised not an abort
+ * lib/PFTools/Package.pm
+ - in Get_pkg_policiy : handler for check if a specific version is available
+ - in Install_pkg : handler for a specific version during installation package
+ * lib/PFTools/Update.pm
+ - in Do_updateloop : skipping circular dependancies for avoiding infinite
+ loop
+ - in $FUNCTION->{'apt-get'} : adding handler for version directive which
+ specifies a version to install (NEED TESTING!!). A control is done for
+ the availability of the specified version.
+ * filters/filter_privateresolve : substitution occured with POPNAME keyword
+ accroding to the value which is in $SUBST hashtable (backported from branche
+ 0.33-stable)
+ * lib/PFTools/Net.pm : permit different bonding definition for a specified
+ host number (backported from branche 0.33-stable)
[ Thomas Parmelan ]
* debian/control
@@ -55,7 +69,7 @@
* tools/kvmlaunch:
- new script.
- -- Christophe Caillet <tof at sitadelle.com> Wed, 01 Jul 2009 11:29:32 +0200
+ -- Christophe Caillet <tof at sitadelle.com> Wed, 25 Nov 2009 17:14:57 +0100
pf-tools (0.33.1-1) unstable; urgency=low
Modified: trunk/filters/filter_privateresolve
URL: http://svn.debian.org/wsvn/pf-tools/trunk/filters/filter_privateresolve?rev=723&op=diff
==============================================================================
--- trunk/filters/filter_privateresolve (original)
+++ trunk/filters/filter_privateresolve Wed Nov 25 16:15:55 2009
@@ -25,6 +25,7 @@
use PFTools::Net;
use PFTools::Update;
+use PFTools::Conf;
my ( $src, $host, $dst, $sep ) = @ARGV;
unless ( $src and $host and $dst ) {
@@ -58,6 +59,7 @@
my $match2 = $match;
$match2 =~ s/HOSTNAME/$host/;
+ $match2 =~ s/POPNAME/$SUBST{'POPNAME'}/g;
my @resolved = Resolv( $match2, $Z );
Modified: trunk/lib/PFTools/Net.pm
URL: http://svn.debian.org/wsvn/pf-tools/trunk/lib/PFTools/Net.pm?rev=723&op=diff
==============================================================================
--- trunk/lib/PFTools/Net.pm (original)
+++ trunk/lib/PFTools/Net.pm Wed Nov 25 16:15:55 2009
@@ -916,8 +916,15 @@
Abort( $ERR_SYNTAX, "No default bonding config defined for interface ".$bond ) ;
}
foreach my $iface ( @{$M->{'bonding'}->{$bond}} ) {
- if ( defined $S->{'interface'}->{$iface} ) {
- Abort ( $ERR_SYNTAX, "Cannot defined interface ".$iface." which is already on bonding definition ".$bond ) ;
+ if ( defined $S->{'interface'}->{$iface} ) {
+ if ( ref ( $S->{'interface'}->{$iface} ) eq 'HASH' ) {
+ if ( defined $S->{'interface'}->{$iface}->{$mnamindexnum} ) {
+ Abort( $ERR_SYNTAX, "Cannot define interface $iface: already used in bonding definition $bond" );
+ }
+ }
+ else {
+ Abort( $ERR_SYNTAX, "Cannot define interface $iface: already used in bonding definition $bond" );
+ }
}
}
}
@@ -963,7 +970,8 @@
$lan = $S->{'interface'}->{$i}->{$mnamindexnum} ;
}
elsif ( ! defined $S->{'interface'}->{$i}->{'default'} ) {
- Warn( $ERR_SYNTAX, "No default vlan defined for interface ".$i ) ;
+ Warn( $ERR_SYNTAX, "No default vlan defined for interface ".$i." skipping this interface for host $mnam" ) ;
+ next ;
}
else {
$lan = $S->{'interface'}->{$i}->{'default'} ;
@@ -1111,7 +1119,7 @@
if ( defined $S->{$i}->{$r}->{$mnamindexnum} ) {
$M->{$act}->{$j}->{$r} = $S->{$i}->{$r}->{$mnamindexnum} ;
} elsif ( ! defined $S->{$i}->{$r}->{'default'} ) {
- Abort ( $ERR_SYNTAX, "No default route defined for interface ".$i ) ;
+ Warn ( $ERR_SYNTAX, "No default route defined for interface ".$i." skipping this route for host $mnam" ) ;
} else {
$M->{$act}->{$j}->{$r} = $S->{$i}->{$r}->{'default'} ;
}
Modified: trunk/lib/PFTools/Packages.pm
URL: http://svn.debian.org/wsvn/pf-tools/trunk/lib/PFTools/Packages.pm?rev=723&op=diff
==============================================================================
--- trunk/lib/PFTools/Packages.pm (original)
+++ trunk/lib/PFTools/Packages.pm Wed Nov 25 16:15:55 2009
@@ -173,10 +173,11 @@
return $dep_list ;
}
-sub Get_pkg_policy ($$) {
- my ( $pkg_type, $pkg_name ) = @_ ;
- my ( $installed, $available ) ;
-
+sub Get_pkg_policy ($$$) {
+ my ( $pkg_type, $pkg_name, $version ) = @_ ;
+ my ( $installed, $available, $specified_version ) ;
+
+ $specified_version = 0 ;
if ( ! defined $PKG_CMD->{$pkg_type} ) {
Warn ( $ERR_OPEN, "Unknown package type ".$pkg_type ) if ( $VERBOSE );
return undef ;
@@ -199,9 +200,12 @@
elsif (m/^ Candidate: (.*)$/) {
$available = $1;
}
+ elsif ( defined $version && /\Q$version\E/ ) {
+ $specified_version = 1 ;
+ }
}
close(APTPOLICY);
- return ( $installed, $available ) ;
+ return ( $installed, $available, $specified_version ) ;
}
}
@@ -232,8 +236,8 @@
}
}
-sub Install_pkg ($$) {
- my ( $pkg_type, $pkg_name ) = @_ ;
+sub Install_pkg ($$;$) {
+ my ( $pkg_type, $pkg_name, $version ) = @_ ;
if ( ! defined $PKG_CMD->{$pkg_type} ) {
Warn ( $ERR_OPEN, "Unknown package type ".$pkg_type ) if ( $VERBOSE );
@@ -246,7 +250,11 @@
}
else {
if ( $pkg_type eq 'deb' ) {
- if ( deferredlogsystem ( $PKG_CMD->{$pkg_type}->{'install'}." '".$pkg_name."'" ) ) {
+ my $install_cmd = $PKG_CMD->{$pkg_type}->{'install'}." '".$pkg_name."'" ;
+ if ( defined $version ) {
+ $install_cmd = $PKG_CMD->{$pkg_type}->{'install'}." '".$pkg_name."=".$version."'" ;
+ }
+ if ( deferredlogsystem ( $install_cmd ) ) {
return 0 ;
}
return 1 ;
Modified: trunk/lib/PFTools/Update.pm
URL: http://svn.debian.org/wsvn/pf-tools/trunk/lib/PFTools/Update.pm?rev=723&op=diff
==============================================================================
--- trunk/lib/PFTools/Update.pm (original)
+++ trunk/lib/PFTools/Update.pm Wed Nov 25 16:15:55 2009
@@ -647,6 +647,7 @@
$pkg_type = 'deb' if ( ! defined $pkg_type ) ;
my $installed_version;
my $available_version;
+ my $specified_version = 0;
my $install;
my $name_filter = $S->{'name_filter'};
@@ -665,7 +666,8 @@
$dest = $newdest;
}
- aptupdate();
+# aptupdate();
+ Update_pkg_repository ( $pkg_type ) ;
# open( APTPOLICY, $APT_POLICY . ' ' . $dest . ' 2>/dev/null |' );
# while (<APTPOLICY>) {
@@ -682,7 +684,7 @@
# }
# close(APTPOLICY);
- ( $installed_version, $available_version ) = Get_pkg_policy ( $pkg_type, $dest ) ;
+ ( $installed_version, $available_version, $specified_version ) = Get_pkg_policy ( $pkg_type, $dest, $S->{'version'} ) ;
# if ( !defined($available_version) ) {
# Warn( $ERR_OPEN, "Package " . $dest . " indisponible" );
@@ -691,6 +693,10 @@
if ( !defined ( $available_version ) ) {
Warn( $ERR_OPEN, "Package " . $dest . " indisponible" );
+ return 1;
+ }
+ if ( defined ( $S->{'version'} ) && ! $specified_version ) {
+ Warn( $ERR_OPEN, "Package " . $dest . " en version " . $S->{'version'} . " indisponible" );
return 1;
}
@@ -783,7 +789,7 @@
# Warn( $ERR_OPEN, "Installation de " . $dest . " impossible" );
# return 1;
# }
- if ( ! Install_pkg ( $pkg_type, $dest ) ) {
+ if ( ! Install_pkg ( $pkg_type, $dest, $S->{'version'} ) ) {
Warn( $ERR_OPEN, "Installation de ".$dest." impossible" ) ;
return 1;
}
@@ -1734,14 +1740,23 @@
foreach $d (@dependsraw) {
if ( defined($d) && $d ne "" && defined( $C->{$d} ) ) {
+ if ( $d eq $s ) {
+ Warn ( $ERR_SYNTAX,
+ "["
+ . $s
+ . "] circular dependancy detected, skipping this depend"
+ );
+ FlushLog();
+ next;
+ }
push @depends, $d;
if ( $C->{$d}->{'action'} eq 'addmount' ) {
Warn( $ERR_OPEN,
- "["
- . $s
- . "] depends on addmount ["
- . $d
- . "], it may not work during install!" );
+ "["
+ . $s
+ . "] depends on addmount ["
+ . $d
+ . "], it may not work during install!" );
FlushLog();
}
}
More information about the pf-tools-commits
mailing list