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