Merge "[cloudify_ims] Change VNF flavor value"
[functest.git] / functest / ci / check_os.sh
index b875a17..2c5c021 100755 (executable)
@@ -6,6 +6,16 @@
 #    jose.lausuch@ericsson.com
 #
 
+declare -A service_cmd_array
+service_cmd_array['nova']='openstack server list'
+service_cmd_array['neutron']='openstack network list'
+service_cmd_array['keystone']='openstack endpoint list'
+service_cmd_array['cinder']='openstack volume list'
+service_cmd_array['glance']='openstack 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
@@ -16,6 +26,34 @@ verify_connectivity() {
     return 1
 }
 
+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 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?"
@@ -56,25 +94,16 @@ fi
 echo "  ...OK"
 
 
-echo "Checking OpenStack basic services:"
-commands=('openstack endpoint list' 'openstack server list' 'openstack network list' \
-            'openstack image list' 'openstack volume list')
-for cmd in "${commands[@]}"
-do
-    service=$(echo $cmd | awk '{print $1, $2}')
-    echo ">>Checking $service service..."
-    $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
+echo "Checking Required OpenStack services:"
+for service in $MANDATORY_SERVICES; do
+    check_service $service "true"
 done
+echo "Required OpenStack services are OK."
 
-echo "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 net-list -F id | tail -n +4 | head -n -1 | awk '{print $2}'))