Eucalyptus-1.5.2-Setup: gen_kvm_libvirt_xml

File gen_kvm_libvirt_xml, 4.4 kB (added by ibaldin, 9 years ago)

gen_kvm_libvirt_xml

Line 
1#!/usr/bin/perl
2
3#Copyright (c) 2009  Eucalyptus Systems, Inc.   
4#
5#This program is free software: you can redistribute it and/or modify
6#it under the terms of the GNU General Public License as published by
7#the Free Software Foundation, only version 3 of the License. 
8#
9#This file is distributed in the hope that it will be useful, but WITHOUT
10#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12#for more details. 
13#
14#You should have received a copy of the GNU General Public License along
15#with this program.  If not, see <http://www.gnu.org/licenses/>.
16#
17#Please contact Eucalyptus Systems, Inc., 130 Castilian
18#Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
19#if you need additional information or have any questions.
20#
21#This file may incorporate work covered under the following copyright and
22#permission notice:
23#
24#  Software License Agreement (BSD License)
25#
26#  Copyright (c) 2008, Regents of the University of California
27
28#
29#  Redistribution and use of this software in source and binary forms, with
30#  or without modification, are permitted provided that the following
31#  conditions are met:
32#
33#    Redistributions of source code must retain the above copyright notice,
34#    this list of conditions and the following disclaimer.
35#
36#    Redistributions in binary form must reproduce the above copyright
37#    notice, this list of conditions and the following disclaimer in the
38#    documentation and/or other materials provided with the distribution.
39#
40#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
41#  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
42#  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
43#  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
44#  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
45#  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
46#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
47#  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
48#  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
49#  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
50#  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
51#  THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
52#  LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
53#  SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
54#  IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
55#  BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
56#  THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
57#  OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
58#  WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
59#  ANY SUCH LICENSES OR RIGHTS.
60
61# this generates an XML template for libvirt domain specification,
62# which is tailored to an instance by the node controller
63
64use diagnostics;
65use warnings;
66use sigtrap;
67use strict;
68use English; # for descriptive predefined var names
69use Data::Dumper; # for debugging: print Dumper($var)
70use Getopt::Long;
71use FindBin;
72$OUTPUT_AUTOFLUSH = 1; # no output buffering
73
74our $use_ramdisk = 0;
75
76# deal with command-line parameters
77GetOptions('ramdisk'        => sub { $use_ramdisk = 1; },
78           'ephemeral'      => sub { }, # option ignored
79                   ) or exit (1);
80
81print <<EOF;
82<domain type='kvm'>
83    <name>NAME</name>
84    <os>
85    <type>hvm</type>
86        <kernel>BASEPATH/kernel</kernel>
87EOF
88
89if ( $use_ramdisk ) {
90    print "        <initrd>BASEPATH/ramdisk</initrd>\n";
91}
92
93print <<EOF;
94        <cmdline>root=/dev/sda1 console=ttyS0</cmdline>
95    </os>
96    <features>
97        <acpi/>
98    </features>
99    <memory>MEMORY</memory>
100    <vcpu>VCPUS</vcpu>
101    <devices>
102        <emulator>/usr/bin/kvm</emulator>
103        <disk type='file'>
104            <source file='BASEPATH/disk'/>
105            <target dev='sda'/>
106        </disk>
107        <interface type='bridge'>
108            <source bridge='BRIDGEDEV'/>
109            <mac address='PRIVMACADDR'/>
110        </interface>
111        <interface type='bridge'>
112             <source bridge='sliverbr'/>
113        </interface>
114        <serial type="file">
115            <source path='BASEPATH/console.log'/>
116            <target port='1'/>
117        </serial>
118    </devices>
119</domain>
120EOF