pf-tools/pf-tools: ability to set interface up without ip (neede...
parmelan-guest at users.alioth.debian.org
parmelan-guest at users.alioth.debian.org
Tue Nov 18 16:21:08 UTC 2014
details: http://hg.debian.org/hg/pf-tools/pf-tools/rev/0bb05ffb7c3a
changeset: 1338:0bb05ffb7c3a
user: shad
date: Tue Nov 18 17:21:04 2014 +0100
description:
ability to set interface up without ip (needed for openstack)
diffstat:
lib/PFTools/Conf/Host.pm | 13 +++++++++++++
lib/PFTools/Conf/Syntax.pm | 1 +
lib/PFTools/Utils.pm | 14 ++++++++++----
3 files changed, 24 insertions(+), 4 deletions(-)
diffs (79 lines):
diff -r d8e95fb70f60 -r 0bb05ffb7c3a lib/PFTools/Conf/Host.pm
--- a/lib/PFTools/Conf/Host.pm Thu Oct 23 14:28:52 2014 +0200
+++ b/lib/PFTools/Conf/Host.pm Tue Nov 18 17:21:04 2014 +0100
@@ -606,6 +606,12 @@
croak q{ERROR: Invalid subnet_ref object};
}
+ # FIXME allow duplicate fake ip, maybe better if ip was optional in some
+ # case
+ if ( $ipstart eq q{0.0.0.0} ) {
+ return NetAddr::IP->new($ipstart);
+ }
+
# for some network, NetAddr::IP->prefix() return a range
# something like '109.3.20.225-255'
my $prefix = $subnet_ref->prefix();
@@ -785,6 +791,13 @@
$result->{'options'} = $link_options;
}
+ # Links method(s)
+ if ( my $link_method = $link_section_ref->{ 'method.' . $host_number }
+ || $link_section_ref->{'method'} )
+ {
+ $result->{'method'} = $link_method;
+ }
+
# Check optional MAC address
if ( my $mac_address = $link_section_ref->{"mac.$host_number"} ) {
if ( $mac_address ne q{00:00:00:00:00:00}
diff -r d8e95fb70f60 -r 0bb05ffb7c3a lib/PFTools/Conf/Syntax.pm
--- a/lib/PFTools/Conf/Syntax.pm Thu Oct 23 14:28:52 2014 +0200
+++ b/lib/PFTools/Conf/Syntax.pm Tue Nov 18 17:21:04 2014 +0100
@@ -152,6 +152,7 @@
'slaves' => 'e(th)?\d+(\s*,\s*e(th)?\d+)+',
'ipv6' => 'undefined',
'iface_opt' => 'undefined',
+ 'method' => 'undefined',
'@route' => 'undefined',
'@route6' => 'undefined',
},
diff -r d8e95fb70f60 -r 0bb05ffb7c3a lib/PFTools/Utils.pm
--- a/lib/PFTools/Utils.pm Thu Oct 23 14:28:52 2014 +0200
+++ b/lib/PFTools/Utils.pm Tue Nov 18 17:21:04 2014 +0100
@@ -692,8 +692,8 @@
local $OUTPUT_AUTOFLUSH = 1;
my $errorcount
- = __do_updateloop( $host_config, $options, $subst_ref, $global_config,
- \@sortedkeys );
+ = __do_updateloop( $host_config, $options, $subst_ref,
+ $global_config, \@sortedkeys );
print qq{$errorcount error(s) detected.\n};
@@ -1457,8 +1457,8 @@
my $if_part = $host_ref->{'interfaces'}->{$iface};
my $if_method
= $if_part->{'method'} ? $if_part->{'method'}
- : $iface eq 'lo' ? q{loopback}
- : q{static};
+ : $iface eq 'lo' ? q{loopback}
+ : q{static};
push @iface_lines, qq{auto $iface}, qq{iface $iface inet $if_method};
if ( ( $if_part->{'method'} and $if_part->{'method'} eq 'dhcp' )
@@ -1467,6 +1467,12 @@
return \@iface_lines;
}
+ if ( $if_part->{'method'} and $if_part->{'method'} eq 'manual' ) {
+ push @iface_lines,
+ qq{\tup\t\tip link set $iface up},
+ qq{\tdown\t\tip link set $iface down};
+ return \@iface_lines;
+ }
if ( $if_part->{'slaves'} ) {
push @iface_lines, qq{\tslaves\t\t} . $if_part->{'slaves'};
}
More information about the pf-tools-commits
mailing list