From ccff30b6e325f359879595998e83bbfe6624c851 Mon Sep 17 00:00:00 2001 From: DR695H Date: Fri, 17 Feb 2017 18:44:24 -0500 Subject: Initial checkin of EopenECOMP testsuite Change-Id: I64a2b6d8cf66169829866b73b3d26a4ff59b0a42 Signed-off-by: DR695H --- robot/resources/openstack/heat_interface.robot | 93 ++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 robot/resources/openstack/heat_interface.robot (limited to 'robot/resources/openstack/heat_interface.robot') diff --git a/robot/resources/openstack/heat_interface.robot b/robot/resources/openstack/heat_interface.robot new file mode 100644 index 00000000..74c7aac8 --- /dev/null +++ b/robot/resources/openstack/heat_interface.robot @@ -0,0 +1,93 @@ +*** Settings *** +Documentation The interface for interacting with Openstack Heat API. +Library OpenstackLibrary +Library RequestsLibrary +Library UUID +Library OperatingSystem +Library HEATUtils +Library StringTemplater +Library Collections +Resource ../global_properties.robot +Resource ../json_templater.robot +Resource openstack_common.robot + +*** Variables *** +${OPENSTACK_HEAT_API_VERSION} /v1 +${OPENSTACK_HEAT_STACK_PATH} /stacks +${OPENSTACK_HEAT_ADD_STACK_TEMPLATE} robot/assets/templates/heat_add_stack.template + + +*** Keywords *** +Get Openstack Stacks + [Documentation] Returns the openstack stacks info + [Arguments] ${alias} + ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${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} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${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} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${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} + ${resp}= OperatingSystem.Get File ${OPENSTACK_HEAT_ADD_STACK_TEMPLATE} + ${request}= Template String ${resp} ${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} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${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} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${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} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${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} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${OPENSTACK_HEAT_STACK_PATH} ${data_path} + [Return] ${resp.json()} + +Wait for Stack to Be Deployed + [Arguments] ${alias} ${stack_name} ${timeout}=600s + ${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} + \ No newline at end of file -- cgit 1.2.3-korg