X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FOpenStackOperations.robot;h=835089748a3c01b80380bad3b16c28502b88814c;hb=5704d2a15fbcdba8170dd3f7db899ff11e1dc6d1;hp=48dad4dc2f828597cc51aaf59b8f49fa22e138bb;hpb=4275e8c97933a84e01164530f0e8eedb1bd458a5;p=integration%2Ftest.git diff --git a/csit/libraries/OpenStackOperations.robot b/csit/libraries/OpenStackOperations.robot index 48dad4dc2f..835089748a 100644 --- a/csit/libraries/OpenStackOperations.robot +++ b/csit/libraries/OpenStackOperations.robot @@ -9,6 +9,7 @@ Resource DataModels.robot Resource DevstackUtils.robot Resource KarafKeywords.robot Resource L2GatewayOperations.robot +Resource ODLTools.robot Resource OVSDB.robot Resource SetupUtils.robot Resource SSHKeywords.robot @@ -543,15 +544,15 @@ Get ControlNode Connection Get OvsDebugInfo [Documentation] Get the OvsConfig and Flow entries from all Openstack nodes - BuiltIn.Run Keyword If 0 < ${NUM_OS_SYSTEM} OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CNTL_CONN_ID} - BuiltIn.Run Keyword If 1 < ${NUM_OS_SYSTEM} OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CMP1_CONN_ID} - BuiltIn.Run Keyword If 2 < ${NUM_OS_SYSTEM} OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CMP2_CONN_ID} + : FOR ${conn_id} IN @{OS_ALL_CONN_IDS} + \ OpenStackOperations.Get DumpFlows And Ovsconfig ${conn_id} Get Test Teardown Debugs - [Arguments] ${test_name}=${SUITE_NAME}.${TEST_NAME} + [Arguments] ${test_name}=${SUITE_NAME}.${TEST_NAME} ${fail}=${FAIL_ON_EXCEPTIONS} OpenStackOperations.Get OvsDebugInfo BuiltIn.Run Keyword And Ignore Error DataModels.Get Model Dump ${HA_PROXY_IP} ${netvirt_data_models} - Run Keyword If "${FAIL_ON_EXCEPTIONS}"=="True" KarafKeywords.Fail If Exceptions Found During Test ${test_name} + BuiltIn.run Keyword And Ignore Error ODLTools.Get EOS ${HA_PROXY_IP} + KarafKeywords.Fail If Exceptions Found During Test ${test_name} fail=${fail} Get Test Teardown Debugs For SFC [Arguments] ${test_name}=${TEST_NAME} @@ -642,41 +643,6 @@ Neutron Security Group Rule Create ${rule_id} = BuiltIn.Should Match Regexp ${output} ${REGEX_UUID} [Return] ${output} ${rule_id} -Neutron Security Group Rule Create Legacy Cli - [Arguments] ${Security_group_name} &{Kwargs} - [Documentation] Creates neutron security rule with neutron request with or without optional params, here security group name is mandatory args, rule with optional params can be created by passing the optional args values ex: direction=${INGRESS_EGRESS}, Then these optional params are BuiltIn.Catenated with mandatory args, example of usage: "OpenStack Neutron Security Group Rule Create ${SGP_SSH} direction=${RULE_PARAMS[0]} ethertype=${RULE_PARAMS[1]} ..." - BuiltIn.Run Keyword If ${Kwargs} BuiltIn.Log ${Kwargs} - ${description} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} description default=${None} - ${direction} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} direction default=${None} - ${ethertype} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} ethertype default=${None} - ${port_range_max} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} port_range_max default=${None} - ${port_range_min} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} port_range_min default=${None} - ${protocol} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} protocol default=${None} - ${remote_group_id} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} remote_group_id default=${None} - ${remote_ip_prefix} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} remote_ip_prefix default=${None} - ${cmd} = BuiltIn.Set Variable neutron security-group-rule-create ${Security_group_name} - ${cmd} = BuiltIn.Run Keyword If '${description}'!='None' BuiltIn.Catenate ${cmd} --description ${description} - ... ELSE BuiltIn.Catenate ${cmd} - ${cmd} = BuiltIn.Run Keyword If '${direction}'!='None' BuiltIn.Catenate ${cmd} --direction ${direction} - ... ELSE BuiltIn.Catenate ${cmd} - ${cmd} = BuiltIn.Run Keyword If '${ethertype}'!='None' BuiltIn.Catenate ${cmd} --ethertype ${ethertype} - ... ELSE BuiltIn.Catenate ${cmd} - ${cmd} = BuiltIn.Run Keyword If '${port_range_max}'!='None' BuiltIn.Catenate ${cmd} --port_range_max ${port_range_max} - ... ELSE BuiltIn.Catenate ${cmd} - ${cmd} = BuiltIn.Run Keyword If '${port_range_min}'!='None' BuiltIn.Catenate ${cmd} --port_range_min ${port_range_min} - ... ELSE BuiltIn.Catenate ${cmd} - ${cmd} = BuiltIn.Run Keyword If '${protocol}'!='None' BuiltIn.Catenate ${cmd} --protocol ${protocol} - ... ELSE BuiltIn.Catenate ${cmd} - ${cmd} = BuiltIn.Run Keyword If '${remote_group_id}'!='None' BuiltIn.Catenate ${cmd} --remote_group_id ${remote_group_id} - ... ELSE BuiltIn.Catenate ${cmd} - ${cmd} = BuiltIn.Run Keyword If '${remote_ip_prefix}'!='None' BuiltIn.Catenate ${cmd} --remote_ip_prefix ${remote_ip_prefix} - ... ELSE BuiltIn.Catenate ${cmd} - ${rc} ${output} = OperatingSystem.Run And Return Rc And Output ${cmd} - ${rule_id} = BuiltIn.Should Match Regexp ${output} ${REGEX_UUID} - BuiltIn.Log ${rule_id} - BuiltIn.Should Be True '${rc}' == '0' - [Return] ${output} ${rule_id} - Security Group Create Without Default Security Rules [Arguments] ${sg_name} ${additional_args}=${EMPTY} [Documentation] Create Neutron Security Group with no default rules, using specified name and optional arguments. @@ -965,8 +931,7 @@ Neutron Cleanup OpenStack List All [Documentation] Get a list of different OpenStack resources that might be in use. @{modules} = BuiltIn.Create List server port network subnet security group - ... security group rule - BuiltIn.Run Keyword If "${ODL_ENABLE_L3_FWD}"=="yes" Collections.Append To List ${modules} floating ip router + ... security group rule floating ip router : FOR ${module} IN @{modules} \ ${output} = OpenStack CLI openstack ${module} list @@ -997,15 +962,13 @@ OpenStack CLI With No Log OpenStack Cleanup All [Documentation] Cleanup all Openstack resources with best effort. The keyword will query for all resources ... in use and then attempt to delete them. Errors are ignored to allow the cleanup to continue. - @{fips} = BuiltIn.Run Keyword If "${ODL_ENABLE_L3_FWD}"=="yes" OpenStack CLI Get List openstack floating ip list -f json - ... ELSE BuiltIn.Create List @{EMPTY} + @{fips} = OpenStack CLI Get List openstack floating ip list -f json : FOR ${fip} IN @{fips} \ BuiltIn.Run Keyword And Ignore Error Delete Floating IP ${fip['ID']} @{vms} = OpenStack CLI Get List openstack server list -f json : FOR ${vm} IN @{vms} \ BuiltIn.Run Keyword And Ignore Error Delete Vm Instance ${vm['ID']} - @{routers} = BuiltIn.Run Keyword If "${ODL_ENABLE_L3_FWD}"=="yes" OpenStack CLI Get List openstack router list -f json - ... ELSE BuiltIn.Create List @{EMPTY} + @{routers} = OpenStack CLI Get List openstack router list -f json : FOR ${router} IN @{routers} \ BuiltIn.Run Keyword And Ignore Error Cleanup Router ${router['ID']} @{ports} = OpenStack CLI Get List openstack port list -f json @@ -1040,6 +1003,8 @@ OpenStack Suite Setup 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 + ClusterManagement.Dump_Local_Shards_For_Each_Member + Verify Expected Default Tables On Nodes OpenStack Suite Teardown [Documentation] Wrapper teardown keyword that can be used in any suite running in an openstack environement @@ -1070,15 +1035,13 @@ Is Feature Installed Add OVS Logging On All OpenStack Nodes [Documentation] Add higher levels of OVS logging to all the OpenStack nodes - BuiltIn.Run Keyword If 0 < ${NUM_OS_SYSTEM} OVSDB.Add OVS Logging ${OS_CNTL_CONN_ID} - BuiltIn.Run Keyword If 1 < ${NUM_OS_SYSTEM} OVSDB.Add OVS Logging ${OS_CMP1_CONN_ID} - BuiltIn.Run Keyword If 2 < ${NUM_OS_SYSTEM} OVSDB.Add OVS Logging ${OS_CMP2_CONN_ID} + : FOR ${conn_id} IN @{OS_ALL_CONN_IDS} + \ OVSDB.Add OVS Logging ${conn_id} Reset OVS Logging On All OpenStack Nodes [Documentation] Reset the OVS logging to all the OpenStack nodes - BuiltIn.Run Keyword If 0 < ${NUM_OS_SYSTEM} OVSDB.Reset OVS Logging ${OS_CNTL_CONN_ID} - BuiltIn.Run Keyword If 1 < ${NUM_OS_SYSTEM} OVSDB.Reset OVS Logging ${OS_CMP1_CONN_ID} - BuiltIn.Run Keyword If 2 < ${NUM_OS_SYSTEM} OVSDB.Reset OVS Logging ${OS_CMP2_CONN_ID} + : FOR ${conn_id} IN @{OS_ALL_CONN_IDS} + \ OVSDB.Reset OVS Logging ${conn_id} Start Packet Capture On Nodes [Arguments] ${tag} ${filter} @{ips} @@ -1128,3 +1091,45 @@ Restart DevStack Service ${output} ${rc} = SSHLibrary.Execute Command sudo systemctl restart devstack@${service_name}.service return_rc=True return_stdout=True BuiltIn.Log ${output} BuiltIn.Should Be True '${rc}' == '0' + +Get Network Segmentation Id + [Arguments] ${network_name} + [Documentation] Returns network segmentation id for the given network name. + ${output} = OpenStack CLI openstack network show ${network_name} | grep segmentation_id | awk '{print $4}' + @{list} = String.Split String ${output} + [Return] @{list}[0] + +Verify Expected Default Tables On Nodes + [Arguments] ${node_ips}=@{OS_ALL_IPS} + [Documentation] Verify if Default Table Entries are programmed on all Nodes + ${resp} = RequestsLibrary.Get Request session ${CONFIG_NODES_API} + Utils.Log Content ${resp.content} + ${failed_node_list} = BuiltIn.Create List + : FOR ${node_ip} IN @{node_ips} + \ ${failed_table_list} = Verify Expected Default Tables ${node_ip} + \ ${failed_table_list_size} = BuiltIn.Get Length ${failed_table_list} + \ BuiltIn.Run Keyword If ${failed_table_list_size} > 0 Collections.Append To List ${failed_node_list} ${node_ip} + Builtin.Should Be Empty ${failed_node_list} + +Verify Expected Default Tables + [Arguments] ${ovs_ip} + [Documentation] Verify if Default Table Entries are programmed on specific Node + ${flow_dump} = Utils.Write Commands Until Expected Prompt sudo ovs-ofctl dump-flows ${INTEGRATION_BRIDGE} -OOpenFlow13 ${DEFAULT_LINUX_PROMPT_STRICT} + BuiltIn.Log ${flow_dump} + ${failed_table_list} = BuiltIn.Create List + : FOR ${table} IN @{DEFAULT_FLOW_TABLES} + \ ${rc} = Builtin.Run Keyword And Return Status Builtin.Should Not Match Regexp ${flow_dump} .*table=${table}.*priority=0 + \ BuiltIn.Run Keyword If ${rc} Collections.Append To List ${failed_table_list} ${table} + [Return] ${failed_table_list} + +Get Project Id + [Arguments] ${project_name} + [Documentation] Returns project ID for the given project name. + ${project_id} = OpenStack CLI openstack project show ${project_name} -f value -c id + [Return] ${project_id} + +Set Instance Quota For Project + [Arguments] ${num_instances} ${project_id} + [Documentation] Set quota for the created instances using the specific project id. + ${output} = OpenStack CLI openstack quota set --instances ${num_instances} ${project_id} + [Return] ${output}