blob: 48f2a8292ece41f0c6395a040a8c79352cd9fb0a [file] [log] [blame]
Dean Troyerfda65b82011-11-02 12:13:33 -05001#!/usr/bin/env bash
2#
3# build_ci_config.sh - Build a config.ini for openstack-integration-tests
4# (https://github.com/openstack/openstack-integration-tests)
5
6function usage {
7 echo "$0 - Build config.ini for openstack-integration-tests"
8 echo ""
9 echo "Usage: $0 configfile"
10 exit 1
11}
12
13if [ ! "$#" -eq "1" ]; then
14 usage
15fi
16
17CONFIG_FILE=$1
18
19# Clean up any resources that may be in use
20cleanup() {
21 set +o errexit
22
23 # Mop up temporary files
24 if [ -n "$CONFIG_FILE_TMP" -a -e "$CONFIG_FILE_TMP" ]; then
25 rm -f $CONFIG_FILE_TMP
26 fi
27
28 # Kill ourselves to signal any calling process
29 trap 2; kill -2 $$
30}
31
32trap cleanup SIGHUP SIGINT SIGTERM
33
34# Keep track of the current directory
35TOOLS_DIR=$(cd $(dirname "$0") && pwd)
36TOP_DIR=`cd $TOOLS_DIR/..; pwd`
37
38# Abort if localrc is not set
39if [ ! -e $TOP_DIR/localrc ]; then
40 echo "You must have a localrc with ALL necessary passwords and configuration defined before proceeding."
41 echo "See stack.sh for required passwords."
42 exit 1
43fi
44
45# Source params
46source ./stackrc
47
48# Where Openstack code lives
49DEST=${DEST:-/opt/stack}
50
51# Process network configuration vars
52GUEST_NETWORK=${GUEST_NETWORK:-1}
53GUEST_RECREATE_NET=${GUEST_RECREATE_NET:-yes}
54
55GUEST_IP=${GUEST_IP:-192.168.$GUEST_NETWORK.50}
56GUEST_CIDR=${GUEST_CIDR:-$GUEST_IP/24}
57GUEST_NETMASK=${GUEST_NETMASK:-255.255.255.0}
58GUEST_GATEWAY=${GUEST_GATEWAY:-192.168.$GUEST_NETWORK.1}
59GUEST_MAC=${GUEST_MAC:-"02:16:3e:07:69:`printf '%02X' $GUEST_NETWORK`"}
60GUEST_RAM=${GUEST_RAM:-1524288}
61GUEST_CORES=${GUEST_CORES:-1}
62
63# Use the GUEST_IP unless an explicit IP is set by ``HOST_IP``
64HOST_IP=${HOST_IP:-$GUEST_IP}
65# Use the first IP if HOST_IP still is not set
66if [ ! -n "$HOST_IP" ]; then
67 HOST_IP=`LC_ALL=C /sbin/ifconfig | grep -m 1 'inet addr:'| cut -d: -f2 | awk '{print $1}'`
68fi
69
70RABBIT_HOST=${RABBIT_HOST:-localhost}
71
72# Glance connection info. Note the port must be specified.
73GLANCE_HOSTPORT=${GLANCE_HOSTPORT:-$HOST_IP:9292}
74set `echo $GLANCE_HOSTPORT | tr ':' ' '`
75GLANCE_HOST=$1
76GLANCE_PORT=$2
77
78CONFIG_FILE_TMP=$(mktemp $CONFIG_FILE.XXXXXX)
79cat >$CONFIG_FILE_TMP <<EOF
80[environment]
81aki_location = include/sample_vm/natty-server-cloudimg-amd64-vmlinuz-virtual
82#ari_location = include/sample_vm/natty-server-cloudimg-amd64-loader
83ami_location = include/sample_vm/natty-server-cloudimg-amd64.img
84
85[glance]
86host = $GLANCE_HOST
87apiver = v1.0
88port = $GLANCE_PORT
89image_id = 1
90
91[keystone]
92service_host = $HOST_IP
93service_port = 5000
Dean Troyer5db287c2011-11-02 21:21:36 -050094apiver = v2.0
Dean Troyerfda65b82011-11-02 12:13:33 -050095user = admin
96password = $ADMIN_PASSWORD
97tenant_id = 1
98
99[nova]
100host = $HOST_IP
101port = 8774
102apiver = v1.1
103project = admin
104user = admin
105key = $SERVICE_TOKEN
106ssh_timeout = 300
107build_timeout = 300
108flavor_ref = 1
109flavor_ref_alt = 2
110
111[rabbitmq]
112host = $RABBIT_HOST
113user = guest
114password = $RABBIT_PASSWORD
115
116[swift]
117auth_host = $HOST_IP
118auth_port = 443
119auth_prefix = /auth/
120auth_ssl = yes
121account = system
122username = root
123password = password
124
125EOF
Dean Troyer5db287c2011-11-02 21:21:36 -0500126mv $CONFIG_FILE_TMP $CONFIG_FILE