X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2FOpenStackOperations.robot;h=1e482b40dccbac92b0c6ec24c1cd373caac79d75;hb=0722279725b99cfbe1d559ab42581ead25e24e36;hp=672904552c4836ac85df6abf2c380f00a9e44d92;hpb=529a4c3e534a2b01fd9e1e446d45131aee0ea4b5;p=integration%2Ftest.git diff --git a/csit/libraries/OpenStackOperations.robot b/csit/libraries/OpenStackOperations.robot index 672904552c..1e482b40dc 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 @@ -181,6 +182,14 @@ Get Port Id ${port_id} = Collections.Get from List ${splitted_output} 0 [Return] ${port_id} +Get Sub Port Id + [Arguments] ${portname} + [Documentation] Retrieve the first 10 chars of the UUID for the given port name + ${port_id} = OpenStackOperations.Get Port Id ${portname} + ${output} = String.Get Regexp Matches ${port_id} \\w{8}-\\w{2} + ${subport_id} = Collections.Get from List ${output} 0 + [Return] ${subport_id} + Get Router Id [Arguments] ${router1} [Documentation] Retrieve the router id for the given router name @@ -524,10 +533,10 @@ Get DumpFlows And Ovsconfig \ Utils.Write Commands Until Expected Prompt sudo ip netns exec ${line} ip route ${DEFAULT_LINUX_PROMPT_STRICT} Utils.Write Commands Until Expected Prompt sudo ovs-vsctl show ${DEFAULT_LINUX_PROMPT_STRICT} Utils.Write Commands Until Expected Prompt sudo ovs-vsctl list Open_vSwitch ${DEFAULT_LINUX_PROMPT_STRICT} - Utils.Write Commands Until Expected Prompt sudo ovs-ofctl show br-int -OOpenFlow13 ${DEFAULT_LINUX_PROMPT_STRICT} - Utils.Write Commands Until Expected Prompt sudo ovs-ofctl dump-flows br-int -OOpenFlow13 ${DEFAULT_LINUX_PROMPT_STRICT} - 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} + Utils.Write Commands Until Expected Prompt sudo ovs-ofctl show ${INTEGRATION_BRIDGE} -OOpenFlow13 ${DEFAULT_LINUX_PROMPT_STRICT} + Utils.Write Commands Until Expected Prompt sudo ovs-ofctl dump-flows ${INTEGRATION_BRIDGE} -OOpenFlow13 ${DEFAULT_LINUX_PROMPT_STRICT} + Utils.Write Commands Until Expected Prompt sudo ovs-ofctl dump-groups ${INTEGRATION_BRIDGE} -OOpenFlow13 ${DEFAULT_LINUX_PROMPT_STRICT} + Utils.Write Commands Until Expected Prompt sudo ovs-ofctl dump-group-stats ${INTEGRATION_BRIDGE} -OOpenFlow13 ${DEFAULT_LINUX_PROMPT_STRICT} Get ControlNode Connection SSHLibrary.Switch Connection ${OS_CNTL_CONN_ID} @@ -543,6 +552,7 @@ Get Test Teardown Debugs [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} + BuiltIn.run Keyword And Ignore Error ODLTools.Get EOS ${HA_PROXY_IP} Run Keyword If "${FAIL_ON_EXCEPTIONS}"=="True" KarafKeywords.Fail If Exceptions Found During Test ${test_name} Get Test Teardown Debugs For SFC @@ -634,41 +644,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. @@ -728,6 +703,14 @@ Get Port Mac ${port_mac} = Collections.Get from List ${splitted_output} 0 [Return] ${port_mac} +Get Port Mac Address From Ip + [Arguments] ${ip} + [Documentation] Retrieve the mac address for a port that matches any given ip. + ${output} = OpenStack CLI openstack port list | grep -w ${ip} | awk '{print $5}' + ${splitted_output} = String.Split String ${output} ${EMPTY} + ${mac_addr} = Collections.Get from List ${splitted_output} 0 + [Return] ${mac_addr} + Create L2Gateway [Arguments] ${bridge_name} ${intf_name} ${gw_name} [Documentation] Keyword to create an L2 Gateway ${gw_name} for bridge ${bridge_name} connected to interface ${intf_name} (Using Neutron CLI). @@ -815,6 +798,14 @@ Update Port Rest BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.content} +Get Neutron Network Rest + [Arguments] ${net_id} + [Documentation] Keyword to get the specific network details in Neutron (Using REST). + ${resp} = RequestsLibrary.Get Request session ${NETWORK_URL}/network/${net_id} + BuiltIn.Log ${resp.content} + BuiltIn.Should Be Equal As Strings ${resp.status_code} 200 + [Return] ${resp.content} + Create And Configure Security Group [Arguments] ${sg-name} [Documentation] Create Security Group with given name, and default allow rules for TCP/UDP/ICMP protocols. @@ -1016,6 +1007,7 @@ 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 OpenStack Suite Teardown [Documentation] Wrapper teardown keyword that can be used in any suite running in an openstack environement @@ -1069,3 +1061,45 @@ Start Packet Capture On Nodes Stop Packet Capture On Nodes [Arguments] ${conn_ids}=@{EMPTY} Tcpdump.Stop Packet Capture on Nodes ${conn_ids} + +Server Live Migrate + [Arguments] ${vm_instance_name} + [Documentation] Keyword for live migration of VM instance + ... additional_agrs is to select particular migration(live/shared-migration/block-migration) + ... if the additional_agrs is not given default migration(shared-migration) will happen + ${output} = OpenStackOperations.OpenStack CLI nova live-migration ${vm_instance_name} + +Get Hypervisor Host Of Vm + [Arguments] ${vm_name} + [Documentation] Show server with neutron request. + ${output} = OpenStackOperations.OpenStack CLI openstack server show -f value -c OS-EXT-SRV-ATTR:host ${vm_name} + [Return] ${output} + +Check If Migration Is Complete + [Arguments] ${vm_name} + [Documentation] Show server and verify if task_state is not migrating + ${output} = OpenStackOperations.OpenStack CLI openstack server show ${vm_name} | grep "OS-EXT-STS:task_state" + BuiltIn.Should Not Contain ${output} migrating + +Modify OpenStack Configuration File + [Arguments] ${conn_id} ${file_name} ${section} ${key} ${value} + [Documentation] Use crudini to modify any parameter in any Openstack configuration File + SSHLibrary.Switch Connection ${conn_id} + ${output} ${rc} = SSHLibrary.Execute Command sudo crudini --verbose --set --inplace ${file_name} ${section} ${key} ${value} return_rc=True return_stdout=True + BuiltIn.Log ${output} + BuiltIn.Should Be True '${rc}' == '0' + +Restart DevStack Service + [Arguments] ${conn_id} ${service_name} + [Documentation] Restart the Openstack Service + SSHLibrary.Switch Connection ${conn_id} + ${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]