047dd06841fa61a190a2968a1f87230146a88a7f
[integration/test.git] / csit / suites / groupbasedpolicy / GBP / Devstack / 02__neutron-mapper_test.robot
1 *** Settings ***
2 Documentation     Testing of Group Based Policy Neutron-Mapper
3 Suite Setup       Devstack Suite Setup
4 Suite Teardown    Clean Suite
5 Library           SSHLibrary
6 Library           OperatingSystem
7 Library           RequestsLibrary
8 Library           String
9 Resource          Variables.robot
10 Resource          ../../../../variables/gbp/Constants.robot
11 Resource          ../../../../libraries/Utils.robot
12 Resource          ../../../../libraries/GBP/RestconfUtils.robot
13 Resource          ../../../../libraries/GBP/AssertionUtils.robot
14 Resource          ../../../../libraries/DevstackUtils.robot
15 Resource          ../../../../libraries/OpenStackOperations.robot
16
17 *** Variables ***
18 ${NETWORK_NAME}    net123
19 ${SUBNET_NAME}    subnet123
20 ${CLIENT_SG}      client_sg
21 ${SERVER_SG}      server_sg
22 ${TENANTS_CONF_PATH}    restconf/config/policy:tenants
23 ${CLIENT_PORT_IP}    10.0.0.5
24 ${SERVER_PORT_IP}    10.0.0.6
25 ${CLIENT_PORT_NAME}    client
26 ${SERVER_PORT_NAME}    server
27 ${REMOTE_IP_PREFIX}    10.0.0.0/24
28 ${SUBNET_IP_PREFIX}    10.0.0.0/24
29 ${ROUTER_NAME}    router123
30 ${TENANT_ID}      ${EMPTY}
31 ${SUBNET_ID}      ${EMPTY}
32 ${FLOOD_DOMAIN_ID}    ${EMPTY}
33 ${BRIDGE_DOMAIN_ID}    ${EMPTY}
34 ${L3_CONTEXT_ID}    ${EMPTY}
35 ${GROUP_RULE_ID}    ${EMPTY}
36 ${CLIENT_MAC_ADDR}    ${EMPTY}
37 ${SERVER_MAC_ADDR}    ${EMPTY}
38 ${CLIENT_SG_ID}    ${EMPTY}
39 ${SERVER_SG_ID}    ${EMPTY}
40 ${ROUTER_ID}      ${EMPTY}
41
42 *** Test Cases ***
43 Test Resolve Tenant ID
44     [Documentation]    Test reading tenant id from default security group
45     ${tenant_id}    Get Tenant ID From Security Group
46     ${tenant_id}=    To Uuid    ${tenant_id}
47     Should Match Regexp    ${tenant_id}    ${UUID_PATTERN}
48     Set Global Variable    ${TENANT_ID}    ${tenant_id}
49
50 Test Create Network
51     [Documentation]    Create sec group and verify data generated in GBP
52     ${uuid}    Create Network    net123    verbose=FALSE
53     ${l2_fd_id}    Should Match Regexp    ${uuid}    ${UUID_PATTERN}
54     ${l2_fd_path}    Get L2 Flood Domain Path    ${TENANT_ID}    ${l2_fd_id}
55     ${l2_fd}    Get Data From URI    session    ${l2_fd_path}    headers=${headers}
56     ${l2_bd_id}    Assert L2-Flood-Domain    ${l2_fd}    ${NETWORK_NAME}
57     ${l2_bd_path}    Get L2 Bridge Domain Path    ${TENANT_ID}    ${l2_bd_id}
58     ${l2_bd}    Get Data From URI    session    ${l2_bd_path}    headers=${headers}
59     ${l3_ctx_id}    Assert L2-Bridge-Domain    ${l2_bd}    ${NETWORK_NAME}
60     ${l3_ctx_path}    Get L3 Context Path    ${TENANT_ID}    ${l3_ctx_id}
61     ${l3_ctx}    Get Data From URI    session    ${l3_ctx_path}    headers=${headers}
62     Assert L3-Context    ${l3_ctx}    ${NETWORK_NAME}
63     Set Global Variable    ${FLOOD_DOMAIN_ID}    ${l2_fd_id}
64     Set Global Variable    ${BRIDGE_DOMAIN_ID}    ${l2_bd_id}
65     Set Global Variable    ${L3_CONTEXT_ID}    ${l3_ctx_id}
66
67 *** Keywords ***
68 Create Neutron Entity And Return ID
69     [Arguments]    ${cmd}    ${pattern}=${UUID_PATTERN}
70     [Documentation]    Designed for creating neutron entities and returing their IDs.
71     ${output}    Write Commands Until Prompt    ${cmd} | grep -w id | awk '{print $4}'
72     Should Not Be Empty    ${output}
73     ${id}    Should Match Regexp    ${output}    ${pattern}
74     [Return]    ${id}
75
76 To Uuid
77     [Arguments]    ${init_string}
78     [Documentation]    Insert dashes if missing to generate proper UUID string.
79     Should Match Regexp    ${init_string}    ${UUID_NO_DASHES}
80     ${first}    Get Substring    ${init_string}    0    8
81     ${second}    Get Substring    ${init_string}    8    12
82     ${third}    Get Substring    ${init_string}    12    16
83     ${fourth}    Get Substring    ${init_string}    16    20
84     ${fifth}    Get Substring    ${init_string}    20    32
85     [Return]    ${first}-${second}-${third}-${fourth}-${fifth}
86
87 Clean Suite
88     [Documentation]    Clears Openstack. This is also helpful when debugging tests locally.
89     ${output}    Write Commands Until Prompt    neutron net-delete net123
90     Should Match Regexp    ${output}    Deleted|Removed
91     Delete All Sessions