pf-tools/pf-tools: 4 new changesets

parmelan-guest at users.alioth.debian.org parmelan-guest at users.alioth.debian.org
Wed Nov 24 15:38:05 UTC 2010


details:   http://hg.debian.org/hg/pf-tools/pf-tools/rev/9c72ec1c29e3
changeset: 1074:9c72ec1c29e3
user:      Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
date:      Tue Nov 23 18:38:39 2010 +0100
description:
Style

details:   http://hg.debian.org/hg/pf-tools/pf-tools/rev/5c927ad1803a
changeset: 1075:5c927ad1803a
user:      Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
date:      Tue Nov 23 18:57:27 2010 +0100
description:
Style

details:   http://hg.debian.org/hg/pf-tools/pf-tools/rev/3c2e60d56d77
changeset: 1076:3c2e60d56d77
user:      Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
date:      Tue Nov 23 19:28:11 2010 +0100
description:
Style + unbreak "make test" by skipping a few tests, waiting for the fix for shortnames in public or private vlan

details:   http://hg.debian.org/hg/pf-tools/pf-tools/rev/6c3ae9927fb2
changeset: 1077:6c3ae9927fb2
user:      Thomas Parmelan <tom+pf-tools at ankh.fr.EU.org>
date:      Wed Nov 24 16:21:42 2010 +0100
description:
Reactive the tests now that the fix is there

diffstat:

2 files changed, 7 insertions(+), 3 deletions(-)
lib/PFTools/Conf/Syntax.pm   |    2 +-
lib/PFTools/Structqueries.pm |    8 ++++++--

diffs (434 lines):

diff -r e49752cb9732 -r 6c3ae9927fb2 lib/PFTools/Conf.pm
--- a/lib/PFTools/Conf.pm	Wed Nov 24 14:23:06 2010 +0100
+++ b/lib/PFTools/Conf.pm	Wed Nov 24 16:21:42 2010 +0100
@@ -231,7 +231,7 @@
     my $st = stat $config_file;
 
     # FIXME also check that $uid == 0 && $gid == 0 ?
-    unless ( S_IMODE( $st->mode ) == oct("0600") and S_ISREG( $st->mode ) ) {
+    unless ( S_IMODE( $st->mode ) == oct('0600') and S_ISREG( $st->mode ) ) {
         croak
             qq{ERROR: weak rights for $config_file (check owner/group/mode)};
     }
diff -r e49752cb9732 -r 6c3ae9927fb2 lib/PFTools/Conf/Syntax.pm
--- a/lib/PFTools/Conf/Syntax.pm	Wed Nov 24 14:23:06 2010 +0100
+++ b/lib/PFTools/Conf/Syntax.pm	Wed Nov 24 16:21:42 2010 +0100
@@ -136,9 +136,9 @@
             'MANDATORY_KEYS' => [ 'vlan', 'ipv4', 'slaves' ],
             'mac'       => '([0-9a-f]{2}:){5}[0-9a-f]{2}',
             'options'   => 'undefined',
-            'mode'      => '(active-backup|802.3ad|[\d]+)',
+            'mode'      => '(active-backup|802.3ad|\d+)',
             'vlan'      => '[a-z][a-z0-9\-]+[a-z0-9]',
-            'ipv4'      => '([\d]{1,3})((\.[\d]{1,3}){1,3})?',
+            'ipv4'      => '(\d{1,3})((\.\d{1,3}){1,3})?',
             'slaves'    => 'e(th)?\d+(\s*,\s*e(th)?\d+)+',
             'ipv6'      => 'undefined',
             'iface_opt' => 'undefined',
@@ -158,9 +158,9 @@
             'comment'        => 'undefined',
             'site'           => '(ALL|[\w\-]+(\s*,\s*[\w\-]+)*)',
             'model'          => 'undefined',
-            'number'         => '[\d]+',
-            'order'          => '[\d]+',
-            'nodes'          => '[\d]+',
+            'number'         => '\d+',
+            'order'          => '\d+',
+            'nodes'          => '\d+',
             'prefix'         => '(true|false)',
             'hostname'       => $MODEL_CONFIG_REGEX,
             'hosttype'       => $HOSTTYPE_CONFIG_REGEX,
@@ -214,11 +214,11 @@
             'MANDATORY_KEYS' => [ 'network', 'site' ],
             'comment'        => 'undefined',
             'tag'            => '\d{1,4}',
-            'network'        => '([\d]{1,3}\.){3}[\d]{1,3}(\/\d+)?',
+            'network'        => '(\d{1,3}\.){3}\d{1,3}(\/\d+)?',
             'network6'       => 'undefined',
             'scope'          => '(private|public)',
             'site'           => '(ALL|[\w\-]+(\s*,\s*[\w\-]+)*)',
-            'gateway'        => '([\d]{1,3})((\.[\d]{1,3}){1,3})?',
+            'gateway'        => '(\d{1,3})((\.\d{1,3}){1,3})?',
             'gateway6'       => 'undefined',
         },
         'server' => {
@@ -226,8 +226,8 @@
             'comment'        => 'undefined',
             'site'           => '(ALL|[\w\-]+(\s*,\s*[\w\-]+)*)',
             'number'         => '\d+',
-            'order'          => '[\d]+',
-            'ipv4'      => '([\d]{1,3})((\.[\d]{1,3}){1,3})?',
+            'order'          => '\d+',
+            'ipv4'      => '(\d{1,3})((\.\d{1,3}){1,3})?',
             'ipv6'      => 'undefined',
             'alias'     => '[a-z][a-z0-9\-]+[a-z0-9]',
             'shortname' => '[a-z][a-z0-9\-]+[a-z0-9]',
@@ -245,8 +245,8 @@
             'depends'        => 'undefined',
             'source'         => 'undefined',
             'filter'         => 'undefined',
-            'owner'          => '([\d]+|[a-z\d\-]+)',
-            'group'          => '([\d]+|[a-z\d\-]+)',
+            'owner'          => '(\d+|[a-z\d-]+)',
+            'group'          => '(\d+|[a-z\d-]+)',
             'mode'           => '[0-7]?[0-7]{3}',
             'on_config'      => 'undefined',
             'before_change'  => 'undefined',
@@ -257,8 +257,8 @@
             'depends'       => 'undefined',
             'source'        => 'undefined',
             'filter'        => 'undefined',
-            'owner'         => '([\d]+|[a-z\d\-]+)',
-            'group'         => '([\d]+|[a-z\d\-]+)',
+            'owner'         => '(\d+|[a-z\d-]+)',
+            'group'         => '(\d+|[a-z\d-]+)',
             'mode'          => '[0-7]?[0-7]{3}',
             'on_config'     => 'undefined',
             'before_change' => 'undefined',
@@ -268,8 +268,8 @@
         'removefile' => {},
         'mkdir'      => {
             'depends'       => 'undefined',
-            'owner'         => '([\d]+|[a-z\d\-]+)',
-            'group'         => '([\d]+|[a-z\d\-]+)',
+            'owner'         => '(\d+|[a-z\d-]+)',
+            'group'         => '(\d+|[a-z\d-]+)',
             'mode'          => '[0-7]?[0-7]{3}',
             'on_config'     => 'undefined',
             'before_change' => 'undefined',
@@ -344,28 +344,30 @@
         croak qq{ERROR: Invalid section type $section_type};
     }
 
-    my $definition = $DEF_SECTIONS->{$int_context}->{$section_type};
-    my $iface_type; my $parsed_keys_list = {};
-    my $check_mandatory = 1;
+    my $definition       = $DEF_SECTIONS->{$int_context}->{$section_type};
+    my $parsed_keys_list = {};
+    my $check_mandatory  = 1;
+
+    my $iface_type;
     if ( $section_type eq 'interface' ) {
-        ( $iface_type = $section_name ) =~
-            s{
+        ( $iface_type = $section_name )
+            =~ s{
                 \A
                     \Q$section_type\E
                     (?:
                         ::
                         (?:                     # logical interface name
-                            (?<iftype>eth|bond) [\d]+  #   real interface name
+                            (?<iftype>eth|bond) \d+  #   real interface name
                             (?:                 #   optional 802.1Q tag
                                 [.]
-                                TAG [\d]+
+                                TAG \d+
                             )?
                         )
                     )?
                 \z
             }
             {
-                $+{iftype}
+                $LAST_PAREN_MATCH{'iftype'}
             }xms;
         # FIXME : arbitrary set $parsed_keys_list->{'slaves'} to 1
         # due to 'slaves' is a mandatory key on interface sections 
@@ -385,8 +387,8 @@
 
     my $master_key = ( $context eq 'config' ) ? 'action' : 'type';
     foreach my $key ( keys %{$section_hash} ) {
-        my @split = split m{[.]}xmso, $key;
-        ( my $new = $key ) =~ s{ \A ([^.]+) ([.] .*)? \z }{$1}xmso;
+        my @split = split qr{ [.] }xmso, $key;
+        ( my $new = $key ) =~ s{ \A ([^.]+) (?: [.] .*)? \z }{$1}xmso;
         my $def_key = 
             ( $int_context eq 'host'
                 or $context eq 'network' and $section_type eq 'server'
@@ -396,15 +398,14 @@
 
         $parsed_keys_list->{$def_key} = 1;
         
-        # Next if useless checks 
-        next if (
-            $key eq $master_key
-            or $definition->{$def_key} eq 'undefined'
-        );
+        # Next if useless checks
+        next
+            if $key eq $master_key
+                or $definition->{$def_key} eq 'undefined';
 
         # Checking if key exits
         if ( not defined $definition->{$def_key} ) {
-            croak qq{ERROR: Unknown key $key on $section_name from file $file};
+            croak qq{ERROR: file $file, section $section_name: unknown key $key}
         }
 
         my $value = ( ref $section_hash->{$key} eq 'ARRAY' )
@@ -428,9 +429,7 @@
     return 1;
 }
 
-=head2
-
-__get_key_value_from_context_key( $section, $context, $parsed_pkey )
+=head2 __get_key_value_from_context_key( $section, $context, $parsed_pkey )
 
 Retrieve key_name and values for checking on hash defintion structure.
 Returns a pair with key_name and tab_values
@@ -455,12 +454,11 @@
             : $section->{$parsed_key};
         $key_name = $parsed_key;
     }
+
     return ( $key_name, $tab_values );
 }
  
-=head2
-
-__check_key_value_from_definition( $key_name, $tab_values, $regexp, $sect_name, $file )
+=head2 __check_key_value_from_definition( $key_name, $tab_values, $regexp, $sect_name, $file )
 
 Check values for a specified key_name. Returns true value on success or croaks
 on errors
@@ -472,9 +470,8 @@
 
     foreach my $value ( @{$tab_values} ) {
 
-        # Remove surrounding spaces
-        $value =~ s{ \A \s* }{}xms;
-        $value =~ s{ \s* \z }{}xms;
+        # Remove surrounding whitespace
+        $value =~ s{ \A \s* (\S*) \s* \z }{$1}xms;
 
         if ( $value !~ m{ \A $regexp \z }xms ) {
             croak
@@ -485,5 +482,6 @@
     return 1;
 }
 
+
 1;    # Magic true value required at end of module
 
diff -r e49752cb9732 -r 6c3ae9927fb2 lib/PFTools/Structqueries.pm
--- a/lib/PFTools/Structqueries.pm	Wed Nov 24 14:23:06 2010 +0100
+++ b/lib/PFTools/Structqueries.pm	Wed Nov 24 16:21:42 2010 +0100
@@ -320,20 +320,25 @@
 sub is_private_vlan {
     my ( $vlan_name, $global_config, $site_name ) = @_;
 
-    unless ($site_name) {
-        croak q{ERROR: $site MUST BE defined};
+    if ( not $vlan_name ) {
+        croak q{ERROR: Invalid empty $vlan_name};
+    }
+
+    if ( not $site_name ) {
+        croak q{ERROR: Invalid empty $site};
     }
 
     my $site_part = $global_config->{'SITE'}->{'BY_NAME'}->{$site_name};
 
-    unless ($site_part->{'NETWORK'}->{'BY_NAME'}->{$vlan_name}) {
-        carp qq{ERROR: unknown vlan $vlan_name on site $site_name};
+    # We really don't want to croak() here
+    unless ( $site_part->{'NETWORK'}->{'BY_NAME'}->{$vlan_name} ) {
+        carp qq{WARNING: unknown vlan $vlan_name on site $site_name};
         return;
     }
-    
+
     my $scope = $site_part->{'NETWORK'}->{'BY_NAME'}->{$vlan_name}->{'scope'};
 
-    return ( $scope eq 'private' ) ? 1 : 0;
+    return $scope eq 'private';
 }
 
 =head2 get_pkgtype_from_hostname( $hostname, $global_config, $site_name )
@@ -374,7 +379,7 @@
     my $cmdline = $host_ref->{'boot'}->{'cmdline'} || q{};
     my $bond_cmdline;
     foreach my $iface ( sort keys %{ $host_ref->{'interfaces'} } ) {
-        next if ( $iface !~ m{\A bond }xms );
+        next if $iface !~ m{\A bond }xms;
 
         $bond_cmdline
             = qq/bonding.mode=$host_ref->{'interfaces'}->{$iface}->{'mode'}/;
@@ -512,7 +517,8 @@
     my @result = ();
 LINE:
     foreach my $line (@fields) {
-        next if ( not $line );
+        next if not $line;
+
         my ( $type, $field ) = split qr{ \s+ }xms, $line;
         if ( $type eq 'A' ) {
             push @result, $field;
diff -r e49752cb9732 -r 6c3ae9927fb2 lib/PFTools/Utils.pm
--- a/lib/PFTools/Utils.pm	Wed Nov 24 14:23:06 2010 +0100
+++ b/lib/PFTools/Utils.pm	Wed Nov 24 16:21:42 2010 +0100
@@ -30,7 +30,7 @@
 use File::Compare;
 use File::Copy;
 use File::Temp;
-use Hash::Merge::Simple qw(merge);
+use Hash::Merge::Simple qw( merge );
 use IO::File;
 use Template::Tiny;
 
@@ -1182,15 +1182,15 @@
         croak qq{ERROR: Unknown site_name: $zone_name};
     }
 
-    # Building Header (SOA, NS an MX fields)
+    # Build Header (SOA, NS an MX fields)
     my $header_lines_ref
         = __make_zone_header( $zone_name, $site_name, $zone_ref );
     my @lines = @{$header_lines_ref};
 
-    # Merging private and public parts for a given zone_name
-    my $merge = merge $zone_part, $zone_ref->{'ALL_SITES'};
+    # Merge private and public parts for a given zone_name
+    my $merged_zone_ref = merge( $zone_part, $zone_ref->{'ALL_SITES'} );
 
-    ### Building Networks part
+    ### Build Networks part
     push @lines,
         q{;;},
         q{;; Networks},
@@ -1202,20 +1202,20 @@
         @{ $zone_ref->{'ALL_SITES'}->{'__network_order'} };
     foreach my $network ( @network_order ) {
         my $head = qq{; $network};
-        if ( $merge->{$network}->{'comment'} ) {
-            $head .= ": $merge->{$network}->{'comment'}";
+        if ( $merged_zone_ref->{$network}->{'comment'} ) {
+            $head .= ": $merged_zone_ref->{$network}->{'comment'}";
         }
 
         push @lines,
             $head,
             q{;----------------------------------------------------------------------------};
 
-        foreach my $spec ( 'network', 'netmask', 'broadcast', 'gateway' ) {
-            my $value = $merge->{$network}->{$spec};
+        foreach my $spec (qw( network netmask broadcast gateway )) {
+            my $value = $merged_zone_ref->{$network}->{$spec};
             next unless defined $value;
+
             push @lines,
-                sprintf( q{%-29s IN %s},
-                qq{$spec.$network}, $value );
+                sprintf( q{%-29s IN %s}, qq{$spec.$network}, $value );
         }
 
         push @lines, q{};
@@ -1242,27 +1242,30 @@
     foreach my $server ( @hostclass_order ) {
         my $head = qq{; $server};
 
-        if ( $merge->{$server}->{'comment'} ) {
-            $head .= ": $merge->{$server}->{'comment'}";
+        if ( $merged_zone_ref->{$server}->{'comment'} ) {
+            $head .= ": $merged_zone_ref->{$server}->{'comment'}";
         }
 
         push @lines,
             $head,
             q{;----------------------------------------------------------------------------};
 
-        foreach my $field ( sort keys %{ $merge->{$server} } ) {
+        foreach my $field ( sort keys %{ $merged_zone_ref->{$server} } ) {
             next if $field eq 'comment';
 
-            if ( ref $merge->{$server}->{$field} eq 'ARRAY' ) {
-                foreach my $elt ( @{ $merge->{$server}->{$field} } ) {
+            if ( ref $merged_zone_ref->{$server}->{$field} eq 'ARRAY' ) {
+                foreach my $elt ( @{ $merged_zone_ref->{$server}->{$field} } )
+                {
                     push @lines,
                         sprintf( q{%-29s IN %s}, $field, $elt );
                 }
             }
             else {
                 push @lines,
-                    sprintf( q{%-29s IN %s},
-                    $field, $merge->{$server}->{$field} );
+                    sprintf(
+                    q{%-29s IN %s},
+                    $field, $merged_zone_ref->{$server}->{$field}
+                    );
             }
         }
 
diff -r e49752cb9732 -r 6c3ae9927fb2 t/13.conf.cfg1/config-export/COMMON/private-network
--- a/t/13.conf.cfg1/config-export/COMMON/private-network	Wed Nov 24 14:23:06 2010 +0100
+++ b/t/13.conf.cfg1/config-export/COMMON/private-network	Wed Nov 24 16:21:42 2010 +0100
@@ -19,7 +19,7 @@
 
 [cbv4-pfds]
     type        = site
-    comment      = CBV4-PFDS root site
+    comment     = CBV4-PFDS root site
     location    = Courbevoie
     room        = CBV4-PFDS Room Name
     state       = ROOT
@@ -29,7 +29,7 @@
 
 [cbv4]
     type        = site
-    comment      = CBV4 POP
+    comment     = CBV4 POP
     location    = Courbevoie
     room        = CBV4 Room Name
     state       = EDGE
diff -r e49752cb9732 -r 6c3ae9927fb2 t/13.conf.t
--- a/t/13.conf.t	Wed Nov 24 14:23:06 2010 +0100
+++ b/t/13.conf.t	Wed Nov 24 16:21:42 2010 +0100
@@ -500,7 +500,7 @@
         'type'    => 'service',
     },
     'cbv4' => {
-        'comment'   => 'CBV4 POP',
+        'comment'  => 'CBV4 POP',
         'console'  => 'default',
         'dhcpvlan' => 'vlan-systeme',
         'location' => 'Courbevoie',
@@ -510,7 +510,7 @@
         'zone'     => 'private',
     },
     'cbv4-pfds' => {
-        'comment'   => 'CBV4-PFDS root site',
+        'comment'  => 'CBV4-PFDS root site',
         'console'  => 'default',
         'dhcpvlan' => 'vlan-systeme',
         'location' => 'Courbevoie',
@@ -866,7 +866,7 @@
                                         'linux-uml-elf-2.4.26-gr1.9.15',
                                     'pxefilename' => 'pxelinux.0',
                                     'console'     => 'default'
-                                },
+                                    },
                                 'interfaces' => {
                                     'eth4' => {
                                         'ipv4' => '10.3.1.42/24',
@@ -1028,7 +1028,7 @@
                             ]
                         }
                 },
-                'comment'   => 'CBV4-PFDS root site',
+                'comment'  => 'CBV4-PFDS root site',
                 'room'     => 'CBV4-PFDS Room Name',
                 'state'    => 'ROOT',
                 'dhcpvlan' => 'vlan-systeme',
@@ -1188,7 +1188,7 @@
                         ],
                     },
                 },
-                'comment'   => 'CBV4 POP',
+                'comment'  => 'CBV4 POP',
                 'room'     => 'CBV4 Room Name',
                 'state'    => 'EDGE',
                 'dhcpvlan' => 'vlan-systeme',



More information about the pf-tools-commits mailing list