aboutsummaryrefslogtreecommitdiffstats
path: root/functest/ci
diff options
context:
space:
mode:
Diffstat (limited to 'functest/ci')
-rw-r--r--functest/ci/check_os.sh123
-rw-r--r--functest/ci/prepare_env.py38
2 files changed, 5 insertions, 156 deletions
diff --git a/functest/ci/check_os.sh b/functest/ci/check_os.sh
deleted file mode 100644
index 7b66f3da..00000000
--- a/functest/ci/check_os.sh
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/bin/bash
-#
-# Simple script to check the basic OpenStack clients
-#
-# Author:
-# jose.lausuch@ericsson.com
-#
-
-if [[ ${OS_INSECURE,,} == "true" ]]; then
- options='--insecure'
-else
- options=''
-fi
-
-declare -A service_cmd_array
-service_cmd_array['nova']="openstack $options server list"
-service_cmd_array['neutron']="openstack $options network list"
-service_cmd_array['keystone']="openstack $options endpoint list"
-service_cmd_array['cinder']="openstack $options volume list"
-service_cmd_array['glance']="openstack $options image list"
-
-MANDATORY_SERVICES='nova neutron keystone glance'
-OPTIONAL_SERVICES='cinder'
-
-verify_connectivity() {
- for i in $(seq 0 9); do
- if echo "test" | nc -v -w 10 $1 $2 &>/dev/null; then
- return 0
- fi
- sleep 1
- done
- return 1
-}
-
-verify_SSL_connectivity() {
- openssl s_client -connect $1:$2 &>/dev/null
- return $?
-}
-
-check_service() {
- local service cmd
- service=$1
- cmd=${service_cmd_array[$service]}
- if [ -z "$2" ]; then
- required='false'
- else
- required=$2
- fi
- echo ">>Checking ${service} service..."
- if ! openstack $options service list | grep -i ${service} > /dev/null; then
- if [ "$required" == 'false' ]; then
- echo "WARN: Optional Service ${service} is not enabled!"
- return
- else
- echo "ERROR: Required Service ${service} is not enabled!"
- exit 1
- fi
- fi
- $cmd &>/dev/null
- result=$?
- if [ $result -ne 0 ]; then
- echo "ERROR: Failed execution $cmd. The $service does not seem to be working."
- exit 1
- else
- echo " ...OK"
- fi
-}
-
-if [ -z $OS_AUTH_URL ];then
- echo "ERROR: OS_AUTH_URL environment variable missing... Have you sourced the OpenStack credentials?"
- exit 1
-fi
-
-
-echo "Checking OpenStack endpoints:"
-publicURL=$(openstack $options catalog show identity |awk '/public/ {print $4}')
-publicIP=$(echo $publicURL|sed 's/^.*http.*\:\/\///'|sed 's/.[^:]*$//')
-publicPort=$(echo $publicURL|grep -Po '(?<=:)\d+')
-https_enabled=$(echo $publicURL | grep 'https')
-if [[ -n $https_enabled ]]; then
- echo ">>Verifying SSL connectivity to the public endpoint $publicIP:$publicPort..."
- verify_SSL_connectivity $publicIP $publicPort
-else
- echo ">>Verifying connectivity to the public endpoint $publicIP:$publicPort..."
- verify_connectivity $publicIP $publicPort
-fi
-RETVAL=$?
-if [ $RETVAL -ne 0 ]; then
- echo "ERROR: Cannot talk to the public endpoint $publicIP:$publicPort ."
- echo "OS_AUTH_URL=$OS_AUTH_URL"
- exit 1
-fi
-echo " ...OK"
-
-
-echo "Checking Required OpenStack services:"
-for service in $MANDATORY_SERVICES; do
- check_service $service "true"
-done
-echo "Required OpenStack services are OK."
-
-echo "Checking Optional OpenStack services:"
-for service in $OPTIONAL_SERVICES; do
- check_service $service
-done
-
-echo "Checking External network..."
-networks=($(neutron $options net-list -F id | tail -n +4 | head -n -1 | awk '{print $2}'))
-is_external=False
-for net in "${networks[@]}"
-do
- is_external=$(neutron $options net-show $net|grep "router:external"|awk '{print $4}')
- if [ $is_external == "True" ]; then
- echo "External network found: $net"
- break
- fi
-done
-if [ $is_external == "False" ]; then
- echo "ERROR: There are no external networks in the deployment."
- exit 1
-fi
-
-exit 0
diff --git a/functest/ci/prepare_env.py b/functest/ci/prepare_env.py
index da3e6245..c40e3266 100644
--- a/functest/ci/prepare_env.py
+++ b/functest/ci/prepare_env.py
@@ -19,6 +19,7 @@ import fileinput
import yaml
+from functest.ci import check_deployment
import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_utils as os_utils
from functest.utils.constants import CONST
@@ -177,26 +178,6 @@ def create_directories():
def source_rc_file():
print_separator()
- if CONST.__getattribute__('openstack_creds') is None:
- logger.warning("The environment variable 'creds' must be set and"
- "pointing to the local RC file. Using default: "
- "/home/opnfv/functest/conf/openstack.creds ...")
- os.path.join(
- CONST.__getattribute__('dir_functest_conf'), 'openstack.creds')
-
- if not os.path.isfile(CONST.__getattribute__('openstack_creds')):
- raise Exception(
- "OpenStack credentials file not provided. "
- "The OpenStack credentials must be in {}"
- .format(CONST.__getattribute__('openstack_creds')))
- else:
- logger.info("RC file provided in %s."
- % CONST.__getattribute__('openstack_creds'))
- if os.path.getsize(CONST.__getattribute__('openstack_creds')) == 0:
- raise Exception(
- "The OpenStack RC file {} is empty."
- .format(CONST.__getattribute__('openstack_creds')))
-
logger.info("Sourcing the OpenStack RC file...")
os_utils.source_credentials(CONST.__getattribute__('openstack_creds'))
for key, value in os.environ.iteritems():
@@ -250,18 +231,9 @@ def update_db_url():
def verify_deployment():
print_separator()
- logger.info("Verifying OpenStack services...")
- cmd = "check_os.sh"
-
- logger.debug("Executing command: %s" % cmd)
- p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
-
- while p.poll() is None:
- line = p.stdout.readline().rstrip()
- if "ERROR" in line:
- logger.error(line)
- raise Exception("Problem while running '{}'.".format(cmd))
- logger.info(line)
+ logger.info("Verifying OpenStack deployment...")
+ deployment = check_deployment.CheckDeployment()
+ deployment.check_all()
def install_rally():
@@ -364,11 +336,11 @@ def prepare_env(**kwargs):
return -1
elif kwargs['action'] == "start":
logger.info("######### Preparing Functest environment #########\n")
+ verify_deployment()
check_env_variables()
create_directories()
source_rc_file()
update_config_file()
- verify_deployment()
install_rally()
install_tempest()
create_flavor()