% node.get_dict()['name'])
ft_utils.execute_command_raise('cd %s;tar czvf sdnvpn-logs-%s.tar.gz'
- '-C /tmp/ sdnvpn-logs/'
+ ' sdnvpn-logs/'
% (CONST.__getattribute__('dir_results'),
name))
def create_network_association(neutron_client, bgpvpn_id, neutron_network_id):
json_body = {"network_association": {"network_id": neutron_network_id}}
return neutron_client.create_network_association(bgpvpn_id, json_body)
+
+
+def is_fail_mode_secure():
+ """
+ Checks the value of the attribute fail_mode,
+ if it is set to secure. This check is performed
+ on all OVS br-int interfaces, for all OpenStack nodes.
+ """
+ is_secure = {}
+ openstack_nodes = get_nodes()
+ get_ovs_int_cmd = ("sudo ovs-vsctl show | "
+ "grep -i bridge | "
+ "awk '{print $2}'")
+ # Define OVS get fail_mode command
+ get_ovs_fail_mode_cmd = ("sudo ovs-vsctl get-fail-mode br-int")
+ for openstack_node in openstack_nodes:
+ if not openstack_node.is_active():
+ continue
+
+ ovs_int_list = (openstack_node.run_cmd(get_ovs_int_cmd).
+ strip().split('\n'))
+ if 'br-int' in ovs_int_list:
+ # Execute get fail_mode command
+ br_int_fail_mode = (openstack_node.
+ run_cmd(get_ovs_fail_mode_cmd).strip())
+ if br_int_fail_mode == 'secure':
+ # success
+ is_secure[openstack_node.name] = True
+ else:
+ # failure
+ logging.error('The fail_mode for br-int was not secure '
+ 'in {} node'.format(openstack_node.name))
+ is_secure[openstack_node.name] = False
+ return is_secure
#!/bin/bash
### Configuration Required
-set -e
+# set -e
tmp_folder=/tmp/opnfv-logs-$HOSTNAME/
rm -rf $tmp_folder
echo "$cmd" >> $file
echo "==========================================================" >> $file
$cmd 2>&1 >> $file
+ if [ "$?" -ne "0" ]; then
+ echo "Something went wrong with log gathering"
+ fi
}
flows()
node(){
node=$tmp_folder/$HOSTNAME.txt
log_command_exec "$node" ifconfig -a
- files_folders=( /opt/opendaylight/data/log/ /var/log/openvswitch/ /var/log/neutron/)
+ files_folders=( /opt/opendaylight/data/log/ /var/log/openvswitch/ /var/log/neutron/ /var/log/nova/)
for ((i = 0; i < ${#files_folders[@]};i++));do
if [ -e ${files_folders[$i]} ];then
cp -r ${files_folders[$i]} $tmp_folder/
+ if [ "$?" -ne "0" ]; then
+ echo "Something went wrong with log tranferring from nodes"
+ fi
fi
done
# not all messages only tail the last 10k lines
touch $file
echo "============================= $url ======================" >> $file
curl --silent -u admin:admin -X GET http://$odl_ip_port/$url | python -mjson.tool 2>&1 >> $file
+ if [ "$?" -ne "0" ]; then
+ echo "Something went wrong while reading from datastore"
+ fi
}
_get_output_karaf(){
shift
echo "============================ KARAF $@ ===================" >> $file
sshpass -p karaf ssh -p 8101 -o "StrictHostKeyChecking no" karaf@localhost "$@" 2>&1 >> $file
-
+ if [ "$?" -ne "0" ]; then
+ echo "Something went wrong with log gathering from karaf"
+ fi
}
datastore()
{
secgroup_descr: Security group for SDNVPN test cases
targets: '88:88'
route_distinguishers: '18:18'
+
+ testcase_9:
+ enabled: true
+ description: Verify that all OpenStack nodes OVS br-int have fail_mode set to secure.
+ testname_db: functest_testcase_9
gather_logs('overall')
except Exception as ex:
logger.error(('Something went wrong in the Log gathering.'
- 'Ex: Trace: %s')
+ 'Ex: %s, Trace: %s')
% ex, traceback.format_exc())
if overall_status == "FAIL":
sys.exit(-1)
import argparse
import logging
-from random import randint
-
-import functest.utils.openstack_utils as os_utils
+import sys
-from sdnvpn.lib import utils as test_utils
+from functest.utils import openstack_utils as os_utils
+from random import randint
from sdnvpn.lib import config as sdnvpn_config
+from sdnvpn.lib import utils as test_utils
from sdnvpn.lib.results import Results
parser = argparse.ArgumentParser()
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
- main()
+ sys.exit(main())
import argparse
import logging
-from random import randint
import sys
-import functest.utils.openstack_utils as os_utils
-
-import sdnvpn.lib.utils as test_utils
+from functest.utils import openstack_utils as os_utils
+from random import randint
+from sdnvpn.lib import config as sdnvpn_config
+from sdnvpn.lib import utils as test_utils
from sdnvpn.lib.results import Results
-import sdnvpn.lib.config as sdnvpn_config
parser = argparse.ArgumentParser()
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
- main()
+ sys.exit(main())
# - Start a BGP router with OpenDaylight
# - Add the functest Quagga as a neighbor
# - Verify that the OpenDaylight and gateway Quagga peer
+
+import argparse
import logging
import os
-import argparse
+import sys
+from functest.utils import functest_utils as ft_utils
+from functest.utils import openstack_utils as os_utils
from sdnvpn.lib import quagga
-import sdnvpn.lib.utils as test_utils
-import sdnvpn.lib.config as sdnvpn_config
-
-import functest.utils.openstack_utils as os_utils
-import functest.utils.functest_utils as ft_utils
-
+from sdnvpn.lib import utils as test_utils
+from sdnvpn.lib import config as sdnvpn_config
from sdnvpn.lib.results import Results
COMMON_CONFIG = sdnvpn_config.CommonConfig()
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
- main()
+ sys.exit(main())
import argparse
import logging
-from random import randint
-
-import functest.utils.openstack_utils as os_utils
+import sys
-from sdnvpn.lib import utils as test_utils
+from functest.utils import openstack_utils as os_utils
+from random import randint
from sdnvpn.lib import config as sdnvpn_config
+from sdnvpn.lib import utils as test_utils
from sdnvpn.lib.results import Results
parser = argparse.ArgumentParser()
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
- main()
+ sys.exit(main())
"""
import argparse
import logging
+import sys
-import functest.utils.openstack_utils as os_utils
-
-from sdnvpn.lib import utils as test_utils
+from functest.utils import openstack_utils as os_utils
from sdnvpn.lib import config as sdnvpn_config
+from sdnvpn.lib import utils as test_utils
from sdnvpn.lib.results import Results
parser = argparse.ArgumentParser()
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
- main()
+ sys.exit(main())
"""
import argparse
import logging
+import sys
-import functest.utils.openstack_utils as os_utils
-
-import sdnvpn.lib.utils as test_utils
+from functest.utils import openstack_utils as os_utils
+from sdnvpn.lib import config as sdnvpn_config
+from sdnvpn.lib import utils as test_utils
from sdnvpn.lib.results import Results
-import sdnvpn.lib.config as sdnvpn_config
parser = argparse.ArgumentParser()
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
- main()
+ sys.exit(main())
--- /dev/null
+#!/usr/bin/python
+#
+# Copyright (c) 2017 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
+#
+# Tests performed:
+# - Peering OpenDaylight with Quagga:
+# - Set up a Quagga instance in the functest container
+# - Start a BGP router with OpenDaylight
+# - Add the functest Quagga as a neighbor
+# - Verify that the OpenDaylight and gateway Quagga peer
+import argparse
+import logging
+import sys
+
+from sdnvpn.lib import config as sdnvpn_config
+from sdnvpn.lib import utils as test_utils
+from sdnvpn.lib.results import Results
+
+COMMON_CONFIG = sdnvpn_config.CommonConfig()
+TESTCASE_CONFIG = sdnvpn_config.TestcaseConfig("testcase_9")
+
+logger = logging.getLogger('sdnvpn-testcase-9')
+
+parser = argparse.ArgumentParser()
+
+parser.add_argument("-r", "--report",
+ help="Create json result file",
+ action="store_true")
+
+args = parser.parse_args()
+
+
+def main():
+ results = Results(COMMON_CONFIG.line_length)
+ results.add_to_summary(0, "=")
+ results.add_to_summary(2, "STATUS", "SUBTEST")
+ results.add_to_summary(0, "=")
+
+ openstack_nodes = test_utils.get_nodes()
+
+ # node.is_odl() doesn't work in Apex
+ # https://jira.opnfv.org/browse/RELENG-192
+ controllers = [node for node in openstack_nodes
+ if "running" in
+ node.run_cmd("sudo systemctl status opendaylight")]
+
+ msg = ("Verify that all OpenStack nodes OVS br-int have "
+ "fail_mode set to secure")
+ results.record_action(msg)
+ results.add_to_summary(0, "-")
+ if not controllers:
+ msg = ("Controller (ODL) list is empty. Skipping rest of tests.")
+ logger.info(msg)
+ results.add_failure(msg)
+ return results.compile_summary()
+ else:
+ msg = ("Controller (ODL) list is ready")
+ logger.info(msg)
+ results.add_success(msg)
+ # Get fail_mode status on all nodes
+ fail_mode_statuses = test_utils.is_fail_mode_secure()
+ for node_name, status in fail_mode_statuses.iteritems():
+ msg = 'Node {} br-int is fail_mode secure'.format(node_name)
+ if status:
+ results.add_success(msg)
+ else:
+ results.add_failure(msg)
+
+ return results.compile_summary()
+
+if __name__ == '__main__':
+ logging.basicConfig(level=logging.INFO)
+ sys.exit(main())
[files]
packages = sdnvpn
+scripts =
+ sdnvpn/test/functest/run_sdnvpn_tests.py