/[pxelator]/lib/PXElator/kvm.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/kvm.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 92 - (hide annotations)
Fri Jul 31 19:42:29 2009 UTC (14 years, 8 months ago) by dpavlin
File size: 836 byte(s)
activate window
1 dpavlin 54 package kvm;
2    
3     use warnings;
4     use strict;
5     use autodie;
6    
7     use server;
8    
9     our $memory_size = 512;
10 dpavlin 62 our $mac = 'AC:DE:48:00:00:01'; # AC = private, AD = multicast, AE = local
11 dpavlin 80 our $monitor = 'tcp:' . $server::ip . ':10000,server,nowait';
12 dpavlin 54
13 dpavlin 88 sub start_fork { qw/monitor/ }
14 dpavlin 80
15     sub monitor {
16 dpavlin 90 exec "xterm -fg red -e nc $server::ip 10000";
17 dpavlin 80 }
18    
19 dpavlin 92 sub actions { qw/reset window/ }
20 dpavlin 88
21     sub reset {
22     my $sock = IO::Socket::INET->new( $server::ip .':10000' );
23     print $sock "system_reset\n";
24     close $sock;
25     }
26    
27 dpavlin 92 sub window {
28     system "xdotool windowactivate `xdotool search --class kvm`"
29     }
30    
31 dpavlin 82 use network;
32    
33 dpavlin 54 sub start {
34    
35 dpavlin 85 warn 'tap ', network::tap();
36 dpavlin 82
37 dpavlin 54 my $kvm = qq|
38     vdeq kvm -m $memory_size -net nic,vlan=1,macaddr=$mac
39     -net vde,vlan=1,sock=/var/run/vde2/tap0.ctl
40     -boot n
41 dpavlin 80 -monitor $monitor
42 dpavlin 54 |;
43 dpavlin 80 $kvm =~ s{\s+}{ }gs;
44 dpavlin 56
45 dpavlin 54 warn $kvm;
46 dpavlin 56 exec $kvm;
47 dpavlin 54
48     }
49    
50     warn 'loaded';
51    
52     1;

  ViewVC Help
Powered by ViewVC 1.1.26