Resource ../variables/netvirt/Variables.robot
Variables ../variables/netvirt/Modules.py
+*** Variables ***
+@{VALIDATION_KEYWORDS} Verify Services Verify Expected Default Tunnels Verify Expected Default Tables On Nodes
+${VALIDATION_FILE} /tmp/validations.txt
+
*** Keywords ***
Get Tenant ID From Security Group
[Documentation] Returns tenant ID by reading it from existing default security-group.
OpenStackOperations.Get OvsDebugInfo
BuiltIn.Run Keyword And Ignore Error DataModels.Get Model Dump ${HA_PROXY_IP} ${netvirt_data_models}
KarafKeywords.Fail If Exceptions Found During Test ${test_name} fail=${fail}
+ : FOR ${i} IN RANGE ${NUM_ODL_SYSTEM}
+ \ BuiltIn.Run Keyword And Ignore Error Issue_Command_On_Karaf_Console trace:transactions ${ODL_SYSTEM_${i+1}_IP}
Get Suite Debugs
Get Test Teardown Debugs test_name=${SUITE_NAME} fail=False
\ ${output} = OpenStack CLI openstack security group rule delete ${rule}
Create Allow All SecurityGroup
- [Arguments] ${sg_name} ${ether_type}=IPv4
+ [Arguments] ${sg_name} ${ether_type}=IPv4 ${dual}=False
[Documentation] Allow all TCP/UDP/ICMP packets for this suite
OpenStackOperations.Neutron Security Group Create ${sg_name}
OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=ingress ethertype=${ether_type} port_range_max=65535 port_range_min=1 protocol=tcp
OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=egress ethertype=${ether_type} protocol=icmp
OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=ingress ethertype=${ether_type} port_range_max=65535 port_range_min=1 protocol=udp
OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=egress ethertype=${ether_type} port_range_max=65535 port_range_min=1 protocol=udp
+ BuiltIn.Run Keyword If "${dual}"=="True" Run Keywords OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=ingress ethertype=IPv6
+ ... port_range_max=65535 port_range_min=1 protocol=tcp
+ ... AND OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=egress ethertype=IPv6 port_range_max=65535
+ ... port_range_min=1 protocol=tcp
+ ... AND OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=ingress ethertype=IPv6 protocol=icmp
+ ... AND OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=egress ethertype=IPv6 protocol=icmp
+ ... AND OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=ingress ethertype=IPv6 port_range_max=65535
+ ... port_range_min=1 protocol=udp
+ ... AND OpenStackOperations.Neutron Security Group Rule Create ${sg_name} direction=egress ethertype=IPv6 port_range_max=65535
+ ... port_range_min=1 protocol=udp
Create Neutron Port With Additional Params
[Arguments] ${network_name} ${port_name} ${additional_args}=${EMPTY}
BuiltIn.Set Suite Variable @{tcpdump_port_6653_conn_ids}
BuiltIn.Run Keyword If "${PRE_CLEAN_OPENSTACK_ALL}"=="True" OpenStack Cleanup All
OpenStackOperations.Add OVS Logging On All OpenStack Nodes
- Run_Keyword_If_At_Least_Oxygen Wait Until Keyword Succeeds 60 2 ClusterManagement.Check Status Of Services Is OPERATIONAL @{NETVIRT_DIAG_SERVICES}
- Verify Expected Default Tables On Nodes
+ Validate Deployment
OpenStack Suite Teardown
[Documentation] Wrapper teardown keyword that can be used in any suite running in an openstack environement
: FOR ${i} IN RANGE ${NUM_ODL_SYSTEM}
\ KarafKeywords.Issue Command On Karaf Console threads --list | wc -l ${ODL_SYSTEM_${i+1}_IP}
+Validate Deployment
+ [Documentation] Validate the deployment. Examples to validate are verifying default table
+ ... flows are installed and that the tunnel mesh has been built correctly.
+ Write To Validate File ----------------------------------------\n${SUITE_NAME}\n
+ : FOR ${keyword} IN @{VALIDATION_KEYWORDS}
+ \ ${status} = Builtin.Run Keyword And Return Status ${keyword}
+ \ BuiltIn.Run Keyword If "${status}" == "FAIL" BuiltIn.Run Keywords Write To Validate File Failed: ${keyword}
+ \ ... AND BuiltIn.Fail
+ \ ... ELSE Write To Validate File Passed: ${keyword}
+
+Write To Validate File
+ [Arguments] ${msg}
+ [Documentation] Write the given ${msg} to ${VALIDATION_FILE}. Create the file if not present.
+ ${status} = BuiltIn.Run Keyword And Return Status OperatingSystem.File Should Exist ${VALIDATION_FILE}
+ BuiltIn.Run Keyword If "${status}" == "False" OperatingSystem.Create File ${VALIDATION_FILE}
+ OperatingSystem.Append To File ${VALIDATION_FILE} ${msg}\n
+
Copy DHCP Files From Control Node
[Documentation] Copy the current DHCP files to the robot vm. The keyword must be called
... after the subnet(s) are created and before the subnet(s) are deleted.
@{list} = String.Split String ${output}
[Return] @{list}[0]
+Verify Services
+ [Documentation] Verify if the services are operational
+ Wait Until Keyword Succeeds 60 2 ClusterManagement.Check Status Of Services Is OPERATIONAL @{NETVIRT_DIAG_SERVICES}
+
+Verify Expected Default Tunnels
+ [Documentation] Verify if the default tunnels are created
+ ${output} = ODLTools.Analyze Tunnels test_name=${SUITE_NAME}.Suite Setup
+ BuiltIn.Should Contain ${output} All tunnels are up
+
Verify Expected Default Tables On Nodes
[Arguments] ${node_ips}=@{OS_ALL_IPS}
[Documentation] Verify if Default Table Entries are programmed on all Nodes