summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorjose.lausuch <jose.lausuch@ericsson.com>2015-10-16 15:44:12 +0200
committerjose.lausuch <jose.lausuch@ericsson.com>2015-10-16 15:44:12 +0200
commit8c91b80a64e5474d399e5f1cc3e883eb12ab9629 (patch)
tree8f0246302b00553e1e2db00b4b0ec0a8a8e579f8 /utils
parentf7ac7b481fa3806d00aaafcf94084594eff9aefd (diff)
Script to get the type of SDN controller
This script goes through all the OpenStack controllers checking if there is Karaf container running, and if so, it will ask what type of SDN controller it is running. JIRA: FUNCTEST-49 Change-Id: I9fe800700b9458c1a0f05b9b6a6bbb2716d27954 Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com>
Diffstat (limited to 'utils')
-rw-r--r--utils/get_sdn_type.sh125
1 files changed, 125 insertions, 0 deletions
diff --git a/utils/get_sdn_type.sh b/utils/get_sdn_type.sh
new file mode 100644
index 000000000..c331da8a6
--- /dev/null
+++ b/utils/get_sdn_type.sh
@@ -0,0 +1,125 @@
+#!/bin/bash
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# jose.lausuch@ericsson.com
+# 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
+##############################################################################
+
+
+CMD_ODL="/opt/opendaylight/bin/client -u karaf info 2>/dev/null | grep -i opendaylight | wc -l"
+CMD_ONOS="/opt/opendaylight/bin/client -u karaf info 2>/dev/null | grep -i onos | wc -l"
+CMD_CONTRAIL="/opt/opendaylight/bin/client -u karaf info 2>/dev/null | grep -i contrail | wc -l"
+
+usage() {
+ echo "usage: $0 -i <installer_type> -a <installer_ip>" >&2
+}
+
+info () {
+ logger -s -t "get_sdn_type.info" "$*"
+}
+
+
+error () {
+ logger -s -t "get_sdn_type.error" "$*"
+ exit 1
+}
+
+
+verify_connectivity() {
+ local ip=$1
+ info "Verifying connectivity to $ip..."
+ for i in $(seq 0 10); do
+ if ping -c 1 -W 1 $ip > /dev/null; then
+ info "$ip is reachable!"
+ return 0
+ fi
+ sleep 1
+ done
+ error "Can not talk to $ip."
+}
+
+
+
+#Get options
+while getopts ":d:i:a:h:" optchar; do
+ case "${optchar}" in
+ i) installer_type=${OPTARG} ;;
+ a) installer_ip=${OPTARG} ;;
+ *) echo "Non-option argument: '-${OPTARG}'" >&2
+ usage
+ exit 2
+ ;;
+ esac
+done
+
+# set vars from env if not provided by user as options
+installer_type=${installer_type:-$INSTALLER_TYPE}
+installer_ip=${installer_ip:-$INSTALLER_IP}
+
+if [ -z $installer_type ] || [ -z $installer_ip ]; then
+ usage
+ exit 2
+fi
+
+
+ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+
+# Start fetching the files
+if [ "$installer_type" == "fuel" ]; then
+ #ip_fuel="10.20.0.2"
+ verify_connectivity $installer_ip
+
+ # Check if controller is alive (online='True')
+ controller_ips=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \
+ 'fuel node | grep controller | grep True | awk "{print \$10}"') &> /dev/null
+
+ if [ -z "$controller_ips" ]; then
+ error "Controller IPs not found. Please check that the POD is correctly deployed."
+ fi
+
+
+ info "Checking Karaf in each controller..."
+ for ip in $controller_ips;
+ do
+ info "Checking type of controller ${ip}.."
+ result=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \
+ "ssh ${ssh_options} ${ip} ${CMD_ODL}")
+ if [ $result -gt 0 ]; then
+ info "ODL controller found!"
+ exit 0
+ fi
+ result=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \
+ "ssh ${ssh_options} ${ip} ${CMD_ONOS}")
+ if [ $result -gt 0 ]; then
+ info "ONOS controller found!"
+ exit 0
+ fi
+ result=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \
+ "ssh ${ssh_options} ${ip} ${CMD_CONTRAIL}")
+ if [ $result -gt 0 ]; then
+ info "OpenContrail controller found!"
+ exit 0
+ fi
+ done
+ info "None of the 3 supported controllers has been found."
+
+elif [ "$installer_type" == "apex" ]; then
+ echo "not implemented"
+
+elif [ "$installer_type" == "compass" ]; then
+ echo "not implemented"
+
+elif [ "$installer_type" == "joid" ]; then
+ echo "not implemented"
+
+
+else
+ error "Installer $installer is not supported by this script"
+fi
+
+
+
+exit 0 \ No newline at end of file