| *** Settings *** |
| Documentation Testing openstack. |
| Library OperatingSystem |
| Library SSHLibrary |
| Library RequestsLibrary |
| Library JSONUtils |
| Library OpenstackLibrary |
| Library HEATUtils |
| Library Collections |
| Resource ../../resources/openstack/keystone_interface.robot |
| Resource ../../resources/openstack/nova_interface.robot |
| Resource ../../resources/openstack/heat_interface.robot |
| Resource ../../resources/ssh/files.robot |
| Resource ../../resources/ssh/processes.robot |
| Resource packet_generator_interface.robot |
| |
| |
| *** Variables *** |
| |
| *** Keywords *** |
| Wait For Server |
| [Documentation] Attempts to login to the passed server info and verify (??). Uses server info to get public ip and locate corresponding provate key file |
| [Arguments] ${server_ip} ${timeout}=300s |
| ${file}= Catenate ${GLOBAL_VM_PRIVATE_KEY} |
| Wait Until Keyword Succeeds ${timeout} 5 sec Open Connection And Log In ${server_ip} root ${file} |
| ${lines}= Grep Local File "Accepted publickey" /var/log/auth.log |
| Log ${lines} |
| Should Not Be Empty ${lines} |
| |
| Get Server Ip |
| [Arguments] ${server_list} ${stack_info} ${key_name} ${network_name}=public |
| ${server_name}= Get From Dictionary ${stack_info} ${key_name} |
| ${server}= Get From Dictionary ${server_list} ${server_name} |
| Log Entering Get Openstack Server Ip |
| ${ip}= Search Addresses ${server} ${network_name} |
| Log Returned Get Openstack Server Ip |
| [Return] ${ip} |
| |
| Find And Reboot The Server |
| [Documentation] Code to reboot the server by teh heat server name parameter value |
| [Arguments] ${stack_info} ${server_list} ${server_name_parameter} |
| ${server_name}= Get From Dictionary ${stack_info} ${server_name_parameter} |
| ${vfw_server}= Get From Dictionary ${server_list} ${server_name} |
| ${vfw_server_id}= Get From Dictionary ${vfw_server} id |
| Reboot Server auth ${vfw_server_id} |
| |
| |
| Search Addresses |
| [Arguments] ${server} ${network_name} |
| ${addresses} Get From Dictionary ${server} addresses |
| ${status} ${server_ip}= Run Keyword And Ignore Error Find Rackspace ${addresses} ${network_name} |
| Return From Keyword If '${status}'=='PASS' ${server_ip} |
| ${status} ${server_ip}= Run Keyword And Ignore Error Find Openstack ${addresses} ${network_name} |
| Return From Keyword If '${status}'=='PASS' ${server_ip} |
| ${status} ${server_ip}= Run Keyword And Ignore Error Find Openstack 2 ${addresses} ${network_name} |
| Return From Keyword If '${status}'=='PASS' ${server_ip} |
| Fail ${server}/${network_name} Not Found |
| |
| Find Rackspace |
| [Arguments] ${addresses} ${network_name} |
| ${ips} Get From Dictionary ${addresses} ${network_name} |
| ${ip}= Get V4 IP ${ips} |
| [Return] ${ip} |
| |
| Find Openstack |
| [Arguments] ${addresses} ${network_name} |
| ${network_name}= Set Variable If '${network_name}' == 'public' external ${network_name} |
| ${ip}= Get V4 IP Openstack ${addresses} ${network_name} |
| [Return] ${ip} |
| |
| Find Openstack 2 |
| [Arguments] ${addresses} ${network_name} |
| ${network_name}= Set Variable If '${network_name}' == 'public' floating ${network_name} |
| ${ipmaps}= Get From Dictionary ${addresses} ${GLOBAL_INJECTED_NETWORK} |
| ${ip}= Get V4 IP Openstack 2 ${ipmaps} ${network_name} |
| [Return] ${ip} |
| |
| Get V4 IP |
| [Arguments] ${ipmaps} |
| :for ${ipmap} in @{ipmaps} |
| \ ${ip} Get From Dictionary ${ipmap} addr |
| \ ${version} Get From Dictionary ${ipmap} version |
| \ Return from Keyword if '${version}' == '4' ${ip} |
| Fail No Version 4 IP |
| |
| Get V4 IP Openstack |
| [Arguments] ${addresses} ${testtype} |
| ${ipmaps}= Get From Dictionary ${addresses} ${testtype} |
| :for ${ipmap} in @{ipmaps} |
| \ ${ip} Get From Dictionary ${ipmap} addr |
| \ ${version} Get From Dictionary ${ipmap} version |
| \ Return from Keyword if '${version}'=='4' ${ip} |
| Fail No Version 4 IP |
| |
| Get V4 IP Openstack 2 |
| [Arguments] ${ipmaps} ${testtype} |
| :for ${ipmap} in @{ipmaps} |
| \ ${type} Get From Dictionary ${ipmap} OS-EXT-IPS:type |
| \ ${ip} Get From Dictionary ${ipmap} addr |
| \ ${version} Get From Dictionary ${ipmap} version |
| \ Return from Keyword if '${version}'=='4' and '${type}'=='${testtype}' ${ip} |
| Fail No Version 4 IP |