Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / qa / workunits / rbd / run_devstack_tempest.sh
1 #!/bin/bash -ex
2
3 STACK_BRANCH=stable/ocata
4
5 STACK_USER=${STACK_USER:-stack}
6 STACK_GROUP=${STACK_GROUP:-stack}
7 TEMPEST_USER=${TEMPEST_USER:-tempest}
8
9 STACK_HOME_PATH=${STACK_HOME_PATH:-/home/stack}
10 STACK_OPT_PATH=${STACK_OPT_PATH:-/opt/stack}
11 STACK_LOG_PATH=${STACK_LOG_PATH:-/mnt/log/stack}
12
13 cleanup() {
14   echo "**** cleanup"
15
16   # ensure teuthology can clean up the logs
17   [ -d ${STACK_LOG_PATH} ] && chmod -R a+rwx ${STACK_LOG_PATH}
18
19   mkdir ${STACK_LOG_PATH}/etc
20   cp -dpr /etc/cinder ${STACK_LOG_PATH}/etc || true
21   cp -dpr /etc/glance ${STACK_LOG_PATH}/etc || true
22   cp -dpr /etc/nova ${STACK_LOG_PATH}/etc || true
23
24   # kill all OpenStack services
25   if [ -d ${STACK_OPT_PATH}/devstack ]; then
26     cd ${STACK_OPT_PATH}/devstack
27     sudo -H -u ${STACK_USER} ./unstack.sh || true
28   fi
29 }
30
31 trap cleanup INT TERM EXIT
32
33 # devstack configuration adapted from upstream gate
34 cat<<EOF > ${STACK_HOME_PATH}/local.conf
35 [[local|localrc]]
36 Q_USE_DEBUG_COMMAND=True
37 NETWORK_GATEWAY=10.1.0.1
38 USE_SCREEN=False
39 DATA_DIR=${STACK_OPT_PATH}/data
40 ACTIVE_TIMEOUT=90
41 BOOT_TIMEOUT=90
42 ASSOCIATE_TIMEOUT=60
43 TERMINATE_TIMEOUT=60
44 MYSQL_PASSWORD=secretmysql
45 DATABASE_PASSWORD=secretdatabase
46 RABBIT_PASSWORD=secretrabbit
47 ADMIN_PASSWORD=secretadmin
48 SERVICE_PASSWORD=secretservice
49 SERVICE_TOKEN=111222333444
50 SWIFT_HASH=1234123412341234
51 ROOTSLEEP=0
52 NOVNC_FROM_PACKAGE=True
53 ENABLED_SERVICES=c-api,c-bak,c-sch,c-vol,ceilometer-acentral,ceilometer-acompute,ceilometer-alarm-evaluator,ceilometer-alarm-notifier,ceilometer-anotification,ceilometer-api,ceilometer-collector,cinder,dstat,g-api,g-reg,horizon,key,mysql,n-api,n-cauth,n-cond,n-cpu,n-novnc,n-obj,n-sch,peakmem_tracker,placement-api,q-agt,q-dhcp,q-l3,q-meta,q-metering,q-svc,rabbit,s-account,s-container,s-object,s-proxy,tempest
54 SKIP_EXERCISES=boot_from_volume,bundle,client-env,euca
55 SYSLOG=False
56 SCREEN_LOGDIR=${STACK_LOG_PATH}/screen-logs
57 LOGFILE=${STACK_LOG_PATH}/devstacklog.txt
58 VERBOSE=True
59 FIXED_RANGE=10.1.0.0/20
60 IPV4_ADDRS_SAFE_TO_USE=10.1.0.0/20
61 FLOATING_RANGE=172.24.5.0/24
62 PUBLIC_NETWORK_GATEWAY=172.24.5.1
63 FIXED_NETWORK_SIZE=4096
64 VIRT_DRIVER=libvirt
65 SWIFT_REPLICAS=1
66 LOG_COLOR=False
67 UNDO_REQUIREMENTS=False
68 CINDER_PERIODIC_INTERVAL=10
69
70 export OS_NO_CACHE=True
71 OS_NO_CACHE=True
72 CEILOMETER_BACKEND=mysql
73 LIBS_FROM_GIT=
74 DATABASE_QUERY_LOGGING=True
75 EBTABLES_RACE_FIX=True
76 CINDER_SECURE_DELETE=False
77 CINDER_VOLUME_CLEAR=none
78 LIBVIRT_TYPE=kvm
79 VOLUME_BACKING_FILE_SIZE=24G
80 TEMPEST_HTTP_IMAGE=http://git.openstack.org/static/openstack.png
81 FORCE_CONFIG_DRIVE=False
82
83 CINDER_ENABLED_BACKENDS=ceph:ceph
84 TEMPEST_STORAGE_PROTOCOL=ceph
85 REMOTE_CEPH=True
86 enable_plugin devstack-plugin-ceph git://git.openstack.org/openstack/devstack-plugin-ceph
87 EOF
88
89 cat<<EOF > ${STACK_HOME_PATH}/start.sh
90 #!/bin/bash -ex
91 cd ${STACK_OPT_PATH}
92 git clone https://git.openstack.org/openstack-dev/devstack -b ${STACK_BRANCH}
93
94 # TODO workaround for https://github.com/pypa/setuptools/issues/951
95 git clone https://git.openstack.org/openstack/requirements.git -b ${STACK_BRANCH}
96 sed -i 's/appdirs===1.4.0/appdirs===1.4.3/' requirements/upper-constraints.txt
97
98 cd devstack
99 cp ${STACK_HOME_PATH}/local.conf .
100
101 export PYTHONUNBUFFERED=true
102 export PROJECTS="openstack/devstack-plugin-ceph"
103
104 ./stack.sh
105 EOF
106
107 # execute devstack
108 chmod 0755 ${STACK_HOME_PATH}/start.sh
109 sudo -H -u ${STACK_USER} ${STACK_HOME_PATH}/start.sh
110
111 # switch to rbd profile caps
112 ceph auth caps client.cinder mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images'
113 ceph auth caps client.cinder-bak mon 'profile rbd' osd 'profile rbd pool=backups, profile rbd pool=volumes'
114 ceph auth caps client.glance mon 'profile rbd' osd 'profile rbd pool=images'
115
116 # execute tempest
117 chown -R ${TEMPEST_USER}:${STACK_GROUP} ${STACK_OPT_PATH}/tempest
118 chown -R ${TEMPEST_USER}:${STACK_GROUP} ${STACK_OPT_PATH}/data/tempest
119 chmod -R o+rx ${STACK_OPT_PATH}/devstack/files
120
121 cd ${STACK_OPT_PATH}/tempest
122 sudo -H -u ${TEMPEST_USER} tox -eall-plugin -- '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario)|(^cinder\.tests.tempest))' --concurrency=3