X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FOpenStackOperations.robot;h=0e7bd6c67528dd0e733d6aac22a77aa06257c090;hb=a61e4492f0832dc60deede123dbe5e6cc8ee1c35;hp=59ea39d383b3b08388e9269b78f11033777010f5;hpb=59a2c0b5e66ba0efbf2b03c7a605804a30fc980c;p=integration%2Ftest.git diff --git a/csit/libraries/OpenStackOperations.robot b/csit/libraries/OpenStackOperations.robot index 59ea39d383..0e7bd6c675 100644 --- a/csit/libraries/OpenStackOperations.robot +++ b/csit/libraries/OpenStackOperations.robot @@ -7,6 +7,7 @@ Library SSHLibrary Library String Resource DataModels.robot Resource DevstackUtils.robot +Resource KarafKeywords.robot Resource L2GatewayOperations.robot Resource OVSDB.robot Resource SetupUtils.robot @@ -16,6 +17,7 @@ Resource Utils.robot Resource ../variables/Variables.robot Resource ../variables/netvirt/Variables.robot Variables ../variables/netvirt/Modules.py +Variables ../variables/netvirt/Exceptions_Whitelist.py *** Keywords *** Get Tenant ID From Security Group @@ -32,17 +34,14 @@ Get Tenant ID From Network Create Network [Arguments] ${network_name} ${additional_args}=${EMPTY} ${verbose}=TRUE - [Documentation] Create Network with neutron request. + [Documentation] Create Network with openstack request. ${output} = OpenStack CLI openstack network create ${network_name} ${additional_args} [Return] ${output} Update Network [Arguments] ${network_name} ${additional_args}=${EMPTY} [Documentation] Update Network with neutron request. - ${cmd} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'=='stable/newton' neutron -v net-update ${network_name} ${additional_args} openstack network set ${network_name} ${additional_args} - ${rc} ${output} = OperatingSystem.Run And Return Rc And Output ${cmd} - BuiltIn.Log ${output} - BuiltIn.Should Be True '${rc}' == '0' + ${output} = OpenStack CLI openstack network set ${network_name} ${additional_args} [Return] ${output} Show Network @@ -73,11 +72,14 @@ Create SubNet Update SubNet [Arguments] ${subnet_name} ${additional_args}=${EMPTY} - [Documentation] Update subnet with neutron request. - ${cmd} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'=='stable/newton' neutron -v subnet-update ${subnet_name} ${additional_args} openstack subnet set ${subnet_name} ${additional_args} - ${rc} ${output} = OperatingSystem.Run And Return Rc And Output ${cmd} - BuiltIn.Log ${output} - BuiltIn.Should Be True '${rc}' == '0' + [Documentation] Update subnet with openstack subnet set request. + ${output} = OpenStack CLI openstack subnet set ${subnet_name} ${additional_args} + [Return] ${output} + +Unset SubNet + [Arguments] ${subnet_name} ${additional_args}=${EMPTY} + [Documentation] Update subnet with openstack subnet unset request + ${output} = OpenStack CLI openstack subnet unset ${subnet_name} ${additional_args} [Return] ${output} Show SubNet @@ -92,13 +94,9 @@ Create Port # if allowed_address_pairs is not empty we need to create the arguments to pass to the port create command. They are # in a different format with the neutron vs openstack cli. ${address_pair_length} = BuiltIn.Get Length ${allowed_address_pairs} - ${allowed_pairs_argv} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'=='stable/newton' and '${address_pair_length}'=='2' --allowed-address-pairs type=dict list=true ip_address=@{allowed_address_pairs}[0] ip_address=@{allowed_address_pairs}[1] - ${allowed_pairs_argv} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'!='stable/newton' and '${address_pair_length}'=='2' --allowed-address ip-address=@{allowed_address_pairs}[0] --allowed-address ip-address=@{allowed_address_pairs}[1] ${allowed_pairs_argv} - ${allowed_pairs_argv} = BuiltIn.Set Variable If '${address_pair_length}'=='0' ${EMPTY} ${allowed_pairs_argv} - ${cmd} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'=='stable/newton' neutron -v port-create ${network_name} --name ${port_name} --security-group ${sg} ${additional_args} ${allowed_pairs_argv} openstack port create --network ${network_name} ${port_name} --security-group ${sg} ${additional_args} ${allowed_pairs_argv} - ${rc} ${output} = OperatingSystem.Run And Return Rc And Output ${cmd} - BuiltIn.Log ${output} - BuiltIn.Should Be True '${rc}' == '0' + ${allowed_pairs_argv} = BuiltIn.Set Variable ${EMPTY} + ${allowed_pairs_argv} = BuiltIn.Set Variable If '${address_pair_length}'=='2' --allowed-address ip-address=@{allowed_address_pairs}[0] --allowed-address ip-address=@{allowed_address_pairs}[1] ${allowed_pairs_argv} + ${output} = OpenStack CLI openstack port create --network ${network_name} ${port_name} --security-group ${sg} ${additional_args} ${allowed_pairs_argv} Update Port [Arguments] ${port_name} ${additional_args}=${EMPTY} @@ -140,6 +138,11 @@ Create And Associate Floating IPs \ ${output} = OpenStack CLI openstack server add floating ip ${vm} @{ip}[0] [Return] ${ip_list} +Remove Floating Ip From Vm + [Arguments] ${vm_name} ${fip} + [Documentation] Remove the Floating IP From VM Instance + ${output} = OpenStack CLI openstack server remove floating ip ${vm_name} ${fip} + Delete Floating IP [Arguments] ${fip} [Documentation] Delete floating ip with neutron request. @@ -297,6 +300,15 @@ Get VM IPs OpenStackOperations.Copy DHCP Files From Control Node [Return] @{vm_ips} ${ips_and_console_log[1]} +Get Subnet Gateway Ip + [Arguments] ${subnet_name} + [Documentation] Show information of a subnet and grep for subnet gateway ip address + ${output} = OpenStackOperations.OpenStack CLI openstack subnet show ${subnet_name} | grep gateway_ip | awk '{print $4}' + ${splitted_output} = String.Split String ${output} ${EMPTY} + ${matches} = Collections.Get Matches ${splitted_output} regexp=(\\d\.)+ + ${subnet_gateway_ip} = String.Strip String ${matches[0]} characters=',' + [Return] ${subnet_gateway_ip} + Collect VM IPv6 SLAAC Addresses [Arguments] ${fail_on_none} ${vm_list} ${network} ${subnet} [Documentation] For each VM parse output of "openstack server show" to get its IPv6 address from Neutron DB. @@ -470,9 +482,7 @@ Show Router Interface Add Router Gateway [Arguments] ${router_name} ${external_network_name} - ${cmd} = BuiltIn.Set Variable If '${OPENSTACK_BRANCH}'=='stable/newton' neutron -v router-gateway-set ${router_name} ${external_network_name} openstack router set ${router_name} --external-gateway ${external_network_name} - ${rc} ${output} = OperatingSystem.Run And Return Rc And Output ${cmd} - BuiltIn.Should Be True '${rc}' == '0' + ${output} = OpenStack CLI openstack router set ${router_name} --external-gateway ${external_network_name} Remove Interface [Arguments] ${router_name} ${interface_name} @@ -520,27 +530,6 @@ Get DumpFlows And Ovsconfig Utils.Write Commands Until Expected Prompt sudo ovs-ofctl dump-groups br-int -OOpenFlow13 ${DEFAULT_LINUX_PROMPT_STRICT} Utils.Write Commands Until Expected Prompt sudo ovs-ofctl dump-group-stats br-int -OOpenFlow13 ${DEFAULT_LINUX_PROMPT_STRICT} -Get Karaf Log Type From Test Start - [Arguments] ${ip} ${test_name} ${type} ${user}=${ODL_SYSTEM_USER} ${password}=${ODL_SYSTEM_PASSWORD} ${prompt}=${ODL_SYSTEM_PROMPT} - ... ${log_file}=${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log - ${cmd} = BuiltIn.Set Variable sed '1,/ROBOT MESSAGE: Starting test ${test_name}/d' ${log_file} | grep '${type}' - ${output} = Utils.Run Command On Controller ${ip} ${cmd} ${user} ${password} ${prompt} - [Return] ${output} - -Get Karaf Log Types From Test Start - [Arguments] ${ip} ${test_name} ${types} ${user}=${ODL_SYSTEM_USER} ${password}=${ODL_SYSTEM_PASSWORD} ${prompt}=${ODL_SYSTEM_PROMPT} - ... ${log_file}=${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log - : FOR ${type} IN @{types} - \ OpenStackOperations.Get Karaf Log Type From Test Start ${ip} ${test_name} ${type} ${user} ${password} - \ ... ${prompt} ${log_file} - -Get Karaf Log Events From Test Start - [Arguments] ${test_name} ${user}=${ODL_SYSTEM_USER} ${password}=${ODL_SYSTEM_PASSWORD} ${prompt}=${ODL_SYSTEM_PROMPT} - ${log_types} = BuiltIn.Create List ERROR WARN Exception - BuiltIn.Run Keyword If 0 < ${NUM_ODL_SYSTEM} OpenStackOperations.Get Karaf Log Types From Test Start ${ODL_SYSTEM_IP} ${test_name} ${log_types} - BuiltIn.Run Keyword If 1 < ${NUM_ODL_SYSTEM} OpenStackOperations.Get Karaf Log Types From Test Start ${ODL_SYSTEM_2_IP} ${test_name} ${log_types} - BuiltIn.Run Keyword If 2 < ${NUM_ODL_SYSTEM} OpenStackOperations.Get Karaf Log Types From Test Start ${ODL_SYSTEM_3_IP} ${test_name} ${log_types} - Get ControlNode Connection SSHLibrary.Switch Connection ${OS_CNTL_CONN_ID} [Return] ${OS_CNTL_CONN_ID} @@ -552,10 +541,10 @@ Get OvsDebugInfo BuiltIn.Run Keyword If 2 < ${NUM_OS_SYSTEM} OpenStackOperations.Get DumpFlows And Ovsconfig ${OS_CMP2_CONN_ID} Get Test Teardown Debugs - [Arguments] ${test_name}=${TEST_NAME} + [Arguments] ${test_name}=${SUITE_NAME}.${TEST_NAME} OpenStackOperations.Get OvsDebugInfo BuiltIn.Run Keyword And Ignore Error DataModels.Get Model Dump ${HA_PROXY_IP} ${netvirt_data_models} - OpenStackOperations.Get Karaf Log Events From Test Start ${test_name} + Run Keyword If "${FAIL_ON_EXCEPTIONS}"=="True" KarafKeywords.Fail If Exceptions Found During Test ${test_name} Get Test Teardown Debugs For SFC [Arguments] ${test_name}=${TEST_NAME} @@ -642,10 +631,8 @@ Neutron Security Group Rule Create ... ELSE BuiltIn.Catenate ${cmd} ${cmd} = BuiltIn.Run Keyword If '${remote_ip_prefix}'!='None' BuiltIn.Catenate ${cmd} --src-ip ${remote_ip_prefix} ... ELSE BuiltIn.Catenate ${cmd} - ${rc} ${output} = OperatingSystem.Run And Return Rc And Output ${cmd} + ${output} = OpenStack CLI ${cmd} ${rule_id} = BuiltIn.Should Match Regexp ${output} ${REGEX_UUID} - BuiltIn.Log ${rule_id} - BuiltIn.Should Be True '${rc}' == '0' [Return] ${output} ${rule_id} Neutron Security Group Rule Create Legacy Cli @@ -936,7 +923,7 @@ Wait For Routes To Propogate \ ${is_ipv6} = String.Get Regexp Matches @{subnets}[${INDEX}] ${IP6_REGEX} \ ${length} = BuiltIn.Get Length ${is_ipv6} \ ${cmd} = BuiltIn.Set Variable If ${length} == 0 ip route ip -6 route - \ ${output} = Utils.Write Commands Until Expected Prompt sudo ip netns exec qdhcp-${net_id} ${cmd} ]> + \ ${output} = Utils.Write Commands Until Expected Prompt sudo ip netns exec qdhcp-${net_id} ${cmd} ${DEFAULT_LINUX_PROMPT_STRICT} \ BuiltIn.Should Contain ${output} @{subnets}[${INDEX}] Neutron Cleanup @@ -1023,6 +1010,8 @@ Cleanup Router OpenStack Suite Setup [Documentation] Wrapper teardown keyword that can be used in any suite running in an openstack environement SetupUtils.Setup_Utils_For_Setup_And_Teardown + @{loggers} = BuiltIn.Create List org.apache.karaf.shell.support.ShellUtil + Setuputils.Setup_Logging_For_Debug_Purposes_On_List_Or_All OFF ${loggers} DevstackUtils.Devstack Suite Setup @{tcpdump_port_6653_conn_ids} = OpenStackOperations.Start Packet Capture On Nodes tcpdump_port_6653 port 6653 @{OS_ALL_IPS} BuiltIn.Set Suite Variable @{tcpdump_port_6653_conn_ids} @@ -1037,6 +1026,8 @@ OpenStack Suite Teardown OpenStack Cleanup All OpenStackOperations.Stop Packet Capture On Nodes ${tcpdump_port_6653_conn_ids} SSHLibrary.Close All Connections + : FOR ${i} IN RANGE ${NUM_ODL_SYSTEM} + \ KarafKeywords.Issue Command On Karaf Console threads --list | wc -l ${ODL_SYSTEM_${i+1}_IP} Copy DHCP Files From Control Node [Documentation] Copy the current DHCP files to the robot vm. The keyword must be called