/[pxelator]/lib/PXElator/network.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /lib/PXElator/network.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 82 by dpavlin, Fri Jul 31 17:07:39 2009 UTC revision 130 by dpavlin, Mon Aug 3 20:59:23 2009 UTC
# Line 7  use File::Slurp; Line 7  use File::Slurp;
7    
8  use server;  use server;
9    
10    sub ifconfig {
11            my $dev = shift;
12            `/sbin/ifconfig $dev`
13    }
14    
15  sub tap {  sub tap {
16    
17          my $interfaces = read_file '/etc/network/interfaces';          my $interfaces = read_file '/etc/network/interfaces';
18    
19          if ( $interfaces !~ m{tap0.*$server::ip}s ) {          if ( $interfaces !~ m{tap0}s ) {
20    
21                  system "sudo apt-get install vde2";                  system "sudo apt-get install vde2";
22    
23                  $interfaces .= qq{                  write_file '/tmp/interfaces', qq{
24    
25          iface tap0 inet static  # added by PXElator
26            address $server::ip  iface tap0 inet static
27            netmask $server::netmask          address $server::ip
28            vde2-switch -          netmask $server::netmask
29            vde2-switch -
30    
31                  };                  };
32    
33                  write_file '/etc/network/interfaces', $interfaces;                  system q|sudo sh -c 'cat /tmp/interfaces >> /etc/network/interfaces'|;
34                    system q|sudo sh -c 'usermod -G vde2-net -a $SUDO_USER'|;
35    
36          }          }
37    
38          `/sbin/ifconfig tap0 2>/dev/null` =~ m{UP} || system "sudo ifup tap0";          my $ifconfig = ifconfig('tap0');
39            if ( $ifconfig =~ m{UP} ) {
40          1;                   $ifconfig =~ m{$server::ip}s && return 'up';
41                    system("sudo /sbin/ifconfig tap0 $server::ip netmask $server::netmask") == 0 && return "ip changed $server::ip";
42                    die "can't change IP address of tap0 to $server::ip";
43            }
44            system("sudo ifup tap0") == 0                           &&      return 'started';
45            die "can't start tap0: $!";
46  }  }
47    
48  1;  1;

Legend:
Removed from v.82  
changed lines
  Added in v.130

  ViewVC Help
Powered by ViewVC 1.1.26