pf-tools commit: r770 [ccaillet-guest] - in /trunk: debian/changelog lib/PFTools/Net.pm sbin/mk_dhcp
parmelan-guest at users.alioth.debian.org
parmelan-guest at users.alioth.debian.org
Mon Jul 5 13:49:21 UTC 2010
Author: ccaillet-guest
Date: Mon Jul 5 13:49:20 2010
New Revision: 770
URL: http://svn.debian.org/wsvn/pf-tools/?sc=1&rev=770
Log:
* sbin/mk_dhcp : modifying for accepting more than one dhcpvlan
* lib/PFTools/Net.pm
- accepting dhcpvlan entry into host definition
- NEED TO WRITE THE DOC ABOUT THIS !! (delete this entry after doing it!)
Modified:
trunk/debian/changelog
trunk/lib/PFTools/Net.pm
trunk/sbin/mk_dhcp
Modified: trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pf-tools/trunk/debian/changelog?rev=770&op=diff
==============================================================================
--- trunk/debian/changelog (original)
+++ trunk/debian/changelog Mon Jul 5 13:49:20 2010
@@ -72,7 +72,7 @@
- removed an unused variable.
* lib/PFTools/Conf.pm:
- in Init_SUBST(): comment the hostname regexp.
- * lib/PFTools/Net.pm:
+ * lib/PFTools/Net.pm:
- also export cmpif() and Host_class().
- corrected a few typos in error messages, and a few indentation cases.
- don't force bonding interfaces names to start with "bond" this also
@@ -87,7 +87,13 @@
cmdline defined into host definition
* debian/control : fixing deps for libmd5-perl which is included in perl >= 5.10
- -- Christophe Caillet <quadchris at free.fr> Wed, 09 Jun 2010 11:07:21 +0200
+ [ Olivier Molteni ]
+ * sbin/mk_dhcp : modifying for accepting more than one dhcpvlan
+ * lib/PFTools/Net.pm
+ - accepting dhcpvlan entry into host definition
+ - NEED TO WRITE THE DOC ABOUT THIS !! (delete this entry after doing it!)
+
+ -- Christophe Caillet <quadchris at free.fr> Mon, 05 Jul 2010 15:45:31 +0200
pf-tools (0.33.1-1) unstable; urgency=low
Modified: trunk/lib/PFTools/Net.pm
URL: http://svn.debian.org/wsvn/pf-tools/trunk/lib/PFTools/Net.pm?rev=770&op=diff
==============================================================================
--- trunk/lib/PFTools/Net.pm (original)
+++ trunk/lib/PFTools/Net.pm Mon Jul 5 13:49:20 2010
@@ -805,6 +805,25 @@
my $ipincrement = 1;
if ( defined $S->{'ipincrement'} ) {
$ipincrement = $S->{'ipincrement'};
+ }
+
+ # Mlt : Gestion des entrees dhcp pour certains sereurs d'un vlan uniquement
+ # On ajoute un vlan a la liste dhcpclanpartial seulement si il n'est pas
+ # deja present dans cette liste ou dans la liste globale dhcpvlan.
+ # Lors de la generation du dhcpd.conf les entrees presentes dans dhcpvlanpartial
+ # entraineront la creation du subnet correspondant mais seul les hosts correspondants
+ # a des machines qui auront declare des dhcpvlan seront generes.
+ # !!! Il ne peut Y avoir qu'une SEULE entree dhcp de deploiement par machine !!!
+ # !!! entre autre parcequ'il n'y a qu'un seul ether.n par machine :-) !!!
+ # !!! donc la presence de cette directive au niveau d'une machine annule le !!!
+ # !!! traitement des autres declaration dans des vlans plus globaux. !!!
+ if ( defined $S->{dhcpvlan} ) {
+ my $vlan = $S->{dhcpvlan} ;
+ if ( ! grep (/^$vlan$/, @{ $Z->{SOA}->{dhcpvlan} }) ) {
+ if ( ! grep (/^$vlan$/, @{ $Z->{SOA}->{dhcpvlanpartial} }) ) {
+ push (@{ $Z->{SOA}->{dhcpvlanpartial} }, $vlan) ;
+ }
+ }
}
# Traitement de chaque occurence
@@ -902,6 +921,11 @@
delete $M->{'console'} if $M->{'console'} and $M->{'console'} eq 'default';
+ # Mlt : Ajout de zone dhcp partielle
+ if ( defined $S->{dhcpvlan} ) {
+ $M->{dhcpvlan} = $S->{dhcpvlan} ;
+ }
+
if ( defined $S->{'bonding'} ) {
foreach my $bond ( keys %{$S->{'bonding'}} ) {
if ( defined $S->{'bonding'}->{$bond}->{$mnamindexnum} ) {
@@ -1285,12 +1309,18 @@
$Z->{'SOA'}->{'negttl'} = $S->{'negttl'};
$Z->{'SOA'}->{'ttl'} = $S->{'ttl'};
+ # Mlt : Ajout de zone dhcp partielle
+ # $Z->{SOA}->{dhcpvlan} = Liste des vlans dont TOUTES les machines ont
+ # une entree dans dhcpd.conf
+ # $Z->{SOA}->{dhcpvlanpartial} = Liste des vlans dont SEULEMENT CERTAINES
+ # machines ont une entree dans dhcpd.conf
if ( defined $S->{'dhcpvlan'} ) {
@{ $Z->{'SOA'}->{'dhcpvlan'} } = split( /[,\s]+/, $S->{'dhcpvlan'} );
}
else {
@{ $Z->{SOA}->{'dhcpvlan'} } = @DEFAULTDHCPVLAN;
}
+ $Z->{SOA}->{dhcpvlanpartial} = [] ;
if ( $S->{'console'} and $S->{'console'} ne 'default' ) {
$Z->{SOA}->{'console'} = $S->{'console'};
Modified: trunk/sbin/mk_dhcp
URL: http://svn.debian.org/wsvn/pf-tools/trunk/sbin/mk_dhcp?rev=770&op=diff
==============================================================================
--- trunk/sbin/mk_dhcp (original)
+++ trunk/sbin/mk_dhcp Mon Jul 5 13:49:20 2010
@@ -52,7 +52,8 @@
print "\n";
- foreach $vlan ( @{ $Z->{'SOA'}->{'dhcpvlan'} } ) {
+ # Mlt : dhcpvlanpartial = subnets ou seulement certaine machines auront une section host
+ foreach $vlan ( @{ $Z->{'SOA'}->{'dhcpvlan'} }, @{ $Z->{SOA}->{dhcpvlanpartial} } ) {
printf( "# %s\n",
$Z->{'NETWORK'}->{'BY_NAME'}->{$vlan}->{'comment'} );
printf(
@@ -77,9 +78,26 @@
my $M = $host->{'SRVLIST'}->{$m};
foreach $nam ( sort ( keys %{ $M->{'zone'} } ) ) {
- if ( $nam =~ /$dhcpvlanregex/ ) {
- my $nam2 = $1;
+ # Mlt : traitement dhcpvlanpartial : ajout des hosts concernes.
+ # !!! Il ne peut Y avoir qu'une SEULE entree dhcp de deploiement par machine !!!
+ # !!! entre autre parcequ'il n'y a qu'un seul ether.n par machine :-) !!!
+ # !!! donc la presence de cette directive au niveau d'une machine annule le !!!
+ # !!! traitement des autres declaration dans des vlans plus globaux. !!!
+ my $nam2 = '' ;
+ if ( $nam =~ /$dhcpvlanregex/ ) {
+ if ( ! defined $M->{dhcpvlan} ) {
+ $nam2 = $1;
+ }
+ }
+ if ( defined $M->{dhcpvlan} ) {
+ my $dhcpvlanpartialregex = '^([^.]+)\.' . $M->{dhcpvlan} . '(\.*)?$';
+ if ( $nam =~ /$dhcpvlanpartialregex/ ) {
+ $nam2 = $1;
+ }
+ }
+
+ if ( $nam2 ) {
my $hostnum = $nam2;
$hostnum =~ s/^.*?(\d*)[a-z]*$/$1/;
$hostnum =~ s/^0*//;
@@ -89,6 +107,14 @@
printf( "host %s {\n", $nam2 );
printf( " hardware ethernet %s;\n", $M->{'zone'}->{$nam}->{'ether'} );
printf( " fixed-address %s.%s;\n", $nam, $Z->{'SOA'}->{'name'} );
+
+ # Mlt : Option router ...
+ # Si on trouve une route par defaut sur ce reseau on ajoute l'option routers
+ foreach my $route ( keys %{ $M->{route}->{$M->{ifup}->{$nam}} } ) {
+ if ( $M->{route}->{$M->{ifup}->{$nam}}->{$route} =~ /^default\s([^;]+)/ ) {
+ printf( " option routers %s;\n", $1) ;
+ }
+ }
if ( defined( $M->{'filename'} ) && $M->{'filename'} ne "" ) {
printf( " filename \"%s\";\n", $M->{'filename'} );
More information about the pf-tools-commits
mailing list