diff options
author | 2016-08-31 14:59:38 -0700 | |
---|---|---|
committer | 2016-08-31 15:01:43 -0700 | |
commit | b8fa06444772f33fcc6e5fdd2543b576c72f1dfa (patch) | |
tree | 7b1cc4ce27b03febda2637a9c86b0e72d21ab53a /tests/vHello.sh | |
parent | 0df6615cde569944c3d284797e648720a7d15548 (diff) |
Tacker installation script baseline.
JIRA: MODELS-23
Edits for Cloudify CLI test.
Change-Id: I28ba88fa27d309d00167249e8255b521b514cc0c
Signed-off-by: blsaws <bryan.sullivan@att.com>
Diffstat (limited to 'tests/vHello.sh')
-rw-r--r-- | tests/vHello.sh | 107 |
1 files changed, 42 insertions, 65 deletions
diff --git a/tests/vHello.sh b/tests/vHello.sh index c9bc995..317cd1e 100644 --- a/tests/vHello.sh +++ b/tests/vHello.sh @@ -50,122 +50,99 @@ function get_floating_net () { if [[ $floating_network_id ]]; then floating_network_name=$(openstack network show $floating_network_id | awk "/ name / { print \$4 }") else - echo "vHello.sh: Floating network not found" + echo "$0: Floating network not found" exit 1 fi } select_manager() { - echo "vHello.sh: select manager to use" + echo "$0: 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" + echo "$0: reset blueprints folder" if [[ -d /tmp/cloudify/blueprints ]]; then rm -rf /tmp/cloudify/blueprints; fi mkdir -p /tmp/cloudify/blueprints cd /tmp/cloudify/blueprints - echo "vHello.sh: clone cloudify-hello-world-example" + echo "$0: 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: setup OpenStack CLI environment" + echo "$0: setup OpenStack CLI environment" source /tmp/cloudify/admin-openrc.sh - echo "vHello.sh: Setup image_id" + echo "$0: Setup image_id" # image=$(openstack image list | awk "/ CentOS-7-x86_64-GenericCloud-1607 / { print \$2 }") image=$(openstack image list | awk "/ xenial-server / { print \$2 }") if [ -z $image ]; then # glance --os-image-api-version 1 image-create --name CentOS-7-x86_64-GenericCloud-1607 --disk-format qcow2 --location http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1607.qcow2 --container-format bare - glance --os-image-api-version 1 image-create --name xenial-server --disk-format qcow2 --location http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + glance --os-image-api-version 1 image-create --name xenial-server --disk-format qcow2 --location http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img --container-format bare fi # image=$(openstack image list | awk "/ CentOS-7-x86_64-GenericCloud-1607 / { print \$2 }") image=$(openstack image list | awk "/ xenial-server / { print \$2 }") - echo "vHello.sh: create blueprint inputs file" - # Set host image per Cloudify agent compatibility: http://docs.getcloudify.org/3.4.0/agents/overview/ - cd /tmp/cloudify/blueprints - cat <<EOF >vHello-inputs.yaml + if [[ "$1" == "cloudify-manager" ]]; then + echo "$0: create Cloudify Manager blueprint inputs file" + # Set host image per Cloudify agent compatibility: http://docs.getcloudify.org/3.4.0/agents/overview/ + cd /tmp/cloudify/blueprints + cat <<EOF >vHello-inputs.yaml image: xenial-server flavor: m1.small agent_user: ubuntu webserver_port: 8080 EOF - - if [[ "$1" == "cloudify-cli" ]]; then - # Workarounds for error in allocating floating IP - # Workflow failed: Task failed 'neutron_plugin.floatingip.create' -> Failed to parse request. Required attribute 'floating_network_id' not specified [status_code=400] + else + # Cloudify CLI use + echo "$0: Get external network for Floating IP allocations" get_floating_net - echo "vHello.sh: update blueprint with parameters needed for Cloudify CLI use" - cat <<EOF >>vHello-inputs.yaml -external_network_name: $floating_network_name -EOF - - sed -i -- 's/description: Openstack flavor name or id to use for the new server/description: Openstack flavor name or id to use for the new server\n external_network_name:\n description: External network name/g' cloudify-hello-world-example/blueprint.yaml - - sed -i -- 's/type: cloudify.openstack.nodes.FloatingIP/type: cloudify.openstack.nodes.FloatingIP\n properties:\n floatingip:\n floating_network_name: { get_input: external_network_name }/g' cloudify-hello-world-example/blueprint.yaml - - echo "vHello.sh: Create Nova key pair" + echo "$0: Create Nova key pair" mkdir -p ~/.ssh nova keypair-delete vHello nova keypair-add vHello > ~/.ssh/vHello.pem chmod 600 ~/.ssh/vHello.pem -# Workarounds for error in allocating keypair -# Task failed 'nova_plugin.server.create' -> server must have a keypair, yet no keypair was connected to the server node, the "key_name" nested property wasn't used, and there is no agent keypair in the provider context -# Tried the following but keypair is not supported by http://www.getcloudify.org/spec/openstack-plugin/1.4/plugin.yaml -# sed -i -- 's/target: security_group/target: security_group\n - type: cloudify.openstack.server_connected_to_keypair\n target: keypair/g' cloudify-hello-world-example/blueprint.yaml -# sed -i -- 's/description: External network name/description: External network name\n private_key_path:\n description: Path to private key/g' cloudify-hello-world-example/blueprint.yaml -# sed -i -- '0,/interfaces:/s//interfaces:\n cloudify.interfaces.lifecycle:\n start:\n implementation: openstack.nova_plugin.server.start\n inputs:\n private_key_path: { get_input: private_key_path }/' cloudify-hello-world-example/blueprint.yaml - -# 'key_name' is a subproperty of 'server' per test-start-operation-retry-blueprint.yaml in the cloudify-openstack-plugin repo - sed -i -- 's/description: External network name/description: External network name\n key_name:\n description: Name of private key/g' cloudify-hello-world-example/blueprint.yaml - - sed -i -- 's/flavor: { get_input: flavor }/flavor: { get_input: flavor }\n server:\n key_name: { get_input: key_name }/' cloudify-hello-world-example/blueprint.yaml - - echo "vHello.sh: update blueprint with parameters needed for Cloudify CLI use" - #private_key_path: /root/.ssh/vHello.pem - cat <<EOF >>vHello-inputs.yaml + echo "$0: create Cloudify CLI blueprint inputs file" + cat <<EOF >vHello-inputs.yaml +image: xenial-server +flavor: m1.small +external_network_name: $floating_network_name +webserver_port: 8080 key_name: vHello EOF - - echo "vHello.sh: disable cloudify agent install in blueprint" - sed -i -- ':a;N;$!ba;s/ agent_user:\n description: User name used when SSH-ing into the started machine\n//g' cloudify-hello-world-example/blueprint.yaml - sed -i -- ':a;N;$!ba;s/agent_config:\n user: { get_input: agent_user }/install_agent: false/' cloudify-hello-world-example/blueprint.yaml - sed -i -- ':a;N;$!ba;s/agent_user: centos\n//' vHello-inputs.yaml fi - echo "vHello.sh: activate cloudify Virtualenv" + echo "$0: activate cloudify Virtualenv" source ~/cloudify/venv/bin/activate - echo "vHello.sh: initialize cloudify environment" + echo "$0: initialize cloudify environment" cd /tmp/cloudify/blueprints cfy init -r if [[ "$1" == "cloudify-manager" ]]; then select_manager - echo "vHello.sh: upload blueprint via manager" + echo "$0: upload blueprint via 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 via manager" + echo "$0: create vHello deployment via manager" 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 via manager" + echo "$0: execute 'install' workflow for vHello deployment via manager" cfy executions start -w install -d vHello --timeout 1800 if [ $? -eq 1 ]; then fail; fi - echo "vHello.sh: get vHello server address" + echo "$0: get vHello server address" SERVER_URL=$(cfy deployments outputs -d vHello | awk "/ Value: / { print \$2 }") else - echo "vHello.sh: install local blueprint" + echo "$0: install local blueprint" cfy local install --install-plugins -i vHello-inputs.yaml -p cloudify-hello-world-example/blueprint.yaml --allow-custom-parameters --parameters="floating_network_name=$floating_network_name" --task-retries=10 --task-retry-interval=30 if [ $? -eq 1 ]; then fail; fi # cfy local install replaces the following, per http://getcloudify.org/2016/04/07/cloudify-update-from-developers-features-improvements-open-source-python-devops.html @@ -175,11 +152,11 @@ EOF # cfy local create-requirements -p cloudify-hello-world-example/blueprint.yaml # if [ $? -eq 1 ]; then fail; fi - echo "vHello.sh: get vHello server address" - SERVER_URL=$(cfy local outputs | awk "/http_endpoint/ { print \$2 }") + echo "$0: get vHello server address" + SERVER_URL=$(cfy local outputs | awk "/http_endpoint/ { print \$2 }" | sed -- 's/"//g') fi - echo "vHello.sh: verify vHello server is running" + echo "$0: verify vHello server is running" apt-get install -y curl if [[ $(curl $SERVER_URL | grep -c "Hello, World!") != 1 ]]; then fail; fi @@ -187,26 +164,26 @@ EOF } clean() { - echo "vHello.sh: activate cloudify Virtualenv" + echo "$0: activate cloudify Virtualenv" source ~/cloudify/venv/bin/activate - echo "vHello.sh: setup OpenStack CLI environment" + echo "$0: setup OpenStack CLI environment" source /tmp/cloudify/admin-openrc.sh - echo "vHello.sh: initialize cloudify environment" + echo "$0: initialize cloudify environment" cd /tmp/cloudify/blueprints if [[ "$1" == "cloudify-manager" ]]; then select_manager - echo "vHello.sh: uninstall vHello blueprint via manager" + echo "$0: uninstall vHello blueprint via manager" cfy executions start -w uninstall -d vHello if [ $? -eq 1 ]; then fail; fi - echo "vHello.sh: delete vHello blueprint" + echo "$0: delete vHello blueprint" cfy deployments delete -d vHello if [ $? -eq 1 ]; then fail; fi else - echo "vHello.sh: uninstall vHello blueprint via CLI" + echo "$0: uninstall vHello blueprint via CLI" cfy local uninstall if [ $? -eq 1 ]; then fail; fi fi @@ -214,16 +191,16 @@ clean() { } if [[ "$2" == "setup" ]]; then - echo "vHello.sh: Setup temp test folder /tmp/cloudify and copy this script there" + echo "$0: 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" + echo "$0: cloudify-setup part 1" bash utils/cloudify-setup.sh $1 1 - echo "vHello.sh: cloudify-setup part 2" + echo "$0: 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 @@ -234,7 +211,7 @@ else 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" + echo "$0: 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 |