[Return] ${ip_list} ${dhcp_ip}
Get Match
- [Arguments] ${text} ${regexp}
+ [Arguments] ${text} ${regexp} ${index}=0
[Documentation] Wrapper around Get Regexp Matches to return None if not found or the first match if found.
@{matches} = String.Get Regexp Matches ${text} ${regexp}
${matches_length} = Get Length ${matches}
BuiltIn.Set Test Variable ${match} None
- BuiltIn.Run Keyword If ${matches_length} > 0 BuiltIn.Set Test Variable ${match} @{matches}[0]
+ BuiltIn.Run Keyword If ${matches_length} > ${index} BuiltIn.Set Test Variable ${match} @{matches}[${index}]
[Return] ${match}
Get VM IP
${vm_ip} = Set Variable None
${dhcp_ip} = Set Variable None
${match} = Get Match ${vm_console_output} ${REGEX_OBTAINED}
- ${vm_ip} = Get Match ${match} ${REGEX_IPV4}
- ${match} = Get Match ${vm_console_output} ${REGEX_NAMESERVER}
- ${dhcp_ip} = Get Match ${match} ${REGEX_IPV4}
+ ${vm_ip} = Get Match ${match} ${REGEX_IPV4} 0
+ ${match} = Get Match ${vm_console_output} ${REGEX_IPROUTE}
+ ${dhcp_ip} = Get Match ${match} ${REGEX_IPV4} 1
BuiltIn.Run Keyword If '${fail_on_none}' == 'true' Should Not Contain ${vm_ip} None
BuiltIn.Run Keyword If '${fail_on_none}' == 'true' Should Not Contain ${dhcp_ip} None
[Return] ${vm_ip} ${dhcp_ip} ${vm_console_output}
@{vm_ips} BuiltIn.Create List @{EMPTY}
: FOR ${vm} IN @{vms}
\ Poll VM Is ACTIVE ${vm}
- \ ${status} ${ips_and_console_log} Run Keyword And Ignore Error Wait Until Keyword Succeeds 60s 15s
+ \ ${status} ${ips_and_console_log} Run Keyword And Ignore Error Wait Until Keyword Succeeds 120s 15s
\ ... Get VM IP true ${vm}
\ # If there is trouble with Get VM IP, the status will be FAIL and the return value will be a string of what went
\ # wrong. We need to handle both the PASS and FAIL cases. In the FAIL case we know we wont have access to the
Run Keyword If ${rcode} Write Commands Until Expected Prompt route -n ${OS_SYSTEM_PROMPT}
Run Keyword If ${rcode} Write Commands Until Expected Prompt route -A inet6 ${OS_SYSTEM_PROMPT}
Run Keyword If ${rcode} Write Commands Until Expected Prompt arp -an ${OS_SYSTEM_PROMPT}
- Run Keyword If ${rcode} Write Commands Until Expected Prompt ip -6 neigh ${OS_SYSTEM_PROMPT}
+ Run Keyword If ${rcode} Write Commands Until Expected Prompt ip -f inet6 neigh show ${OS_SYSTEM_PROMPT}
: FOR ${dest_ip} IN @{dest_ips}
\ Log ${dest_ip}
\ ${string_empty}= Run Keyword And Return Status Should Be Empty ${dest_ip}
${rc} ${output}= Run And Return Rc And Output openstack router create ${router_name}
Should Not Be True ${rc}
-List Router
- [Documentation] List Router and return output with neutron client.
+List Routers
+ [Documentation] List Routers and return output with neutron client.
${rc} ${output}= Run And Return Rc And Output openstack router list -f value
Log ${output}
Should Not Be True ${rc}
Show Router Interface
[Arguments] ${router_name}
- [Documentation] List Router interface associated with given Router and return output with neutron client.
+ [Documentation] List Routers interface associated with given Router and return output with neutron client.
${rc} ${output}= Run And Return Rc And Output openstack port list --router ${router_name} -f value
Should Not Be True ${rc}
[Return] ${output}
\ ${rc} ${output}= Run And Return Rc And Output nova show ${index}
\ Log ${output}
List Nova VMs
+ List Routers
List Networks
List Subnets
List Ports
+ List Security Groups
+
+List Security Groups
+ [Documentation] Logging keyword to display all security groups using the openstack cli. Assumes openstack
+ ... credentials are already sourced
+ ${rc} ${output}= Run And Return Rc And Output openstack security group list
+ Log ${output}
+ Should Not Be True ${rc}
+ [Return] ${output}
Neutron Security Group Show
[Arguments] ${SecurityGroupRuleName}
Should Not Be True ${rc}
Wait Until Keyword Succeeds 35s 10s Verify VM Is ACTIVE ${vm_name}
-Remove RSA Key From KnowHosts
+Remove RSA Key From KnownHosts
[Arguments] ${vm_ip}
[Documentation] Remove RSA
${devstack_conn_id}= Get ControlNode Connection
\ ${cmd}= Set Variable If ${length} == 0 ip route ip -6 route
\ ${output}= Write Commands Until Expected Prompt sudo ip netns exec qdhcp-${net_id} ${cmd} ]>
\ Should Contain ${output} @{subnets}[${INDEX}]
+
+Neutron Cleanup
+ [Arguments] ${vms}=@{EMPTY} ${networks}=@{EMPTY} ${subnets}=@{EMPTY} ${ports}=@{EMPTY} ${sgs}=@{EMPTY}
+ : FOR ${vm} IN @{vms}
+ \ BuiltIn.Run Keyword And Ignore Error Delete Vm Instance ${vm}
+ : FOR ${port} IN @{ports}
+ \ BuiltIn.Run Keyword And Ignore Error Delete Port ${port}
+ : FOR ${subnet} IN @{subnets}
+ \ BuiltIn.Run Keyword And Ignore Error Delete SubNet ${subnet}
+ : FOR ${network} IN @{networks}
+ \ BuiltIn.Run Keyword And Ignore Error Delete Network ${network}
+ : FOR ${sg} IN @{sgs}
+ \ BuiltIn.Run Keyword And Ignore Error Delete SecurityGroup ${sg}