[Netpass-devel] NetPass/lib/NetPass Config.pm,1.41,1.42
Brought to you by:
jeffmurphy
|
From: jeff m. <jef...@us...> - 2005-05-20 20:33:10
|
Update of /cvsroot/netpass/NetPass/lib/NetPass In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23931/lib/NetPass Modified Files: Config.pm Log Message: network editor UI completion Index: Config.pm =================================================================== RCS file: /cvsroot/netpass/NetPass/lib/NetPass/Config.pm,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- Config.pm 20 May 2005 15:16:12 -0000 1.41 +++ Config.pm 20 May 2005 20:32:59 -0000 1.42 @@ -744,6 +744,11 @@ $self->{'cfg'}->obj('network')->$network({}); } + _log("DEBUG", "set network comment $comment\n"); + _log("DEBUG", "set network int $interface\n"); + _log("DEBUG", "set network qid $qvid\n"); + _log("DEBUG", "set network nqid $uqvid\n"); + $self->{'cfg'}->obj('network')->obj($network)->comment($comment); $self->{'cfg'}->obj('network')->obj($network)->interface($interface); $self->{'cfg'}->obj('network')->obj($network)->quarantine($qvid); @@ -752,6 +757,204 @@ return 0; } +=head2 $cfg-E<gt>setHA(-network => '', -enabled => 0|1, -primary => '', -secondary => '', -virtualip => '', -servers => []) + +Enable, disable and set High Availability related info. All parameters are required except for 'secondary'. + +RETURNS + +0 on success +"invalid parameters" on failure +"no such network" on failure + +=cut + + +sub setHA { + my $self = shift; + + my $parms = parse_parms({ + -parms => \@_, + -legal => [qw(-network -enabled -primary -secondary -virtualip -servers)], + -required => [qw(-network -enabled -primary -virtualip -servers)], + -defaults => { -secondary => '' } + } + ); + + if (!defined($parms)) { + return "invalid parameters: ".Carp::longmess("invalid parameters ".Class::ParmList->error); + } + + my ($network, $enabled, $primary, $secondary, $virtualip, $servers) = + $parms->get('-network', '-enabled', '-primary', '-secondary', '-virtualip', '-servers'); + + if ($enabled !~ /^[01]$/) { + return "invalid parameters: enabled is not 0 or 1"; + } + + $secondary ||= ''; + + $self->reloadIfChanged(); + + if( ! $self->{'cfg'}->obj('network')->exists($network) ) { + return "no such network"; + } + + if( ! $self->{'cfg'}->obj('network')->obj($network)->exists('ha') ) { + $self->{'cfg'}->obj('network')->obj($network)->ha({}); + } + + + $self->{'cfg'}->obj('network')->obj($network)->obj('ha')->status('enabled') if $enabled; + $self->{'cfg'}->obj('network')->obj($network)->obj('ha')->status('disabled') if !$enabled; + + my $v = 'primary-redirector'; + $self->{'cfg'}->obj('network')->obj($network)->obj('ha')->$v($primary); + $v = 'secondary-redirector'; + $self->{'cfg'}->obj('network')->obj($network)->obj('ha')->$v($secondary); + $self->{'cfg'}->obj('network')->obj($network)->obj('ha')->virtualip($virtualip); + + my %s; + my $sa = []; + if (ref($servers) eq "ARRAY") { + $sa = $servers; + } else { + $sa = [ $servers ]; + } + foreach my $s (@$sa) { + $s{$s} = ""; + } + $self->{'cfg'}->obj('network')->obj($network)->obj('ha')->servers(\%s); + + return 0; +} + +=head2 $cfg-E<gt>setGarp(-network => '', -enabled => 0|1, -delay => 10, -number => 3) + +Enable, disable and set Gratuitous Arp related info. Status and enabled are required. Delay and Number +are optional. + +RETURNS + +0 on success +"invalid parameters" on failure +"no such network" on failure + +=cut + + +sub setGarp { + my $self = shift; + + my $parms = parse_parms({ + -parms => \@_, + -legal => [qw(-network -enabled -delay -number)], + -required => [qw(-network -enabled)], + -defaults => { -delay => 10, -number => 3 } + } + ); + + if (!defined($parms)) { + return "invalid parameters: ".Carp::longmess("invalid parameters ".Class::ParmList->error); + } + + my ($network, $enabled, $delay, $number) = + $parms->get('-network', '-enabled', '-delay', '-number'); + + if ($enabled !~ /^[01]$/) { + return "invalid parameters: enabled is not 0 or 1"; + } + + if ($delay !~ /^\d+$/) { + return "invalid parameters: delay is non-numeric"; + } + + if ($number !~ /^\d+$/) { + return "invalid parameters: number is non-numeric"; + } + + $self->reloadIfChanged(); + + if( ! $self->{'cfg'}->obj('network')->exists($network) ) { + return "no such network"; + } + + if( ! $self->{'cfg'}->obj('network')->obj($network)->exists('garp') ) { + $self->{'cfg'}->obj('network')->obj($network)->garp({}); + } + + $self->{'cfg'}->obj('network')->obj($network)->obj('garp')->status('enabled') if $enabled; + $self->{'cfg'}->obj('network')->obj($network)->obj('garp')->status('disabled') if !$enabled; + $self->{'cfg'}->obj('network')->obj($network)->obj('garp')->delay($delay); + $self->{'cfg'}->obj('network')->obj($network)->obj('garp')->number($number); + + return 0; +} + +=head2 $cfg-E<gt>setSwitches(-network => '', -switches => [], -bsw => '') + +Set the list of switches that service this network. BSW is optional. If BSW has +user ports on it, it should be specified both in the switches list and as the +BSW parameter. + +RETURNS + +0 on success +"invalid parameters" on failure +"no such network" on failure + +=cut + + +sub setSwitches { + my $self = shift; + + my $parms = parse_parms({ + -parms => \@_, + -legal => [qw(-network -switches -bsw)], + -required => [qw(-network -switches)], + -defaults => { -bsw => '' } + } + ); + + if (!defined($parms)) { + return "invalid parameters: ".Carp::longmess("invalid parameters ".Class::ParmList->error); + } + + my ($network, $switches, $bsw) = + $parms->get('-network', '-switches', '-bsw'); + + $self->reloadIfChanged(); + + if( ! $self->{'cfg'}->obj('network')->exists($network) ) { + return "no such network"; + } + + if( ! $self->{'cfg'}->obj('network')->obj($network)->exists('switches') ) { + $self->{'cfg'}->obj('network')->obj($network)->switches({}); + } + + if ($bsw) { + $self->{'cfg'}->obj('network')->obj($network)->obj('switches')->bsw($bsw); + } else { + $self->{'cfg'}->obj('network')->obj($network)->obj('switches')->bsw($bsw); + } + + my $sa = []; + if (ref($switches) eq "ARRAY") { + $sa = $switches; + } else { + $sa = [ $switches ]; + } + my %s; + foreach my $s (@$sa) { + $s{$s} = ''; + } + $self->{'cfg'}->obj('network')->obj($network)->switches(\%s); + + return 0; +} + =head2 $val = $np->policy(-key => $key, -network => $nw, -val => $value) |