*** Settings *** Documentation The interface for interacting with Openstack Heat API. Library ONAPLibrary.Openstack Library RequestsLibrary Library OperatingSystem Library Collections Library ONAPLibrary.Templating WITH NAME Templating Resource ../global_properties.robot Resource openstack_common.robot *** Variables *** ${OPENSTACK_HEAT_API_VERSION} /v1 ${OPENSTACK_HEAT_STACK_PATH} /stacks ${OPENSTACK_HEAT_ADD_STACK_TEMPLATE} openstack/heat_add_stack.jinja *** Keywords *** Get Openstack Stacks [Documentation] Returns the openstack stacks info [Arguments] ${alias} ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} ${OPENSTACK_HEAT_STACK_PATH} [Return] ${resp.json()} Get Openstack Stack [Documentation] Returns the openstack stacks info for the given stack name [Arguments] ${alias} ${stack_name} ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} ${OPENSTACK_HEAT_STACK_PATH} /${stack_name} [Return] ${resp.json()} Create Openstack Stack [Documentation] Takes an openstack heat yaml and returns the created stack [Arguments] ${alias} ${request} ${resp}= Internal Post Openstack ${alias} ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} ${OPENSTACK_HEAT_STACK_PATH} data_path= data=${request} [Return] ${resp.json()} Make Add Stack Request [Documentation] Makes a JSON Add Stack Request from YAML template and env files [Arguments] ${name} ${template} ${env} ${templatedata}= Template Yaml To Json ${template} ${envdata}= Env Yaml To Json ${env} ${dict}= Create Dictionary template=${templatedata} parameters=${envdata} stack_name=${name} Templating.Create Environment heat ${GLOBAL_TEMPLATE_FOLDER} ${request}= Apply Template heat ${OPENSTACK_HEAT_ADD_STACK_TEMPLATE} ${dict} Log ${request} [Return] ${request} Delete Openstack Stack [Documentation] Deletes and Openstack Stack for the passed name and id [Arguments] ${alias} ${stack_name} ${stack_id} ${data_path}= Catenate /${stack_name}/${stack_id} ${resp}= Internal Delete Openstack ${alias} ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} ${OPENSTACK_HEAT_STACK_PATH} data_path=${data_path} Should Be Equal As Strings 204 ${resp.status_code} [Return] ${resp} Get Stack Details [Documentation] Gets all of the information necessary for tearing down an existing Openstack Stack [Arguments] ${alias} ${stack_name} ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} ${OPENSTACK_HEAT_STACK_PATH} /${stack_name} ${result}= Stack Info Parse ${resp.json()} [Return] ${result} Get Stack Template [Documentation] Gets all of the template information of an existing Openstack Stack [Arguments] ${alias} ${stack_name} ${stack_id} ${data_path}= Catenate /${stack_name}/${stack_id}/template ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} ${OPENSTACK_HEAT_STACK_PATH} ${data_path} ${template}= Catenate ${resp.json()} [Return] ${template} Get Stack Resources [Documentation] Gets all of the resources of an existing Openstack Stack [Arguments] ${alias} ${stack_name} ${stack_id} ${data_path}= Catenate /${stack_name}/${stack_id}/resources ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} ${OPENSTACK_HEAT_STACK_PATH} ${data_path} [Return] ${resp.json()} Wait for Stack to Be Deployed [Arguments] ${alias} ${stack_name} ${timeout}=${GLOBAL_OPENSTACK_STACK_DEPLOYMENT_TIMEOUT} ${stack_info}= Wait Until Keyword Succeeds ${timeout} 30 sec Get Deployed Stack ${alias} ${stack_name} ${status}= Get From Dictionary ${stack_info} stack_status Should Be Equal ${status} CREATE_COMPLETE [Return] ${stack_info} Get Deployed Stack [Arguments] ${alias} ${stack_name} ${stack_info}= Get Stack Details ${alias} ${stack_name} ${status}= Get From Dictionary ${stack_info} stack_status Should Not Be Equal ${status} CREATE_IN_PROGRESS [Return] ${stack_info}