a90a3a51821a0d63ecd1447eab47e1ed82533fa9
[integration/test.git] / csit / suites / ovsdb / Devstack_Tempest_Tests / 01__single_node_devstack_tempest_tests.robot
1 *** Settings ***
2 Documentation     Test suite to deploy devstack with networking-odl
3 Suite Setup       Devstack Suite Setup
4 Library           SSHLibrary
5 Library           OperatingSystem
6 Library           RequestsLibrary
7 Resource          ../../../libraries/Utils.robot
8 Resource          ../../../libraries/OpenStackOperations.robot
9 Resource          ../../../libraries/DevstackUtils.robot
10
11 *** Variables ***
12 @{NETWORKS_NAME}    net1_network    net2_network
13 @{SUBNETS_NAME}    subnet1    subnet2
14 @{VM_INSTANCES_NAME}    MyFirstInstance    MySecondInstance
15 @{VM_IPS}         10.0.0.3    20.0.0.3
16 @{GATEWAY_IPS}    10.0.0.1    20.0.0.1
17 @{DHCP_IPS}       10.0.0.2    20.0.0.2
18
19 *** Test Cases ***
20 Run Devstack Gate Wrapper
21     Write Commands Until Prompt    unset GIT_BASE
22     Write Commands Until Prompt    env
23     ${output}=    Write Commands Until Prompt    ./devstack-gate/devstack-vm-gate-wrap.sh    timeout=3600s    #60min
24     Log    ${output}
25     Should Not Contain    ${output}    ERROR: the main setup script run by this job failed
26     # workaround for https://bugs.launchpad.net/networking-odl/+bug/1512418
27     Write Commands Until Prompt    cd /opt/stack/new/tempest-lib
28     Write Commands Until Prompt    sudo python setup.py install
29     [Teardown]    Show Devstack Debugs
30
31 Validate Neutron and Networking-ODL Versions
32     ${output}=    Write Commands Until Prompt    cd /opt/stack/new/neutron; git branch;
33     Should Contain    ${output}    * ${OPENSTACK_BRANCH}
34     ${output}=    Write Commands Until Prompt    cd /opt/stack/new/networking-odl; git branch;
35     Should Contain    ${output}    * ${NETWORKING-ODL_BRANCH}
36
37 tempest.api.network
38     Run Tempest Tests    ${TEST_NAME}
39
40 Create Networks
41     [Documentation]    Create Network with neutron request.
42     : FOR    ${NetworkElement}    IN    @{NETWORKS_NAME}
43     \    Create Network    ${NetworkElement}
44
45 Create Subnets For net1_network
46     [Documentation]    Create Sub Nets for the Networks with neutron request.
47     Create SubNet    net1_network    subnet1    10.0.0.0/24
48
49 Create Subnets For net2_network
50     [Documentation]    Create Sub Nets for the Networks with neutron request.
51     Create SubNet    net2_network    subnet2    20.0.0.0/24
52
53 List Ports
54     ${output}=    Write Commands Until Prompt    neutron -v port-list
55     Log    ${output}
56
57 List Available Networks
58     ${output}=    Write Commands Until Prompt    neutron -v net-list
59     Log    ${output}
60
61 List Tenants
62     ${output}=    Write Commands Until Prompt    keystone tenant-list
63     Log    ${output}
64
65 List Nova
66     ${output}=    Write Commands Until Prompt    nova list
67     Log    ${output}
68
69 List Nova Images
70     ${output}=    Write Commands Until Prompt    nova image-list
71     Log    ${output}
72
73 List Nova Flavor
74     ${output}=    Write Commands Until Prompt    nova flavor-list
75     Log    ${output}
76
77 Create Vm Instances
78     [Documentation]    Create Vm instances using flavor and image names.
79     : FOR    ${NetworkElement}    IN    @{NETWORKS_NAME}
80     \    ${net_id}=    Get Net Id    ${NetworkElement}
81     \    Create Vm Instance    ${net_id}    ${NetworkElement}
82
83 Show Details of Created Vm Instance
84     [Documentation]    View Details of the created vm instances using nova show.
85     : FOR    ${VmElement}    IN    @{VM_INSTANCES_NAME}
86     \    ${output}=    Write Commands Until Prompt    nova show ${VmElement}
87     \    Log    ${output}
88
89 Verify Created Vm Instance In Dump Flow
90     [Documentation]    Verify the existence of the created vm instance ips in the dump flow.
91     ${output}=    Write Commands Until Prompt    sudo ovs-ofctl -O OpenFlow13 dump-flows br-int
92     Log    ${output}
93     : FOR    ${VmIpElement}    IN    @{VM_IPS}
94     \    Should Contain    ${output}    ${VmIpElement}
95
96 Create Routers
97     [Documentation]    Create Router and Add Interface to the subnets.
98     Create Router
99
100 Verify Gateway Ip After Interface Added
101     [Documentation]    Verify the existence of the gateway ips with the dump flow in Beryllium.
102     Run Keyword If    "${ODL_VERSION}" == "lithium-latest"    Run Keyword And Ignore Error    Verify Gateway Ips
103     ...    ELSE IF    "${ODL_VERSION}" != "lithium-latest"    Verify Gateway Ips
104
105 Verify Dhcp Flow Entries
106     [Documentation]    Verify Created SubNets for the Networks with the dump flow in Beryllium.
107     Run Keyword If    "${ODL_VERSION}" == "lithium-latest"    Run Keyword And Ignore Error    Verify Dhcp Ips
108     ...    ELSE IF    "${ODL_VERSION}" != "lithium-latest"    Verify Dhcp Ips
109
110 Delete Vm Instances
111     [Documentation]    Delete Vm instances using instance names.
112     : FOR    ${VmElement}    IN    @{VM_INSTANCES_NAME}
113     \    Delete Vm Instance    ${VmElement}
114
115 Verify Deleted Vm Instance Removed In Dump Flow
116     [Documentation]    Verify the non-existence of the vm instance ips in the dump flow.
117     : FOR    ${VmIpElement}    IN    @{VM_IPS}
118     \    ${output}=    Write Commands Until Prompt    sudo ovs-ofctl -O OpenFlow13 dump-flows br-int
119     \    Log    ${output}
120     \    Should Not Contain    ${output}    ${VmIpElement}
121
122 Delete Router Interfaces
123     [Documentation]    Remove Interface to the subnets.
124     Remove Interface
125
126 Delete Routers
127     [Documentation]    Delete Router and Interface to the subnets.
128     Delete Router
129
130 Verify Deleted Routers
131     [Documentation]    Verify Deleted Routers for the Networks with dump flow.
132     Verify No Gateway Ips
133
134 Delete Sub Networks In net1_network
135     [Documentation]    Delete Sub Nets for the Networks with neutron request.
136     Delete SubNet    subnet1
137
138 Delete Sub Networks In net2_network
139     [Documentation]    Delete Sub Nets for the Networks with neutron request.
140     Delete SubNet    subnet2
141
142 Delete Networks
143     [Documentation]    Delete Networks with neutron request.
144     : FOR    ${NetworkElement}    IN    @{NETWORKS_NAME}
145     \    Delete Network    ${NetworkElement}
146
147 Verify Deleted Subnets
148     [Documentation]    Verify Deleted SubNets for the Networks with dump flow.
149     Verify No Dhcp Ips