*** Settings ***
Documentation Test Suite for Neutron Security Group
-Suite Setup BuiltIn.Run Keywords SetupUtils.Setup_Utils_For_Setup_And_Teardown
-... AND DevstackUtils.Devstack Suite Setup
-Suite Teardown SSHLibrary.Close All Connections
+Suite Setup OpenStackOperations.OpenStack Suite Setup
+Suite Teardown OpenStackOperations.OpenStack Suite Teardown
Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
Test Teardown OpenStackOperations.Get Test Teardown Debugs
Library SSHLibrary
Library RequestsLibrary
Library json
Resource ../../../libraries/DevstackUtils.robot
+Resource ../../../libraries/OpenStackOperations.robot
Resource ../../../libraries/SetupUtils.robot
Resource ../../../variables/Variables.robot
${SECURITY_GROUPS} --security-group
@{SGS} sgs_sg_1 sgs_sg_2 sgs_sg_3 sgs_sg_4
${SG_UPDATED} SSH_UPDATED
-${ADD_ARG_SSH5} --direction ingress --ethertype IPv4 --port_range_max 20 --port_range_min 25 --protocol tcp
+${ADD_ARG_SSH5} --ingress --ethertype IPv4 --dst-port 25:20 --protocol tcp
@{ADD_PARAMS} ingression IPv4 20 25 tcp
-${ADD_ARG_SSH6} --direction ingress --ethertype IPv4 --port_range_max 25 --port_range_min -1 --protocol tcp
-${ADD_ARG_SSH7} --direction ingress --ethertype IPv4 --port_range_max -1 --port_range_min 20 --protocol tcp
-${PORT_RANGE_ERROR} For TCP/UDP protocols, port_range_min must be <= port_range_max
-${INVALID_PORT_RANGE_MIN} Invalid value for port
+${ADD_ARG_SSH6} --ingress --ethertype IPv4 --dst-port -1:25 --protocol tcp
+${ADD_ARG_SSH7} --ingress --ethertype IPv4 --dst-port 20:-1 --protocol tcp
+${PORT_RANGE_ERROR} argument --dst-port: Invalid range, 25 is not less than 20
+${INVALID_MIN_PORT} argument --dst-port: expected one argument
+${INVALID_MAX_PORT} argument --dst-port: Invalid range, 20 is not less than -1
*** Testcases ***
TC01_Update Security Group description and Name
[Tags] Regression
${sg_id} = BuiltIn.Run Keyword Create Security Group and Validate ${SGS[0]}
Create Security Rule and Validate ${SGS[0]} direction=${ADD_PARAMS[0]} ethertype=${ADD_PARAMS[1]} port_range_max=${ADD_PARAMS[3]} port_range_min=${ADD_PARAMS[2]} protocol=${ADD_PARAMS[4]}
- Get Flows ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
- Neutron Setup Creation ${NETWORKS[0]} ${SUBNETS[0]} ${IP_SUBNETS[0]} ${PORTS[0]} ${PORTS[1]} ${SECURITY_GROUPS}
- ... ${sg_id}
+ Neutron Setup Creation ${NETWORKS[0]} ${SUBNETS[0]} ${IP_SUBNETS[0]} ${PORTS[0]} ${PORTS[1]} ${sg_id}
Security group verification on Neutron port ${PORTS[0]} ${sg_id}
Security group verification on Neutron port ${PORTS[1]} ${sg_id}
Update Security Group Description and Verification ${sg_id} ${DESCRIPTION} ${VERIFY_DESCRIPTION}
Update Security Group Name and Verification ${sg_id} ${NAME_UPDATE} ${VERIFY_NAME}
TC02_Create Security Rule with port_range_min > port_range_max
- [Documentation] This test case validates the security group and rule creation with optional parameters Create Security Rule with port_range_min greater than port_range_max
+ [Documentation] Create Security Rule with port_range_min greater than port_range_max
[Tags] Regression
Create Security Group and Validate ${SGS[1]}
- Get Flows ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
Neutron Rule Creation With Invalid Parameters ${SGS[1]} ${ADD_ARG_SSH5} ${PORT_RANGE_ERROR}
TC03_Create Security Rule with port_range_min = -1
- [Documentation] This test case validates the security group and rule creation with optional parameters, Create Security Rule with port_range_min = -1
+ [Documentation] Create Security Rule with port_range_min = -1
[Tags] Regression
Create Security Group and Validate ${SGS[2]}
- Get Flows ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
- Neutron Rule Creation With Invalid Parameters ${SGS[2]} ${ADD_ARG_SSH6} ${INVALID_PORT_RANGE_MIN}
+ Neutron Rule Creation With Invalid Parameters ${SGS[2]} ${ADD_ARG_SSH6} ${INVALID_MIN_PORT}
TC04_Create Security Rule with port_range_max = -1
- [Documentation] This test case validates the security group and rule creation with optional parameters, Create Security Rule with port_range_max = -1
+ [Documentation] Create Security Rule with port_range_max = -1
[Tags] Regression
Create Security Group and Validate ${SGS[3]}
- Get Flows ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
- Neutron Rule Creation With Invalid Parameters ${SGS[3]} ${ADD_ARG_SSH7} ${INVALID_PORT_RANGE_MIN}
-
-Cleanup
- @{vms} = BuiltIn.Create List
- @{sgs} = BuiltIn.Create List ${SG_UPDATED} @{SGS}
- OpenStackOperations.Neutron Cleanup ${vms} ${NETWORKS} ${SUBNETS} ${PORTS} ${sgs}
+ Neutron Rule Creation With Invalid Parameters ${SGS[3]} ${ADD_ARG_SSH7} ${INVALID_MAX_PORT}
*** Keywords ***
-Get Flows
- [Arguments] ${OS_COMPUTE_1_IP} ${OS_COMPUTE_2_IP}
- [Documentation] Get the Flows from DPN1 and DPN2
- ${resp} = Utils.Run Command On Remote System And Log ${OS_COMPUTE_1_IP} sudo ovs-ofctl dump-flows br-int -O OpenFlow13
- ${resp} = Utils.Run Command On Remote System And Log ${OS_COMPUTE_1_IP} sudo ovs-ofctl dump-groups br-int -OOpenflow13
- ${resp} = Utils.Run Command On Remote System And Log ${OS_COMPUTE_2_IP} sudo ovs-ofctl dump-flows br-int -O OpenFlow13
- ${resp} = Utils.Run Command On Remote System And Log ${OS_COMPUTE_2_IP} sudo ovs-ofctl dump-groups br-int -OOpenflow13
-
Create Security Group and Validate
[Arguments] ${sg_ssh}
${output} ${sg_id} = OpenStackOperations.Neutron Security Group Create ${sg_ssh}
BuiltIn.Wait Until Keyword Succeeds 10s 2s Utils.Check For Elements At URI ${SEC_RULE_API} ${rule_ids}
Neutron Setup Creation
- [Arguments] ${network} ${subnet} ${ip_subnet} ${port1} ${port2} ${sg_groups}
- ... ${sg_id}
+ [Arguments] ${network} ${subnet} ${ip_subnet} ${port1} ${port2} ${sg_id}
${net_id} = OpenStackOperations.Create Network ${network}
${subnet_id} = OpenStackOperations.Create SubNet ${network} ${subnet} ${ip_subnet}
- ${add_args} = BuiltIn.Set Variable ${sg_groups} ${sg_id}
- ${port_id} OpenStackOperations.Create Neutron Port With Additional Params ${network} ${port1} ${add_args}
- ${port_id} OpenStackOperations.Create Neutron Port With Additional Params ${network} ${port2} ${add_args}
+ ${port_id} = OpenStackOperations.Create Port ${network} ${port1} ${sg_id}
+ ${port_id} = OpenStackOperations.Create Port ${network} ${port2} ${sg_id}
Security group verification on Neutron port
[Arguments] ${port} ${sg_id}
Neutron Rule Creation With Invalid Parameters
[Arguments] ${sg_name} ${additional_args} ${expected_error}
- ${rc} ${output} = OperatingSystem.Run And Return Rc And Output neutron security-group-rule-create ${sg_name} ${additional_args}
+ ${rc} ${output} = Run And Return Rc And Output openstack security group rule create ${additional_args} ${sg_name}
BuiltIn.Log ${output}
BuiltIn.Should Contain ${output} ${expected_error}
- SSHLibrary.Close Connection