/[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

Annotation of /lib/PXElator/network.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 140 - (hide annotations)
Tue Aug 4 17:16:11 2009 UTC (14 years, 9 months ago) by dpavlin
File size: 915 byte(s)
first try to ifup tap0 and report suggestion if it fails
1 dpavlin 82 package network;
2    
3     use warnings;
4     use strict;
5    
6     use File::Slurp;
7    
8     use server;
9    
10 dpavlin 83 sub ifconfig {
11     my $dev = shift;
12     `/sbin/ifconfig $dev`
13     }
14    
15 dpavlin 82 sub tap {
16    
17     my $interfaces = read_file '/etc/network/interfaces';
18    
19 dpavlin 130 if ( $interfaces !~ m{tap0}s ) {
20 dpavlin 82
21     system "sudo apt-get install vde2";
22    
23 dpavlin 99 write_file '/tmp/interfaces', qq{
24 dpavlin 82
25 dpavlin 99 # added by PXElator
26     iface tap0 inet static
27     address $server::ip
28     netmask $server::netmask
29     vde2-switch -
30 dpavlin 82
31     };
32    
33 dpavlin 99 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 dpavlin 82
36     }
37    
38 dpavlin 84 my $ifconfig = ifconfig('tap0');
39     if ( $ifconfig =~ m{UP} ) {
40     $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 dpavlin 140 } else {
44     die "bring interface up with: sudo ifup tap0\n";
45 dpavlin 84 }
46 dpavlin 82 }
47    
48     1;

  ViewVC Help
Powered by ViewVC 1.1.26