diff options
author | jose.lausuch <jose.lausuch@ericsson.com> | 2015-10-16 15:44:12 +0200 |
---|---|---|
committer | jose.lausuch <jose.lausuch@ericsson.com> | 2015-10-16 15:44:12 +0200 |
commit | 8c91b80a64e5474d399e5f1cc3e883eb12ab9629 (patch) | |
tree | 8f0246302b00553e1e2db00b4b0ec0a8a8e579f8 /utils | |
parent | f7ac7b481fa3806d00aaafcf94084594eff9aefd (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.sh | 125 |
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 |