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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
#!/bin/bash
##############################################################################
# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
# This file is to prepare the openstack certs and pod description that required
# for Bottlenecks tests.
usage="Script to prepare the configurations before testing.
usage:
bash $(basename "$0") [-h|--help] [-i <installer>] [--debug]
where:
-h|--help show the help text
-i|--installer input the name of the installer
<installer> one of the following:
(apex, compass, fuel, joid)
--debug
debug option switch
examples:
$(basename "$0") -i compass"
# Debug option
redirect="/dev/null"
# Process input variables
while [[ $# > 0 ]]
do
key="$1"
case $key in
-h|--help)
echo "$usage"
exit 0
shift
;;
-i|--installer)
INSTALLER_TYPE="$2"
shift
;;
--debug)
redirect="/dev/stdout"
shift
;;
*)
echo "unkown option $1 $2"
exit 1
;;
esac
shift
done
# Define alias for log printing
info () {
logger -s -t "BOTTLENECKS INFO" "$*"
}
error () {
logger -s -t "BOTTLENECKS ERROR" "$*"
exit 1
}
# Repo and configs
RELENG_REPO="/home/releng"
BOTTLENECKS_CONFIG=/tmp
OPENRC=${BOTTLENECKS_CONFIG}/admin_rc.sh
OS_CACERT=${BOTTLENECKS_CONFIG}/os_cacert
##############################################################################
# Preparing scripts for openstack and pod configs for OPNFV Installers
##############################################################################
# Define Variables
info "Downloading Releng fetch_os_creds script for openstack/pod configs of OPNFV installers"
[ -d ${RELENG_REPO} ] && rm -rf ${RELENG_REPO}
git clone https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO} >${redirect}
info "Downloading Yardstick for pod configs of OPNFV installers"
YARDSTICK_REPO="/home/yardstick"
[ -d ${YARDSTICK_REPO} ] && rm -rf ${YARDSTICK_REPO}
git clone https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO} >${redirect}
# Preparing configuration files for testing
if [[ ${INSTALLER_TYPE} != "" ]]; then
# Preparing OpenStack RC and Cacert files
info "fetching os credentials from $INSTALLER_TYPE"
if [[ $INSTALLER_TYPE == 'compass' ]]; then
export BRANCH="master"
INSTALLER_IP=192.168.200.2
if [[ ${BRANCH} == 'master' ]]; then
${RELENG_REPO}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} -o ${OS_CACERT} >${redirect}
else
${RELENG_REPO}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} >${redirect}
fi
elif [[ $INSTALLER_TYPE == 'apex' ]]; then
export BRANCH="stable/fraser"
INSTALLER_IP=$(sudo virsh domifaddr undercloud | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
${RELENG_REPO}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} -o ${OS_CACERT} >${redirect}
echo ${cmd}
${cmd}
else
error "The installer is not specified"
exit 1
fi
# Finding and crearting POD description files from different deployments
if [[ ${INSTALLER_TYPE} == 'compass' ]]; then
cmd="sudo cp ${YARDSTICK_REPO}/etc/yardstick/nodes/compass_sclab_virtual/pod.yaml \
${BOTTLENECKS_CONFIG}"
info ${cmd}
${cmd}
elif [[ ${INSTALLER_TYPE} == 'apex' ]]; then
sudo pip install virtualenv
sudo virtualenv venv
source venv/bin/activate
sudo pip install -e ${RELENG_REPO}/modules/ >/dev/null
sudo pip install netaddr
options="-u stack -k /root/.ssh/id_rsa"
cmd="sudo python ${RELENG_REPO}/utils/create_pod_file.py -t ${INSTALLER_TYPE} \
-i ${INSTALLER_IP} ${options} -f ${BOTTLENECKS_CONFIG}/pod.yaml"
info ${cmd}
${cmd}
ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
cmd="sudo scp $ssh_options stack@${INSTALLER_IP}:~/.ssh/id_rsa ${BOTTLENECKS_CONFIG}/id_rsa"
info ${cmd}
${cmd}
deactivate
fi
##############################################################################
# Check the existence of the output configs for OPNFV Installers
##############################################################################
# Checking the pod decription file
if [ -f ${BOTTLENECKS_CONFIG}/pod.yaml ]; then
info "FILE - ${BOTTLENECKS_CONFIG}/pod.yaml:"
cat ${BOTTLENECKS_CONFIG}/pod.yaml
else
error "Cannot find file ${BOTTLENECKS_CONFIG}/pod.yaml. Please check if it is existing."
sudo ls -al ${BOTTLENECKS_CONFIG}
fi
# Checking the openstack rc and os_cacert file
if [[ -f ${OPENRC} ]]; then
info "Opentack credentials path is ${OPENRC}"
if [[ -f ${OS_CACERT} ]]; then
info "Writing ${OS_CACERT} to ${OPENRC}"
echo "export OS_CACERT=${OS_CACERT}" >> ${OPENRC}
cat ${OPENRC}
else
info "Couldn't find openstack cacert file: ${OS_CACERT}, please check if the it's been properly provided."
fi
else
error "Couldn't find openstack rc file: ${OPENRC}, please check if the it's been properly provided."
exit 1
fi
# Checking ssh key id_rsa
if [[ -f "/tmp/id_rsa" ]]; then
info "Path of ssh key file for openstack nodes is /tmp/id_rsa"
else
info "Couldn't find the ssh key file for openstack nodes. If you are using user/pwd in pod.yaml, please ignore."
fi
fi
|