summaryrefslogtreecommitdiffstats
path: root/src/ceph/qa/workunits/rbd/run_devstack_tempest.sh
blob: 8e627ddf6c8d94ff3d440107ac841b3e2dbd8f5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/bin/bash -ex

STACK_BRANCH=stable/ocata

STACK_USER=${STACK_USER:-stack}
STACK_GROUP=${STACK_GROUP:-stack}
TEMPEST_USER=${TEMPEST_USER:-tempest}

STACK_HOME_PATH=${STACK_HOME_PATH:-/home/stack}
STACK_OPT_PATH=${STACK_OPT_PATH:-/opt/stack}
STACK_LOG_PATH=${STACK_LOG_PATH:-/mnt/log/stack}

cleanup() {
  echo "**** cleanup"

  # ensure teuthology can clean up the logs
  [ -d ${STACK_LOG_PATH} ] && chmod -R a+rwx ${STACK_LOG_PATH}

  mkdir ${STACK_LOG_PATH}/etc
  cp -dpr /etc/cinder ${STACK_LOG_PATH}/etc || true
  cp -dpr /etc/glance ${STACK_LOG_PATH}/etc || true
  cp -dpr /etc/nova ${STACK_LOG_PATH}/etc || true

  # kill all OpenStack services
  if [ -d ${STACK_OPT_PATH}/devstack ]; then
    cd ${STACK_OPT_PATH}/devstack
    sudo -H -u ${STACK_USER} ./unstack.sh || true
  fi
}

trap cleanup INT TERM EXIT

# devstack configuration adapted from upstream gate
cat<<EOF > ${STACK_HOME_PATH}/local.conf
[[local|localrc]]
Q_USE_DEBUG_COMMAND=True
NETWORK_GATEWAY=10.1.0.1
USE_SCREEN=False
DATA_DIR=${STACK_OPT_PATH}/data
ACTIVE_TIMEOUT=90
BOOT_TIMEOUT=90
ASSOCIATE_TIMEOUT=60
TERMINATE_TIMEOUT=60
MYSQL_PASSWORD=secretmysql
DATABASE_PASSWORD=secretdatabase
RABBIT_PASSWORD=secretrabbit
ADMIN_PASSWORD=secretadmin
SERVICE_PASSWORD=secretservice
SERVICE_TOKEN=111222333444
SWIFT_HASH=1234123412341234
ROOTSLEEP=0
NOVNC_FROM_PACKAGE=True
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
SKIP_EXERCISES=boot_from_volume,bundle,client-env,euca
SYSLOG=False
SCREEN_LOGDIR=${STACK_LOG_PATH}/screen-logs
LOGFILE=${STACK_LOG_PATH}/devstacklog.txt
VERBOSE=True
FIXED_RANGE=10.1.0.0/20
IPV4_ADDRS_SAFE_TO_USE=10.1.0.0/20
FLOATING_RANGE=172.24.5.0/24
PUBLIC_NETWORK_GATEWAY=172.24.5.1
FIXED_NETWORK_SIZE=4096
VIRT_DRIVER=libvirt
SWIFT_REPLICAS=1
LOG_COLOR=False
UNDO_REQUIREMENTS=False
CINDER_PERIODIC_INTERVAL=10

export OS_NO_CACHE=True
OS_NO_CACHE=True
CEILOMETER_BACKEND=mysql
LIBS_FROM_GIT=
DATABASE_QUERY_LOGGING=True
EBTABLES_RACE_FIX=True
CINDER_SECURE_DELETE=False
CINDER_VOLUME_CLEAR=none
LIBVIRT_TYPE=kvm
VOLUME_BACKING_FILE_SIZE=24G
TEMPEST_HTTP_IMAGE=http://git.openstack.org/static/openstack.png
FORCE_CONFIG_DRIVE=False

CINDER_ENABLED_BACKENDS=ceph:ceph
TEMPEST_STORAGE_PROTOCOL=ceph
REMOTE_CEPH=True
enable_plugin devstack-plugin-ceph git://git.openstack.org/openstack/devstack-plugin-ceph
EOF

cat<<EOF > ${STACK_HOME_PATH}/start.sh
#!/bin/bash -ex
cd ${STACK_OPT_PATH}
git clone https://git.openstack.org/openstack-dev/devstack -b ${STACK_BRANCH}

# TODO workaround for https://github.com/pypa/setuptools/issues/951
git clone https://git.openstack.org/openstack/requirements.git -b ${STACK_BRANCH}
sed -i 's/appdirs===1.4.0/appdirs===1.4.3/' requirements/upper-constraints.txt

cd devstack
cp ${STACK_HOME_PATH}/local.conf .

export PYTHONUNBUFFERED=true
export PROJECTS="openstack/devstack-plugin-ceph"

./stack.sh
EOF

# execute devstack
chmod 0755 ${STACK_HOME_PATH}/start.sh
sudo -H -u ${STACK_USER} ${STACK_HOME_PATH}/start.sh

# switch to rbd profile caps
ceph auth caps client.cinder mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images'
ceph auth caps client.cinder-bak mon 'profile rbd' osd 'profile rbd pool=backups, profile rbd pool=volumes'
ceph auth caps client.glance mon 'profile rbd' osd 'profile rbd pool=images'

# execute tempest
chown -R ${TEMPEST_USER}:${STACK_GROUP} ${STACK_OPT_PATH}/tempest
chown -R ${TEMPEST_USER}:${STACK_GROUP} ${STACK_OPT_PATH}/data/tempest
chmod -R o+rx ${STACK_OPT_PATH}/devstack/files

cd ${STACK_OPT_PATH}/tempest
sudo -H -u ${TEMPEST_USER} tox -eall-plugin -- '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario)|(^cinder\.tests.tempest))' --concurrency=3