blob: 6c294bc1ec98e5de60a1aca46fc54e26f5f1a252 (
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
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
|
#!/bin/bash
# Copyright 2016 AT&T Intellectual Property, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# What this is: Deployment test for the Cloudify Hello World blueprint.
#
# Status: this is a work in progress, under test.
#
# How to use:
# $ bash vHello.sh [cloudify-cli|cloudify-manager] [setup|start|clean]
# cloudify-cli: use Cloudify CLI
# cloudify-manager: use Cloudify Manager
# setup: setup test environment
# start: run test
# clean: cleanup after test
pass() {
echo "Hooray!"
set +x #echo off
exit 0
}
# Use this to trigger fail() at the right places
# if [ "$RESULT" == "Test Failed!" ]; then fail; fi
fail() {
echo "Test Failed!"
set +x
exit 1
}
select_manager() {
echo "vHello.sh: select manager to use"
MANAGER_IP=$(openstack server list | awk "/ cloudify-manager-server / { print \$9 }")
cfy use -t $MANAGER_IP
if [ $? -eq 1 ]; then fail; fi
}
start() {
echo "vHello.sh: reset blueprints folder"
if [[ -d /tmp/cloudify/blueprints ]]; then rm -rf /tmp/cloudify/blueprints; fi
mkdir /tmp/cloudify/blueprints
cd /tmp/cloudify/blueprints
echo "vHello.sh: clone cloudify-hello-world-example"
git clone https://github.com/cloudify-cosmo/cloudify-hello-world-example.git
cd cloudify-hello-world-example
git checkout 3.4.1-build
echo "vHello.sh: create blueprint inputs file"
# Set host image per Cloudify agent compatibility: http://docs.getcloudify.org/3.4.0/agents/overview/
cat <<EOF >vHello-inputs.yaml
image: CentOS-7-x86_64-GenericCloud-1607
flavor: m1.small
agent_user: centos
webserver_port: 8080
EOF
echo "vHello.sh: activate cloudify Virtualenv"
source ~/cloudify/venv/bin/activate
echo "vHello.sh: setup OpenStack CLI environment"
source /tmp/cloudify/admin-openrc.sh
echo "vHello.sh: initialize cloudify environment"
cd /tmp/cloudify/blueprints
cfy init -r
if [[ "$1" == "cloudify-manager" ]]; then select_manager; fi
echo "vHello.sh: upload blueprint to manager"
cfy blueprints delete -b cloudify-hello-world-example
cfy blueprints upload -p cloudify-hello-world-example/blueprint.yaml -b cloudify-hello-world-example
if [ $? -eq 1 ]; then fail; fi
echo "vHello.sh: create vHello deployment"
cd /tmp/cloudify/blueprints/cloudify-hello-world-example
cfy deployments create --debug -d vHello -i vHello-inputs.yaml -b cloudify-hello-world-example
if [ $? -eq 1 ]; then fail; fi
echo "vHello.sh: execute 'install' workflow for vHello deployment"
cfy executions start -w install -d vHello --timeout 1800
if [ $? -eq 1 ]; then fail; fi
echo "vHello.sh: verify vHello server is running"
SERVER_IP=$(cfy deployments outputs -d vHello | awk "/ Value: / { print \$2 }")
apt-get install -y curl
if [[ $(curl $SERVER_IP | grep -c "Hello, World!") != 1 ]]; then fail; fi
pass
}
clean() {
echo "vHello.sh: activate cloudify Virtualenv"
source ~/cloudify/venv/bin/activate
echo "vHello.sh: setup OpenStack CLI environment"
source /tmp/cloudify/admin-openrc.sh
echo "vHello.sh: initialize cloudify environment"
cd /tmp/cloudify/blueprints
cfy init -r
if [[ "$1" == "cloudify-manager" ]]; then select_manager; fi
echo "vHello.sh: uninstall vHello blueprint"
cfy executions start -w uninstall -d vHello
echo "vHello.sh: delete vHello blueprint"
cfy deployments delete -d vHello
if [ $? -eq 1 ]; then fail; fi
pass
}
if [[ "$2" == "setup" ]]; then
echo "vHello.sh: Setup temp test folder /tmp/cloudify and copy this script there"
mkdir /tmp/cloudify
chmod 777 /tmp/cloudify/
cp $0 /tmp/cloudify/.
chmod 755 /tmp/cloudify/*.sh
echo "vHello.sh: cloudify-setup part 1"
bash utils/cloudify-setup.sh $1 1
echo "vHello.sh: cloudify-setup part 2"
CONTAINER=$(sudo docker ps -l | awk "/ ubuntu:xenial / { print \$1 }")
sudo docker exec $CONTAINER /tmp/cloudify/cloudify-setup.sh $1 2
if [ $? -eq 1 ]; then fail; fi
pass
else
if [[ $# -eq 3 ]]; then
# running inside the cloudify container, ready to go
if [[ "$3" == "start" ]]; then start $1; fi
if [[ "$3" == "clean" ]]; then clean $1; fi
else
echo "vHello.sh: pass $2 command to vHello.sh in cloudify container"
CONTAINER=$(sudo docker ps -l | awk "/ ubuntu:xenial / { print \$1 }")
sudo docker exec $CONTAINER /tmp/cloudify/vHello.sh $1 $2 $2
if [ $? -eq 1 ]; then fail; fi
pass
fi
fi
|