From: priya.ramasubbu Date: Mon, 29 Feb 2016 13:13:40 +0000 (+0530) Subject: Single Node Odl Tempest Job Tests X-Git-Tag: release/lithium-sr4~86 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=7cb882e751dc583ac00efad1493773758cfc644c;hp=f6b2e2a01f4a815030af27e1adf25645f958472c;p=integration%2Ftest.git Single Node Odl Tempest Job Tests * Create two networks, two subnets and router * Verify dhcp, gateway and instance ips in the dump flow Change-Id: I714ccaf83d52aea7a8494a0c10efc5c3a4e83a48 Signed-off-by: priya.ramasubbu --- diff --git a/csit/libraries/DevstackUtils.robot b/csit/libraries/DevstackUtils.robot new file mode 100644 index 0000000000..f2bf76ad66 --- /dev/null +++ b/csit/libraries/DevstackUtils.robot @@ -0,0 +1,115 @@ +*** Settings *** +Documentation General Utils library. This library has broad scope, it can be used by any robot system tests. +Library SSHLibrary +Library String +Library DateTime +Library Process +Library Collections +Library RequestsLibrary +Library ./UtilLibrary.py +Resource KarafKeywords.robot +Variables ../variables/Variables.py + +*** Variables *** +${ODL_VERSION} lithium-SR3 +${OPENSTACK_BRANCH} stable/liberty +${NETWORKING-ODL_BRANCH} ${OPENSTACK_BRANCH} +${TEMPEST_REGEX} tempest.api.network +${ODL_BOOT_WAIT_URL} restconf/operational/network-topology:network-topology/topology/netvirt:1 +${default_devstack_prompt_timeout} 10s +${devstack_workspace} ~/ds_workspace +${DEVSTACK_SYSTEM_PASSWORD} \ # set to empty, but provide for others to override if desired +${CLEAN_DEVSTACK_HOST} False + +*** Keywords *** +Run Tempest Tests + [Arguments] ${tempest_regex} ${timeout}=600s + Write Commands Until Prompt cd /opt/stack/new/tempest + Write Commands Until Prompt sudo rm -rf /opt/stack/new/tempest/.testrepository + Write Commands Until Prompt sudo testr init + ${results}= Write Commands Until Prompt sudo -E testr run ${tempest_regex} --subunit | subunit-trace --no-failure-debug -f timeout=${timeout} + Should Contain ${results} Failed: 0 + # TODO: also need to verify some non-zero pass count as well as other results are ok (e.g. skipped, etc) + +Devstack Suite Setup + SSHLibrary.Open Connection ${DEVSTACK_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} + Utils.Flexible SSH Login ${DEVSTACK_SYSTEM_USER} ${DEVSTACK_SYSTEM_PASSWORD} + SSHLibrary.Set Client Configuration timeout=${default_devstack_prompt_timeout} + Run Keyword If ${CLEAN_DEVSTACK_HOST} Clean DevStack Host In Case It Is Not Sterile + Write Commands Until Prompt export PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin + Write Commands Until Prompt export ODL_VERSION=${ODL_VERSION} + Write Commands Until Prompt export OPENSTACK_BRANCH=${OPENSTACK_BRANCH} + Write Commands Until Prompt export TEMPEST_REGEX=${TEMPEST_REGEX} + Write Commands Until Prompt export ODL_BOOT_WAIT_URL=${ODL_BOOT_WAIT_URL} + ${odl_version_to_install}= Get Networking ODL Version Of Release ${ODL_VERSION} + Write Commands Until Prompt export DEVSTACK_LOCAL_CONFIG="enable_plugin networking-odl https://git.openstack.org/openstack/networking-odl ${NETWORKING-ODL_BRANCH};" + Write Commands Until Prompt export DEVSTACK_LOCAL_CONFIG+="ODL_NETVIRT_DEBUG_LOGS=True;ODL_RELEASE=${odl_version_to_install};" + Write Commands Until Prompt echo $DEVSTACK_LOCAL_CONFIG + Write Commands Until Prompt export OVERRIDE_ZUUL_BRANCH=${OPENSTACK_BRANCH} + Write Commands Until Prompt export PYTHONUNBUFFERED=true + Write Commands Until Prompt export DEVSTACK_GATE_TIMEOUT=120 + Write Commands Until Prompt export DEVSTACK_GATE_TEMPEST=1 + Write Commands Until Prompt export DEVSTACK_GATE_NEUTRON=1 + Write Commands Until Prompt export KEEP_LOCALRC=1 + Write Commands Until Prompt export PROJECTS="openstack/networking-odl $PROJECTS" + Write Commands Until Prompt export DEVSTACK_GATE_TEMPEST_REGEX=tempest.api.network.test_ports.PortsTestJSON.test_show_port + Write Commands Until Prompt sudo yum -y install redhat-lsb-core indent python-testrepository timeout=120s + Write Commands Until Prompt sudo /usr/sbin/groupadd ${DEVSTACK_SYSTEM_USER} + Write Commands Until Prompt sudo mkdir -p /opt/stack/new + Write Commands Until Prompt sudo chown -R ${DEVSTACK_SYSTEM_USER}:${DEVSTACK_SYSTEM_USER} /opt/stack/new + Write Commands Until Prompt sudo bash -c 'echo "stack ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' + Write Commands Until Prompt sudo mkdir -p /usr/local/${DEVSTACK_SYSTEM_USER}/slave_scripts + Write Commands Until Prompt git clone https://github.com/openstack/os-testr.git timeout=30s + Write Commands Until Prompt cd os-testr/os_testr + Write Commands Until Prompt sudo cp subunit2html.py /usr/local/${DEVSTACK_SYSTEM_USER}/slave_scripts + Write Commands Until Prompt mkdir -p ${devstack_workspace} + Write Commands Until Prompt cd ${devstack_workspace} + Write Commands Until Prompt export WORKSPACE=${devstack_workspace} + Write Commands Until Prompt rm -rf devstack-gate + Write Commands Until Prompt git clone https://git.openstack.org/openstack-infra/devstack-gate timeout=30s + +Clean DevStack Host In Case It Is Not Sterile + [Documentation] In upstream CI, the expectation is that the devstack VM is fresh, sterile and ready + ... for any version of devstack, networking-odl, and OpenDaylight. During local test development, + ... it can be faster to just clean the needed packages, configurations, repos, files, etc. instead of + ... spinning up a new system. This keyword serves as a living list of those items needed to prep a + ... potentially non-sterile devstack system. + Write Commands Until Prompt pgrep python | awk '{print "sudo kill",$1}' | sh + Write Commands Until Prompt pgrep java | awk '{print "sudo kill",$1}' | sh + Write Commands Until Prompt rpm -qa | grep rdo + Write Commands Until Prompt sudo rpm -e $(sudo rpm -qa | grep rdo) + Write Commands Until Prompt sudo yum remove -y pyOpenSSL + Write Commands Until Prompt sudo -H pip uninstall -y virtualenv + Write Commands Until Prompt sudo rm -rf /tmp/ansible /opt/stack + Write Commands Until Prompt rm -rf ${devstack_workspace} ~/os-testr + Write Commands Until Prompt sudo ovs-vsctl del-br br-ex + Write Commands Until Prompt sudo ovs-vsctl del-br br-int + Write Commands Until Prompt sudo ovs-vsctl del-manager + +Write Commands Until Prompt + [Arguments] ${cmd} ${timeout}=${default_devstack_prompt_timeout} + [Documentation] quick wrapper for Write and Read Until Prompt Keywords to make test cases more readable + SSHLibrary.Set Client Configuration timeout=${timeout} + SSHLibrary.Write ${cmd} + ${output}= SSHLibrary.Read Until Prompt + [Return] ${output} + +Get Networking ODL Version Of Release + [Arguments] ${version} + # once Beryllium SR1 goes out, we can change beryllium-latest to use 0.4.2 + Return From Keyword If "${version}" == "beryllium-latest" beryllium-snapshot-0.4.1 + Return From Keyword If "${version}" == "beryllium-SR1" beryllium-snapshot-0.4.1 + Return From Keyword If "${version}" == "beryllium" beryllium-snapshot-0.4.0 + Return From Keyword If "${version}" == "lithium-latest" lithium-snapshot-0.3.5 + Return From Keyword If "${version}" == "lithium-SR4" lithium-snapshot-0.3.4 + Return From Keyword If "${version}" == "lithium-SR3" lithium-snapshot-0.3.3 + Return From Keyword If "${version}" == "lithium-SR2" lithium-snapshot-0.3.2 + Return From Keyword If "${version}" == "lithium-SR1" lithium-snapshot-0.3.1 + # FYI networking-odl no longer has this for some reason. + Return From Keyword If "${version}" == "lithium" lithium-snapshot-0.3.0 + Return From Keyword If "${version}" == "helium" helium + +Show Devstack Debugs + Write Commands Until Prompt gunzip /opt/stack/logs/devstacklog.txt.gz + Write Commands Until Prompt tail -n2000 /opt/stack/logs/devstacklog.txt timeout=600s + Write Commands Until Prompt grep 'distribution-karaf.*zip' /opt/stack/logs/devstacklog.txt diff --git a/csit/libraries/OpenStackOperations.robot b/csit/libraries/OpenStackOperations.robot new file mode 100644 index 0000000000..9d29acfbad --- /dev/null +++ b/csit/libraries/OpenStackOperations.robot @@ -0,0 +1,112 @@ +*** Settings *** +Documentation Netvirt library. This library is useful for tests to create network, subnet, router and vm instances +Library SSHLibrary +Resource Utils.robot +Variables ../variables/Variables.py + +*** Keywords *** +Create Network + [Arguments] ${network_name} + [Documentation] Create Network with neutron request. + ${output}= Write Commands Until Prompt cd /opt/stack/new/devstack && cat localrc + Log ${output} + ${output}= Write Commands Until Prompt source openrc admin admin + Log ${output} + ${output}= Write Commands Until Prompt neutron -v net-create ${network_name} + Log ${output} + Should Contain ${output} Created a new network + +Delete Network + [Arguments] ${network_name} + [Documentation] Delete Network with neutron request. + ${output}= Write Commands Until Prompt neutron -v net-delete ${network_name} + Log ${output} + Should Contain ${output} Deleted network: ${network_name} + +Create SubNet + [Arguments] ${network_name} + [Documentation] Create SubNet for the Network with neutron request. + ${subnet}= Set Variable If "${network_name}"=="net1_network" subnet1 subnet2 + ${range_ip}= Set Variable If "${network_name}"=="net1_network" 10.0.0.0/24 20.0.0.0/24 + ${output}= Write Commands Until Prompt neutron -v subnet-create ${network_name} ${range_ip} --name ${subnet} + Log ${output} + Should Contain ${output} Created a new subnet + +Verify Gateway Ips + [Documentation] Verifies the Gateway Ips with dump flow. + ${output}= Write Commands Until Prompt sudo ovs-ofctl -O OpenFlow13 dump-flows br-int + Log ${output} + : FOR ${GatewayIpElement} IN @{GATEWAY_IPS} + \ Should Contain ${output} ${GatewayIpElement} + +Verify Dhcp Ips + [Documentation] Verifies the Dhcp Ips with dump flow. + ${output}= Write Commands Until Prompt sudo ovs-ofctl -O OpenFlow13 dump-flows br-int + Log ${output} + : FOR ${DhcpIpElement} IN @{DHCP_IPS} + \ Should Contain ${output} ${DhcpIpElement} + +Verify No Dhcp Ips + [Documentation] Verifies the Dhcp Ips with dump flow. + ${output}= Write Commands Until Prompt sudo ovs-ofctl -O OpenFlow13 dump-flows br-int + Log ${output} + : FOR ${DhcpIpElement} IN @{DHCP_IPS} + \ Should Not Contain ${output} ${DhcpIpElement} + +Delete SubNet + [Arguments] ${network_name} + [Documentation] Delete SubNet for the Network with neutron request. + ${subnet}= Set Variable If "${network_name}"=="net1_network" subnet1 subnet2 + ${output}= Write Commands Until Prompt neutron -v subnet-delete ${subnet} + Log ${output} + Should Contain ${output} Deleted subnet: ${subnet} + +Verify No Gateway Ips + [Documentation] Verifies the Gateway Ips removed with dump flow. + ${output}= Write Commands Until Prompt sudo ovs-ofctl -O OpenFlow13 dump-flows br-int + Log ${output} + : FOR ${GatewayIpElement} IN @{GATEWAY_IPS} + \ Should Not Contain ${output} ${GatewayIpElement} + +Create Vm Instance + [Arguments] ${net_id} ${network_name} + [Documentation] Create Vm Instance with the net id of the Netowrk. + ${VmElement}= Set Variable If "${network_name}"=="net1_network" MyFirstInstance MySecondInstance + ${output}= Write Commands Until Prompt nova boot --image cirros-0.3.4-x86_64-uec --flavor m1.tiny --nic net-id=${net_id} ${VmElement} + Log ${output} + +Delete Vm Instance + [Arguments] ${vm_name} + [Documentation] Delete Vm instances using instance names. + ${output}= Write Commands Until Prompt nova delete ${vm_name} + Log ${output} + +Get Net Id + [Arguments] ${network_name} + [Documentation] Retrieve the net id for the given network name to create specific vm instance + ${output}= Write Commands Until Prompt neutron net-list | grep "${network_name}" | get_field 1 + Log ${output} + ${splitted_output}= Split String ${output} \ + ${net_id}= Get from List ${splitted_output} 0 + Log ${net_id} + [Return] ${net_id} + +Create Router + [Documentation] Create Router and Add Interface to the subnets. + ${output}= Write Commands Until Prompt neutron -v router-create router_1 + Log ${output} + : FOR ${SubnetElement} IN @{SUBNETS_NAME} + \ ${output}= Write Commands Until Prompt neutron -v router-interface-add router_1 ${SubnetElement} + Log ${output} + +Remove Interface + [Documentation] Remove Interface to the subnets. + : FOR ${SubnetElement} IN @{SUBNETS_NAME} + \ ${output}= Write Commands Until Prompt neutron -v router-interface-delete router_1 ${SubnetElement} + \ Log ${output} + +Delete Router + [Documentation] Delete Router and Interface to the subnets. + ${output}= Write Commands Until Prompt neutron -v router-delete router_1 + Log ${output} + diff --git a/csit/suites/ovsdb/Devstack_Tempest_Tests/01__single_node_devstack_tempest_tests.robot b/csit/suites/ovsdb/Devstack_Tempest_Tests/01__single_node_devstack_tempest_tests.robot index ca3a0c537d..980fed3f64 100644 --- a/csit/suites/ovsdb/Devstack_Tempest_Tests/01__single_node_devstack_tempest_tests.robot +++ b/csit/suites/ovsdb/Devstack_Tempest_Tests/01__single_node_devstack_tempest_tests.robot @@ -5,17 +5,16 @@ Library SSHLibrary Library OperatingSystem Library RequestsLibrary Resource ../../../libraries/Utils.robot +Resource ../../../libraries/OpenStackOperations.robot +Resource ../../../libraries/DevstackUtils.robot *** Variables *** -${ODL_VERSION} lithium-SR3 -${OPENSTACK_BRANCH} stable/liberty -${NETWORKING-ODL_BRANCH} ${OPENSTACK_BRANCH} -${TEMPEST_REGEX} tempest.api.network -${ODL_BOOT_WAIT_URL} restconf/operational/network-topology:network-topology/topology/netvirt:1 -${default_devstack_prompt_timeout} 10s -${devstack_workspace} ~/ds_workspace -${DEVSTACK_SYSTEM_PASSWORD} \ # set to empty, but provide for others to override if desired -${CLEAN_DEVSTACK_HOST} False +@{NETWORKS_NAME} net1_network net2_network +@{SUBNETS_NAME} subnet1 subnet2 +@{VM_INSTANCES_NAME} MyFirstInstance MySecondInstance +@{VM_IPS} 10.0.0.3 20.0.0.3 +@{GATEWAY_IPS} 10.0.0.1 20.0.0.1 +@{DHCP_IPS} 10.0.0.2 20.0.0.2 *** Test Cases *** Run Devstack Gate Wrapper @@ -38,98 +37,107 @@ Validate Neutron and Networking-ODL Versions tempest.api.network Run Tempest Tests ${TEST_NAME} -tempest - [Tags] exclude - Run Tempest Tests ${TEST_NAME} 900s - -*** Keywords *** -Run Tempest Tests - [Arguments] ${tempest_regex} ${timeout}=600s - Write Commands Until Prompt cd /opt/stack/new/tempest - Write Commands Until Prompt sudo rm -rf /opt/stack/new/tempest/.testrepository - Write Commands Until Prompt sudo testr init - ${results}= Write Commands Until Prompt sudo -E testr run ${tempest_regex} --subunit | subunit-trace --no-failure-debug -f timeout=${timeout} - Should Contain ${results} Failed: 0 - # TODO: also need to verify some non-zero pass count as well as other results are ok (e.g. skipped, etc) - -Devstack Suite Setup - SSHLibrary.Open Connection ${DEVSTACK_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} - Utils.Flexible SSH Login ${DEVSTACK_SYSTEM_USER} ${DEVSTACK_SYSTEM_PASSWORD} - SSHLibrary.Set Client Configuration timeout=${default_devstack_prompt_timeout} - Run Keyword If ${CLEAN_DEVSTACK_HOST} Clean DevStack Host In Case It Is Not Sterile - Write Commands Until Prompt export PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin - Write Commands Until Prompt export ODL_VERSION=${ODL_VERSION} - Write Commands Until Prompt export OPENSTACK_BRANCH=${OPENSTACK_BRANCH} - Write Commands Until Prompt export TEMPEST_REGEX=${TEMPEST_REGEX} - Write Commands Until Prompt export ODL_BOOT_WAIT_URL=${ODL_BOOT_WAIT_URL} - ${odl_version_to_install}= Get Networking ODL Version Of Release ${ODL_VERSION} - Write Commands Until Prompt export DEVSTACK_LOCAL_CONFIG="enable_plugin networking-odl https://git.openstack.org/openstack/networking-odl ${NETWORKING-ODL_BRANCH};" - Write Commands Until Prompt export DEVSTACK_LOCAL_CONFIG+="ODL_NETVIRT_DEBUG_LOGS=True;ODL_RELEASE=${odl_version_to_install};" - Write Commands Until Prompt echo $DEVSTACK_LOCAL_CONFIG - Write Commands Until Prompt export OVERRIDE_ZUUL_BRANCH=${OPENSTACK_BRANCH} - Write Commands Until Prompt export PYTHONUNBUFFERED=true - Write Commands Until Prompt export DEVSTACK_GATE_TIMEOUT=120 - Write Commands Until Prompt export DEVSTACK_GATE_TEMPEST=1 - Write Commands Until Prompt export DEVSTACK_GATE_NEUTRON=1 - Write Commands Until Prompt export KEEP_LOCALRC=1 - Write Commands Until Prompt export PROJECTS="openstack/networking-odl $PROJECTS" - Write Commands Until Prompt export DEVSTACK_GATE_TEMPEST_REGEX=tempest.api.network.test_ports.PortsTestJSON.test_show_port - Write Commands Until Prompt sudo yum -y install redhat-lsb-core indent python-testrepository timeout=120s - Write Commands Until Prompt sudo /usr/sbin/groupadd ${DEVSTACK_SYSTEM_USER} - Write Commands Until Prompt sudo mkdir -p /opt/stack/new - Write Commands Until Prompt sudo chown -R ${DEVSTACK_SYSTEM_USER}:${DEVSTACK_SYSTEM_USER} /opt/stack/new - Write Commands Until Prompt sudo bash -c 'echo "stack ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' - Write Commands Until Prompt sudo mkdir -p /usr/local/${DEVSTACK_SYSTEM_USER}/slave_scripts - Write Commands Until Prompt git clone https://github.com/openstack/os-testr.git timeout=30s - Write Commands Until Prompt cd os-testr/os_testr - Write Commands Until Prompt sudo cp subunit2html.py /usr/local/${DEVSTACK_SYSTEM_USER}/slave_scripts - Write Commands Until Prompt mkdir -p ${devstack_workspace} - Write Commands Until Prompt cd ${devstack_workspace} - Write Commands Until Prompt export WORKSPACE=${devstack_workspace} - Write Commands Until Prompt rm -rf devstack-gate - Write Commands Until Prompt git clone https://git.openstack.org/openstack-infra/devstack-gate timeout=30s - -Clean DevStack Host In Case It Is Not Sterile - [Documentation] In upstream CI, the expectation is that the devstack VM is fresh, sterile and ready - ... for any version of devstack, networking-odl, and OpenDaylight. During local test development, - ... it can be faster to just clean the needed packages, configurations, repos, files, etc. instead of - ... spinning up a new system. This keyword serves as a living list of those items needed to prep a - ... potentially non-sterile devstack system. - Write Commands Until Prompt pgrep python | awk '{print "sudo kill",$1}' | sh - Write Commands Until Prompt pgrep java | awk '{print "sudo kill",$1}' | sh - Write Commands Until Prompt rpm -qa | grep rdo - Write Commands Until Prompt sudo rpm -e $(sudo rpm -qa | grep rdo) - Write Commands Until Prompt sudo yum remove -y pyOpenSSL - Write Commands Until Prompt sudo -H pip uninstall -y virtualenv - Write Commands Until Prompt sudo rm -rf /tmp/ansible /opt/stack - Write Commands Until Prompt rm -rf ${devstack_workspace} ~/os-testr - Write Commands Until Prompt sudo ovs-vsctl del-br br-ex - Write Commands Until Prompt sudo ovs-vsctl del-br br-int - Write Commands Until Prompt sudo ovs-vsctl del-manager - -Write Commands Until Prompt - [Arguments] ${cmd} ${timeout}=${default_devstack_prompt_timeout} - [Documentation] quick wrapper for Write and Read Until Prompt Keywords to make test cases more readable - SSHLibrary.Set Client Configuration timeout=${timeout} - SSHLibrary.Write ${cmd} - ${output}= SSHLibrary.Read Until Prompt - [Return] ${output} - -Get Networking ODL Version Of Release - [Arguments] ${version} - # once Beryllium SR1 goes out, we can change beryllium-latest to use 0.4.2 - Return From Keyword If "${version}" == "beryllium-latest" beryllium-snapshot-0.4.1 - Return From Keyword If "${version}" == "beryllium-SR1" beryllium-snapshot-0.4.1 - Return From Keyword If "${version}" == "beryllium" beryllium-snapshot-0.4.0 - Return From Keyword If "${version}" == "lithium-latest" lithium-snapshot-0.3.5 - Return From Keyword If "${version}" == "lithium-SR4" lithium-snapshot-0.3.4 - Return From Keyword If "${version}" == "lithium-SR3" lithium-snapshot-0.3.3 - Return From Keyword If "${version}" == "lithium-SR2" lithium-snapshot-0.3.2 - Return From Keyword If "${version}" == "lithium-SR1" lithium-snapshot-0.3.1 - # FYI networking-odl no longer has this for some reason. - Return From Keyword If "${version}" == "lithium" lithium-snapshot-0.3.0 - Return From Keyword If "${version}" == "helium" helium - -Show Devstack Debugs - Write Commands Until Prompt gunzip /opt/stack/logs/devstacklog.txt.gz - Write Commands Until Prompt tail -n1000 /opt/stack/logs/devstacklog.txt timeout=600s +Create Networks + [Documentation] Create Network with neutron request. + : FOR ${NetworkElement} IN @{NETWORKS_NAME} + \ Create Network ${NetworkElement} + +Create Subnets + [Documentation] Create Sub Nets for the Networks with neutron request. + : FOR ${NetworkElement} IN @{NETWORKS_NAME} + \ Create SubNet ${NetworkElement} + +List Ports + ${output}= Write Commands Until Prompt neutron -v port-list + Log ${output} + +List Available Networks + ${output}= Write Commands Until Prompt neutron -v net-list + Log ${output} + +List Tenants + ${output}= Write Commands Until Prompt keystone tenant-list + Log ${output} + +List Nova + ${output}= Write Commands Until Prompt nova list + Log ${output} + +List Nova Images + ${output}= Write Commands Until Prompt nova image-list + Log ${output} + +List Nova Flavor + ${output}= Write Commands Until Prompt nova flavor-list + Log ${output} + +Create Vm Instances + [Documentation] Create Vm instances using flavor and image names. + : FOR ${NetworkElement} IN @{NETWORKS_NAME} + \ ${net_id}= Get Net Id ${NetworkElement} + \ Create Vm Instance ${net_id} ${NetworkElement} + +Show Details of Created Vm Instance + [Documentation] View Details of the created vm instances using nova show. + : FOR ${VmElement} IN @{VM_INSTANCES_NAME} + \ ${output}= Write Commands Until Prompt nova show ${VmElement} + \ Log ${output} + +Verify Created Vm Instance In Dump Flow + [Documentation] Verify the existence of the created vm instance ips in the dump flow. + ${output}= Write Commands Until Prompt sudo ovs-ofctl -O OpenFlow13 dump-flows br-int + Log ${output} + : FOR ${VmIpElement} IN @{VM_IPS} + \ Should Contain ${output} ${VmIpElement} + +Create Routers + [Documentation] Create Router and Add Interface to the subnets. + Create Router + +Verify Gateway Ip After Interface Added + [Documentation] Verify the existence of the gateway ips with the dump flow in Beryllium. + Run Keyword If "${ODL_VERSION}" == "lithium-latest" Run Keyword And Ignore Error Verify Gateway Ips + ... ELSE IF "${ODL_VERSION}" != "lithium-latest" Verify Gateway Ips + +Verify Dhcp Flow Entries + [Documentation] Verify Created SubNets for the Networks with the dump flow in Beryllium. + Run Keyword If "${ODL_VERSION}" == "lithium-latest" Run Keyword And Ignore Error Verify Dhcp Ips + ... ELSE IF "${ODL_VERSION}" != "lithium-latest" Verify Dhcp Ips + +Delete Vm Instances + [Documentation] Delete Vm instances using instance names. + : FOR ${VmElement} IN @{VM_INSTANCES_NAME} + \ Delete Vm Instance ${VmElement} + +Verify Deleted Vm Instance Removed In Dump Flow + [Documentation] Verify the non-existence of the vm instance ips in the dump flow. + : FOR ${VmIpElement} IN @{VM_IPS} + \ ${output}= Write Commands Until Prompt sudo ovs-ofctl -O OpenFlow13 dump-flows br-int + \ Log ${output} + \ Should Not Contain ${output} ${VmIpElement} + +Delete Router Interfaces + [Documentation] Remove Interface to the subnets. + Remove Interface + +Delete Routers + [Documentation] Delete Router and Interface to the subnets. + Delete Router + +Verify Deleted Routers + [Documentation] Verify Deleted Routers for the Networks with dump flow. + Verify No Gateway Ips + +Delete Sub Networks + [Documentation] Delete Sub Nets for the Networks with neutron request. + : FOR ${NetworkElement} IN @{NETWORKS_NAME} + \ Delete SubNet ${NetworkElement} + +Delete Networks + [Documentation] Delete Networks with neutron request. + : FOR ${NetworkElement} IN @{NETWORKS_NAME} + \ Delete Network ${NetworkElement} + +Verify Deleted Subnets + [Documentation] Verify Deleted SubNets for the Networks with dump flow. + Verify No Dhcp Ips