14
if [ ! -n "$HOST_IP" ]; then
15
# NOTE(vish): This will just get the first ip in the list, so if you
16
# have more than one eth device set up, this will fail, and
17
# you should explicitly set HOST_IP in your environment
18
HOST_IP=`ifconfig | grep -m 1 'inet addr:'| cut -d: -f2 | awk '{print $1}'`
26
if [ "$USE_MYSQL" == 1 ]; then
27
SQL_CONN=mysql://root:$MYSQL_PASS@localhost/nova
29
SQL_CONN=sqlite:///$NOVA_DIR/nova.sqlite
32
if [ "$USE_LDAP" == 1 ]; then
33
AUTH=ldapdriver.LdapDriver
35
AUTH=dbdriver.DbDriver
39
cat >/etc/nova/nova-manage.conf << NOVA_CONF_EOF
42
--dhcpbridge_flagfile=/etc/nova/nova-manage.conf
45
--routing_source_ip=$HOST_IP
46
--sql_connection=$SQL_CONN
47
--auth_driver=nova.auth.$AUTH
48
--libvirt_type=$LIBVIRT_TYPE
51
if [ "$CMD" == "branch" ]; then
52
sudo apt-get install -y bzr
54
bzr branch $SOURCE_BRANCH $NOVA_DIR
56
mkdir -p $NOVA_DIR/instances
57
mkdir -p $NOVA_DIR/networks
60
# You should only have to run this once
61
if [ "$CMD" == "install" ]; then
62
sudo apt-get install -y python-software-properties
63
sudo add-apt-repository ppa:nova-core/ppa
65
sudo apt-get install -y dnsmasq open-iscsi kpartx kvm gawk iptables ebtables
66
sudo apt-get install -y user-mode-linux kvm libvirt-bin
67
sudo apt-get install -y screen iscsitarget euca2ools vlan curl rabbitmq-server
69
sudo /etc/init.d/libvirt-bin restart
70
sudo apt-get install -y python-twisted python-sqlalchemy python-mox python-greenlet python-carrot
71
sudo apt-get install -y python-daemon python-eventlet python-gflags python-tornado python-ipy
72
sudo apt-get install -y python-libvirt python-libxml2 python-routes
73
if [ "$USE_MYSQL" == 1 ]; then
74
cat <<MYSQL_PRESEED | debconf-set-selections
75
mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS
76
mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS
77
mysql-server-5.1 mysql-server/start_on_boot boolean true
79
apt-get install -y mysql-server python-mysqldb
81
wget http://c2477062.cdn.cloudfiles.rackspacecloud.com/images.tgz
82
tar -C $DIR -zxf images.tgz
88
screen -S nova -X screen -t $1
89
screen -S nova -p $1 -X stuff "$2$NL"
92
if [ "$CMD" == "run" ]; then
94
screen -d -m -S nova -t nova
96
if [ "$USE_MYSQL" == 1 ]; then
97
mysql -p$MYSQL_PASS -e 'DROP DATABASE nova;'
98
mysql -p$MYSQL_PASS -e 'CREATE DATABASE nova;'
100
rm $NOVA_DIR/nova.sqlite
102
if [ "$USE_LDAP" == 1 ]; then
103
sudo $NOVA_DIR/nova/auth/slap.sh
105
rm -rf $NOVA_DIR/instances
106
mkdir -p $NOVA_DIR/instances
107
rm -rf $NOVA_DIR/networks
108
mkdir -p $NOVA_DIR/networks
109
$NOVA_DIR/tools/clean-vlans
110
if [ ! -d "$NOVA_DIR/images" ]; then
111
ln -s $DIR/images $NOVA_DIR/images
114
if [ "$TEST" == 1 ]; then
116
python $NOVA_DIR/run_tests.py
120
# create an admin user called 'admin'
121
$NOVA_DIR/bin/nova-manage user admin admin admin admin
122
# create a project called 'admin' with project manager of 'admin'
123
$NOVA_DIR/bin/nova-manage project create admin admin
124
# export environment variables for project 'admin' and user 'admin'
125
$NOVA_DIR/bin/nova-manage project environment admin admin $NOVA_DIR/novarc
126
# create 3 small networks
127
$NOVA_DIR/bin/nova-manage network create 10.0.0.0/8 3 16
129
# nova api crashes if we start it with a regular screen command,
130
# so send the start command by forcing text into the window.
131
screen_it api "$NOVA_DIR/bin/nova-api --flagfile=/etc/nova/nova-manage.conf"
132
screen_it objectstore "$NOVA_DIR/bin/nova-objectstore --flagfile=/etc/nova/nova-manage.conf"
133
screen_it compute "$NOVA_DIR/bin/nova-compute --flagfile=/etc/nova/nova-manage.conf"
134
screen_it network "$NOVA_DIR/bin/nova-network --flagfile=/etc/nova/nova-manage.conf"
135
screen_it scheduler "$NOVA_DIR/bin/nova-scheduler --flagfile=/etc/nova/nova-manage.conf"
136
screen_it volume "$NOVA_DIR/bin/nova-volume --flagfile=/etc/nova/nova-manage.conf"
137
screen_it test ". $NOVA_DIR/novarc"
141
if [ "$CMD" == "run" ] || [ "$CMD" == "terminate" ]; then
143
. $NOVA_DIR/novarc; euca-describe-instances | grep i- | cut -f2 | xargs euca-terminate-instances
147
if [ "$CMD" == "run" ] || [ "$CMD" == "clean" ]; then
148
screen -S nova -X quit
150
$NOVA_DIR/tools/setup_iptables.sh clear
153
if [ "$CMD" == "scrub" ]; then
154
$NOVA_DIR/tools/clean-vlans
155
if [ "$LIBVIRT_TYPE" == "uml" ]; then
156
virsh -c uml:///system list | grep i- | awk '{print \$1}' | xargs -n1 virsh -c uml:///system destroy
158
virsh list | grep i- | awk '{print \$1}' | xargs -n1 virsh destroy
160
vblade-persist ls | grep vol- | awk '{print \$1\" \"\$2}' | xargs -n2 vblade-persist destroy