22#
33# configure_tempest.sh - Build a tempest configuration file from devstack
44
5+ echo " **************************************************"
6+ echo " Configuring Tempest"
7+ echo " **************************************************"
8+
9+ # This script exits on an error so that errors don't compound and you see
10+ # only the first error that occured.
11+ set -o errexit
12+
13+ # Print the commands being run so that we can see the command that triggers
14+ # an error. It is also useful for following allowing as the install occurs.
15+ set -o xtrace
16+
517function usage {
618 echo " $0 - Build tempest.conf"
719 echo " "
8- echo " Usage: $0 [configdir] "
20+ echo " Usage: $0 "
921 exit 1
1022}
1123
1224if [ " $1 " = " -h" ]; then
1325 usage
1426fi
1527
16- # Clean up any resources that may be in use
17- cleanup () {
18- set +o errexit
19-
20- # Mop up temporary files
21- if [ -n " $CONFIG_INI_TMP " -a -e " $CONFIG_INI_TMP " ]; then
22- rm -f $CONFIG_INI_TMP
23- fi
24-
25- # Kill ourselves to signal any calling process
26- trap 2; kill -2 $$
27- }
28-
29- trap cleanup SIGHUP SIGINT SIGTERM SIGQUIT EXIT
30-
3128# Keep track of the current directory
3229TOOLS_DIR=$( cd $( dirname " $0 " ) && pwd)
3330TOP_DIR=$( cd $TOOLS_DIR /..; pwd)
@@ -37,103 +34,52 @@ TOP_DIR=$(cd $TOOLS_DIR/..; pwd)
3734
3835# Abort if localrc is not set
3936if [ ! -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."
37+ echo " You must have a localrc with necessary basic configuration defined before proceeding."
4238 exit 1
4339fi
4440
45- # Source params
46- source ./stackrc
41+ # Abort if openrc is not set
42+ if [ ! -e $TOP_DIR /openrc ]; then
43+ echo " You must have an openrc with ALL necessary passwords and credentials defined before proceeding."
44+ exit 1
45+ fi
4746
48- # Set defaults not configured by stackrc
49- TENANT=${TENANT:- admin}
50- USERNAME=${USERNAME:- admin}
51- IDENTITY_HOST=${IDENTITY_HOST:- $HOST_IP }
52- IDENTITY_PORT=${IDENTITY_PORT:- 5000}
53- IDENTITY_API_VERSION=${IDENTITY_API_VERSION:- 2.0}
47+ # Source params
48+ source $TOP_DIR /openrc
5449
5550# Where Openstack code lives
5651DEST=${DEST:-/ opt/ stack}
5752
5853TEMPEST_DIR=$DEST /tempest
59-
60- CONFIG_DIR=${1:- $TEMPEST_DIR / etc}
61- CONFIG_INI=$CONFIG_DIR /config.ini
54+ CONFIG_DIR=$TEMPEST_DIR /etc
6255TEMPEST_CONF=$CONFIG_DIR /tempest.conf
6356
64- if [ ! -f $DEST /.ramdisk ]; then
65- # Process network configuration vars
66- GUEST_NETWORK=${GUEST_NETWORK:- 1}
67- GUEST_RECREATE_NET=${GUEST_RECREATE_NET:- yes}
68-
69- GUEST_IP=${GUEST_IP:- 192.168.$GUEST_NETWORK .50}
70- GUEST_CIDR=${GUEST_CIDR:- $GUEST_IP / 24}
71- GUEST_NETMASK=${GUEST_NETMASK:- 255.255.255.0}
72- GUEST_GATEWAY=${GUEST_GATEWAY:- 192.168.$GUEST_NETWORK .1}
73- GUEST_MAC=${GUEST_MAC:- " 02:16:3e:07:69:` printf ' %02X' $GUEST_NETWORK ` " }
74- GUEST_RAM=${GUEST_RAM:- 1524288}
75- GUEST_CORES=${GUEST_CORES:- 1}
76- fi
77-
7857# Use the GUEST_IP unless an explicit IP is set by ``HOST_IP``
7958HOST_IP=${HOST_IP:- $GUEST_IP }
8059# Use the first IP if HOST_IP still is not set
8160if [ ! -n " $HOST_IP " ]; then
8261 HOST_IP=` LC_ALL=C /sbin/ifconfig | grep -m 1 ' inet addr:' | cut -d: -f2 | awk ' {print $1}' `
8362fi
8463
85- RABBIT_HOST=${RABBIT_HOST:- localhost}
86-
87- # Glance connection info. Note the port must be specified.
88- GLANCE_HOSTPORT=${GLANCE_HOSTPORT:- $HOST_IP : 9292}
89- set ` echo $GLANCE_HOSTPORT | tr ' :' ' ' `
90- GLANCE_HOST=$1
91- GLANCE_PORT=$2
92-
93- # Set up downloaded images
94- # Defaults to use first image
95-
96- IMAGE_DIR=" "
97- IMAGE_NAME=" "
98- for imagedir in $TOP_DIR /files/images/* ; do
99- KERNEL=" "
100- RAMDISK=" "
101- IMAGE=" "
102- IMAGE_RAMDISK=" "
103- KERNEL=$( for f in " $imagedir /" * -vmlinuz* ; do
104- [ -f " $f " ] && echo " $f " && break ; done ; true)
105- [ -n " $KERNEL " ] && ln -sf $KERNEL $imagedir /kernel
106- RAMDISK=$( for f in " $imagedir /" * -initrd* ; do
107- [ -f " $f " ] && echo " $f " && break ; done ; true)
108- [ -n " $RAMDISK " ] && ln -sf $RAMDISK $imagedir /ramdisk && \
109- IMAGE_RAMDISK=" ari_location = $imagedir /ramdisk"
110- IMAGE=$( for f in " $imagedir /" * .img; do
111- [ -f " $f " ] && echo " $f " && break ; done ; true)
112- if [ -n " $IMAGE " ]; then
113- ln -sf $IMAGE $imagedir /disk
114- # Save the first image directory that contains a disk image link
115- if [ -z " $IMAGE_DIR " ]; then
116- IMAGE_DIR=$imagedir
117- IMAGE_NAME=$( basename ${IMAGE% .img} )
118- fi
119- fi
120- done
121- if [[ -n " $IMAGE_NAME " ]]; then
122- # Get the image UUID
123- IMAGE_UUID=$( nova image-list | grep " $IMAGE_NAME " | cut -d' |' -f2)
124- # Strip spaces off
125- IMAGE_UUID=$( echo $IMAGE_UUID )
64+ # Hacky way of getting first ami image
65+ IMAGE_UUID=` glance index | egrep ami | head -1 | cut -d" " -f1`
66+ IMAGE_UUID_ALT=$IMAGE_UUID
67+ if [[ $NUM_IMAGES -gt 1 ]]; then
68+ IMAGE_UUID_ALT=${IMAGES[1]}
12669fi
12770
12871# Create tempest.conf from tempest.conf.tpl
72+ # copy every time, because the image UUIDS are going to change
73+ cp $TEMPEST_CONF .tpl $TEMPEST_CONF
12974
130- if [[ ! -r $TEMPEST_CONF ]] ; then
131- cp $TEMPEST_CONF .tpl $TEMPEST_CONF
132- fi
75+ ADMIN_USERNAME= ${ADMIN_USERNAME :- admin}
76+ ADMIN_PASSWORD= ${ADMIN_PASSWORD :- secrete}
77+ ADMIN_TENANT_NAME= ${ADMIN_TENANT :- admin}
13378
13479IDENTITY_USE_SSL=${IDENTITY_USE_SSL:- False}
80+ IDENTITY_HOST=${IDENTITY_HOST:- 127.0.0.1}
13581IDENTITY_PORT=${IDENTITY_PORT:- 5000}
136- IDENTITY_API_VERSION={ $IDENTITY_API_VERSION :- v2.0} # Note: need v for now...
82+ IDENTITY_API_VERSION=" v2.0" # Note: need v for now...
13783# TODO(jaypipes): This is dumb and needs to be removed
13884# from the Tempest configuration file entirely...
13985IDENTITY_PATH=${IDENTITY_PATH:- tokens}
@@ -144,35 +90,34 @@ IDENTITY_STRATEGY=${IDENTITY_STRATEGY:-keystone}
14490# OS_USERNAME et all should be defined in openrc.
14591OS_USERNAME=${OS_USERNAME:- demo}
14692OS_TENANT_NAME=${OS_TENANT_NAME:- demo}
147- OS_PASSWORD=${OS_PASSWORD:- secrete }
93+ OS_PASSWORD=${OS_PASSWORD: $ADMIN_PASSWORD }
14894
149- # TODO(jaypipes): Support multiple regular user accounts instead
150- # of using the same regular user account for the alternate user...
151- ALT_USERNAME=$OS_USERNAME
95+ # See files/keystone_data.sh where alt_demo user
96+ # and tenant are set up...
97+ ALT_USERNAME=${ALT_USERNAME:- alt_demo}
98+ ALT_TENANT_NAME=${ALT_TENANT_NAME:- alt_demo}
15299ALT_PASSWORD=$OS_PASSWORD
153- ALT_TENANT_NAME=$OS_TENANT_NAME
154-
155- # TODO(jaypipes): Support multiple images instead of plopping
156- # the IMAGE_UUID into both the image_ref and image_ref_alt slots
157- IMAGE_UUID_ALT=$IMAGE_UUID
158100
159101# TODO(jaypipes): Support configurable flavor refs here...
160102FLAVOR_REF=1
161103FLAVOR_REF_ALT=2
162104
163- ADMIN_USERNAME={$ADMIN_USERNAME :-admin}
164- ADMIN_PASSWORD={$ADMIN_PASSWORD :-secrete}
165- ADMIN_TENANT_NAME={$ADMIN_TENANT :-admin}
166-
167105# Do any of the following need to be configurable?
168106COMPUTE_CATALOG_TYPE=compute
169107COMPUTE_CREATE_IMAGE_ENABLED=True
170- COMPUTE_RESIZE_AVAILABLE=True
108+ COMPUTE_RESIZE_AVAILABLE=False # not supported with QEMU...
171109COMPUTE_LOG_LEVEL=ERROR
110+ BUILD_INTERVAL=10
111+ BUILD_TIMEOUT=600
112+
113+ # Image test configuration options...
114+ IMAGE_HOST=${IMAGE_HOST:- 127.0.0.1}
115+ IMAGE_PORT=${IMAGE_PORT:- 9292}
116+ IMAGE_API_VERSION=" 1"
172117
173118sed -e "
174119 s,%IDENTITY_USE_SSL%,$IDENTITY_USE_SSL ,g;
175- s,%IDENTITY_HOST%,$HOST_IP ,g;
120+ s,%IDENTITY_HOST%,$IDENTITY_HOST ,g;
176121 s,%IDENTITY_PORT%,$IDENTITY_PORT ,g;
177122 s,%IDENTITY_API_VERSION%,$IDENTITY_API_VERSION ,g;
178123 s,%IDENTITY_PATH%,$IDENTITY_PATH ,g;
@@ -187,97 +132,24 @@ sed -e "
187132 s,%COMPUTE_CREATE_IMAGE_ENABLED%,$COMPUTE_CREATE_IMAGE_ENABLED ,g;
188133 s,%COMPUTE_RESIZE_AVAILABLE%,$COMPUTE_RESIZE_AVAILABLE ,g;
189134 s,%COMPUTE_LOG_LEVEL%,$COMPUTE_LOG_LEVEL ,g;
135+ s,%BUILD_INTERVAL%,$BUILD_INTERVAL ,g;
136+ s,%BUILD_TIMEOUT%,$BUILD_TIMEOUT ,g;
190137 s,%IMAGE_ID%,$IMAGE_UUID ,g;
191138 s,%IMAGE_ID_ALT%,$IMAGE_UUID_ALT ,g;
192139 s,%FLAVOR_REF%,$FLAVOR_REF ,g;
193140 s,%FLAVOR_REF_ALT%,$FLAVOR_REF_ALT ,g;
141+ s,%IMAGE_HOST%,$IMAGE_HOST ,g;
142+ s,%IMAGE_PORT%,$IMAGE_PORT ,g;
143+ s,%IMAGE_API_VERSION%,$IMAGE_API_VERSION ,g;
194144 s,%ADMIN_USERNAME%,$ADMIN_USERNAME ,g;
195145 s,%ADMIN_PASSWORD%,$ADMIN_PASSWORD ,g;
196146 s,%ADMIN_TENANT_NAME%,$ADMIN_TENANT_NAME ,g;
197147" -i $TEMPEST_CONF
198148
199- # Create config.ini
200-
201- CONFIG_INI_TMP=$( mktemp $CONFIG_INI .XXXXXX)
202- if [ " $UPLOAD_LEGACY_TTY " ]; then
203- cat > $CONFIG_INI_TMP << EOF
204- [environment]
205- aki_location = $TOP_DIR /files/images/aki-tty/image
206- ari_location = $TOP_DIR /files/images/ari-tty/image
207- ami_location = $TOP_DIR /files/images/ami-tty/image
208- image_ref = 3
209- image_ref_alt = 3
210- flavor_ref = 1
211- flavor_ref_alt = 2
212-
213- [glance]
214- host = $GLANCE_HOST
215- apiver = v1
216- port = $GLANCE_PORT
217- image_id = 3
218- image_id_alt = 3
219- tenant_id = 1
220- EOF
221- else
222- cat > $CONFIG_INI_TMP << EOF
223- [environment]
224- aki_location = $IMAGE_DIR /kernel
225- ami_location = $IMAGE_DIR /disk
226- $IMAGE_RAMDISK
227- image_ref = 2
228- image_ref_alt = 2
229- flavor_ref = 1
230- flavor_ref_alt = 2
231-
232- [glance]
233- host = $GLANCE_HOST
234- apiver = v1
235- port = $GLANCE_PORT
236- image_id = 2
237- image_id_alt = 2
238- tenant_id = 1
239- EOF
240- fi
241-
242- cat >> $CONFIG_INI_TMP << EOF
243-
244- [keystone]
245- service_host = $HOST_IP
246- service_port = 5000
247- apiver = v2.0
248- user = admin
249- password = $ADMIN_PASSWORD
250- tenant_name = admin
251-
252- [nova]
253- host = $HOST_IP
254- port = 8774
255- apiver = v1.1
256- project = admin
257- user = admin
258- key = $ADMIN_PASSWORD
259- ssh_timeout = 300
260- build_timeout = 300
261- flavor_ref = 1
262- flavor_ref_alt = 2
263- multi_node = no
264-
265- [rabbitmq]
266- host = $RABBIT_HOST
267- user = guest
268- password = $RABBIT_PASSWORD
269-
270- [swift]
271- auth_host = $HOST_IP
272- auth_port = 443
273- auth_prefix = /auth/
274- auth_ssl = yes
275- account = system
276- username = root
277- password = password
278-
279- EOF
280- mv $CONFIG_INI_TMP $CONFIG_INI
281- CONFIG_INI_TMP=" "
149+ echo " Created tempest configuration file:"
150+ cat $TEMPEST_CONF
282151
283- trap - SIGHUP SIGINT SIGTERM SIGQUIT EXIT
152+ echo " \n"
153+ echo " **************************************************"
154+ echo " Finished Configuring Tempest"
155+ echo " **************************************************"
0 commit comments