diff options
Diffstat (limited to 'testcases')
4 files changed, 136 insertions, 153 deletions
diff --git a/testcases/Controllers/ODL/custom_tests/neutron/010__networks.robot b/testcases/Controllers/ODL/custom_tests/neutron/010__networks.robot deleted file mode 100644 index de00dd44d..000000000 --- a/testcases/Controllers/ODL/custom_tests/neutron/010__networks.robot +++ /dev/null @@ -1,51 +0,0 @@ -*** Settings *** -Documentation Checking Network created in OpenStack are pushed to OpenDaylight -Suite Setup Create Session OSSession http://${OPENSTACK}:9696 headers=${X-AUTH} -Suite Teardown Delete All Sessions -Library Collections -Library RequestsLibrary -Variables ../../../variables/Variables.py - -*** Variables *** -${ODLREST} /controller/nb/v2/neutron/networks -${OSREST} /v2.0/networks -${postNet} {"network":{"name":"odl_network","admin_state_up":true}} - -*** Test Cases *** -Check OpenStack Networks - [Documentation] Checking OpenStack Neutron for known networks - [Tags] Network Neutron OpenStack - Log ${X-AUTH} - ${resp} get request OSSession ${OSREST} - Should be Equal As Strings ${resp.status_code} 200 - ${OSResult} To Json ${resp.content} - Log ${OSResult} - -Check OpenDaylight Networks - [Documentation] Checking OpenDaylight Neutron API for known networks - [Tags] Network Neutron OpenDaylight - Create Session ODLSession http://${ODL_SYSTEM_IP}:${PORT} headers=${HEADERS} auth=${AUTH} - ${resp} get request ODLSession ${ODLREST} - Should be Equal As Strings ${resp.status_code} 200 - ${ODLResult} To Json ${resp.content} - Log ${ODLResult} - -Create Network - [Documentation] Create new network in OpenStack - [Tags] Create Network OpenStack Neutron - Log ${postNet} - ${resp} post request OSSession ${OSREST} data=${postNet} - Should be Equal As Strings ${resp.status_code} 201 - ${result} To JSON ${resp.content} - ${result} Get From Dictionary ${result} network - ${NETID} Get From Dictionary ${result} id - Log ${result} - Log ${NETID} - Set Global Variable ${NETID} - sleep 2 - -Check Network - [Documentation] Check network created in OpenDaylight - [Tags] Check Network OpenDaylight - ${resp} get request ODLSession ${ODLREST}/${NetID} - Should be Equal As Strings ${resp.status_code} 200 diff --git a/testcases/Controllers/ODL/custom_tests/neutron/020__subnets.robot b/testcases/Controllers/ODL/custom_tests/neutron/020__subnets.robot deleted file mode 100644 index fa7c1e679..000000000 --- a/testcases/Controllers/ODL/custom_tests/neutron/020__subnets.robot +++ /dev/null @@ -1,51 +0,0 @@ -*** Settings *** -Documentation Checking Subnets created in OpenStack are pushed to OpenDaylight -Suite Setup Create Session OSSession http://${OPENSTACK}:9696 headers=${X-AUTH} -Suite Teardown Delete All Sessions -Library Collections -Library RequestsLibrary -Variables ../../../variables/Variables.py - -*** Variables *** -${ODLREST} /controller/nb/v2/neutron/subnets -${OSREST} /v2.0/subnets -${data} {"subnet":{"network_id":"${NETID}","ip_version":4,"cidr":"172.16.64.0/24","allocation_pools":[{"start":"172.16.64.20","end":"172.16.64.120"}]}} - -*** Test Cases *** -Check OpenStack Subnets - [Documentation] Checking OpenStack Neutron for known subnets - [Tags] Subnets Neutron OpenStack - Log ${X-AUTH} - ${resp} get request OSSession ${OSREST} - Should be Equal As Strings ${resp.status_code} 200 - ${OSResult} To Json ${resp.content} - Log ${OSResult} - -Check OpenDaylight subnets - [Documentation] Checking OpenDaylight Neutron API for known subnets - [Tags] Subnets Neutron OpenDaylight - Create Session ODLSession http://${ODL_SYSTEM_IP}:${PORT} headers=${HEADERS} auth=${AUTH} - ${resp} get request ODLSession ${ODLREST} - Should be Equal As Strings ${resp.status_code} 200 - ${ODLResult} To Json ${resp.content} - Log ${ODLResult} - -Create New subnet - [Documentation] Create new subnet in OpenStack - [Tags] Create Subnet OpenStack Neutron - Log ${data} - ${resp} post request OSSession ${OSREST} data=${data} - Should be Equal As Strings ${resp.status_code} 201 - ${result} To JSON ${resp.content} - ${result} Get From Dictionary ${result} subnet - ${SUBNETID} Get From Dictionary ${result} id - Log ${result} - Log ${SUBNETID} - Set Global Variable ${SUBNETID} - sleep 2 - -Check New subnet - [Documentation] Check new subnet created in OpenDaylight - [Tags] Check subnet OpenDaylight - ${resp} get request ODLSession ${ODLREST}/${SUBNETID} - Should be Equal As Strings ${resp.status_code} 200 diff --git a/testcases/Controllers/ODL/custom_tests/neutron/030__ports.robot b/testcases/Controllers/ODL/custom_tests/neutron/030__ports.robot deleted file mode 100644 index 17a469210..000000000 --- a/testcases/Controllers/ODL/custom_tests/neutron/030__ports.robot +++ /dev/null @@ -1,51 +0,0 @@ -*** Settings *** -Documentation Checking Port created in OpenStack are pushed to OpenDaylight -Suite Setup Create Session OSSession http://${OPENSTACK}:9696 headers=${X-AUTH} -Suite Teardown Delete All Sessions -Library Collections -Library RequestsLibrary -Variables ../../../variables/Variables.py - -*** Variables *** -${ODLREST} /controller/nb/v2/neutron/ports -${OSREST} /v2.0/ports -${data} {"port":{"network_id":"${NETID}","admin_state_up": true}} - -*** Test Cases *** -Check OpenStack ports - [Documentation] Checking OpenStack Neutron for known ports - [Tags] Ports Neutron OpenStack - Log ${X-AUTH} - ${resp} get request OSSession ${OSREST} - Should be Equal As Strings ${resp.status_code} 200 - ${OSResult} To Json ${resp.content} - Log ${OSResult} - -Check OpenDaylight ports - [Documentation] Checking OpenDaylight Neutron API for known ports - [Tags] Ports Neutron OpenDaylight - Create Session ODLSession http://${ODL_SYSTEM_IP}:${PORT} headers=${HEADERS} auth=${AUTH} - ${resp} get request ODLSession ${ODLREST} - Should be Equal As Strings ${resp.status_code} 200 - ${ODLResult} To Json ${resp.content} - Log ${ODLResult} - -Create New Port - [Documentation] Create new port in OpenStack - [Tags] Create port OpenStack Neutron - Log ${data} - ${resp} post request OSSession ${OSREST} data=${data} - Should be Equal As Strings ${resp.status_code} 201 - ${result} To JSON ${resp.content} - ${result} Get From Dictionary ${result} port - ${PORTID} Get From Dictionary ${result} id - Log ${result} - Log ${PORTID} - Set Global Variable ${PORTID} - sleep 2 - -Check New Port - [Documentation] Check new port created in OpenDaylight - [Tags] Check subnet OpenDaylight - ${resp} get request ODLSession ${ODLREST}/${PORTID} - Should be Equal As Strings ${resp.status_code} 200 diff --git a/testcases/OpenStack/examples/create_instance_and_ip.py b/testcases/OpenStack/examples/create_instance_and_ip.py new file mode 100644 index 000000000..41f8a9c8a --- /dev/null +++ b/testcases/OpenStack/examples/create_instance_and_ip.py @@ -0,0 +1,136 @@ +#!/usr/bin/python +# +# Copyright (c) 2015 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 +# +# This script boots an instance and assigns a floating ip +# + +import argparse +import os +import sys +import functest.utils.functest_logger as ft_logger +import functest.utils.functest_utils as ft_utils +import functest.utils.openstack_utils as os_utils + +parser = argparse.ArgumentParser() + +parser.add_argument("-r", "--report", + help="Create json result file", + action="store_true") + +args = parser.parse_args() + +""" logging configuration """ +logger = ft_logger.Logger("create_instance_and_ip").getLogger() + +REPO_PATH = os.environ['repos_dir'] + '/functest/' +HOME = os.environ['HOME'] + "/" + +VM_BOOT_TIMEOUT = 180 + +INSTANCE_NAME = ft_utils.get_parameter_from_yaml("example.example_vm_name") +FLAVOR = ft_utils.get_parameter_from_yaml("example.example_flavor") +IMAGE_NAME = ft_utils.get_parameter_from_yaml("example.example_image_name") +IMAGE_FILENAME = ft_utils.get_parameter_from_yaml( + "general.openstack.image_file_name") +IMAGE_FORMAT = ft_utils.get_parameter_from_yaml( + "general.openstack.image_disk_format") +IMAGE_PATH = ft_utils.get_parameter_from_yaml( + "general.directories.dir_functest_data") + "/" + IMAGE_FILENAME + +# NEUTRON Private Network parameters + +NET_NAME = ft_utils.get_parameter_from_yaml( + "example.example_private_net_name") +SUBNET_NAME = ft_utils.get_parameter_from_yaml( + "example.example_private_subnet_name") +SUBNET_CIDR = ft_utils.get_parameter_from_yaml( + "example.example_private_subnet_cidr") +ROUTER_NAME = ft_utils.get_parameter_from_yaml( + "example.example_router_name") + +SECGROUP_NAME = ft_utils.get_parameter_from_yaml( + "example.example_sg_name") +SECGROUP_DESCR = ft_utils.get_parameter_from_yaml( + "example.example_sg_descr") + +TEST_DB = ft_utils.get_parameter_from_yaml("results.test_db_url") + + +def main(): + + nova_client = os_utils.get_nova_client() + neutron_client = os_utils.get_neutron_client() + glance_client = os_utils.get_glance_client() + + image_id = os_utils.create_glance_image(glance_client, + IMAGE_NAME, + IMAGE_PATH, + disk=IMAGE_FORMAT, + container="bare", + public=True, + logger=logger) + + network_dic = os_utils.create_network_full(logger, + neutron_client, + NET_NAME, + SUBNET_NAME, + ROUTER_NAME, + SUBNET_CIDR) + if not network_dic: + logger.error( + "There has been a problem when creating the neutron network") + sys.exit(-1) + + network_id = network_dic["net_id"] + + sg_id = os_utils.create_security_group_full(logger, neutron_client, + SECGROUP_NAME, SECGROUP_DESCR) + + # boot INTANCE + logger.info("Creating instance '%s'..." % INSTANCE_NAME) + logger.debug( + "Configuration:\n name=%s \n flavor=%s \n image=%s \n " + "network=%s \n" % (INSTANCE_NAME, FLAVOR, image_id, network_id)) + instance = os_utils.create_instance_and_wait_for_active(FLAVOR, + image_id, + network_id, + INSTANCE_NAME) + + if instance is None: + logger.error("Error while booting instance.") + sys.exit(-1) + # Retrieve IP of INSTANCE + instance_ip = instance.networks.get(NET_NAME)[0] + logger.debug("Instance '%s' got private ip '%s'." % + (INSTANCE_NAME, instance_ip)) + + logger.info("Adding '%s' to security group '%s'..." + % (INSTANCE_NAME, SECGROUP_NAME)) + os_utils.add_secgroup_to_instance(nova_client, instance.id, sg_id) + + logger.info("Creating floating IP for VM '%s'..." % INSTANCE_NAME) + floatip_dic = os_utils.create_floating_ip(neutron_client) + floatip = floatip_dic['fip_addr'] + # floatip_id = floatip_dic['fip_id'] + + if floatip is None: + logger.error("Cannot create floating IP.") + sys.exit(-1) + logger.info("Floating IP created: '%s'" % floatip) + + logger.info("Associating floating ip: '%s' to VM '%s' " + % (floatip, INSTANCE_NAME)) + if not os_utils.add_floating_ip(nova_client, instance.id, floatip): + logger.error("Cannot associate floating IP to VM.") + sys.exit(-1) + + sys.exit(0) + +if __name__ == '__main__': + main() |