replace aai, closeloop, sdc with jinja
[testsuite.git] / robot / resources / openstack / heat_interface.robot
1 *** Settings ***
2 Documentation     The interface for interacting with Openstack Heat API.
3 Library           ONAPLibrary.Openstack
4 Library               RequestsLibrary
5 Library           OperatingSystem
6 Library           Collections
7 Library           ONAPLibrary.Templating
8 Resource    ../global_properties.robot
9 Resource    openstack_common.robot
10
11 *** Variables ***
12 ${OPENSTACK_HEAT_API_VERSION}    /v1
13 ${OPENSTACK_HEAT_STACK_PATH}    /stacks
14 ${OPENSTACK_HEAT_ADD_STACK_TEMPLATE}    openstack/heat_add_stack.jinja
15
16
17 *** Keywords ***
18 Get Openstack Stacks
19     [Documentation]    Returns the openstack stacks info
20     [Arguments]    ${alias}
21     ${resp}=    Internal Get Openstack    ${alias}    ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE}    ${OPENSTACK_HEAT_STACK_PATH}
22     [Return]    ${resp.json()}
23
24 Get Openstack Stack
25     [Documentation]    Returns the openstack stacks info for the given stack name
26     [Arguments]    ${alias}    ${stack_name}
27     ${resp}=    Internal Get Openstack    ${alias}    ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE}    ${OPENSTACK_HEAT_STACK_PATH}    /${stack_name}
28     [Return]    ${resp.json()}
29
30 Create Openstack Stack
31     [Documentation]    Takes an openstack heat yaml and returns the created stack
32     [Arguments]    ${alias}    ${request}
33     ${resp}=    Internal Post Openstack    ${alias}    ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE}    ${OPENSTACK_HEAT_STACK_PATH}    data_path=    data=${request}
34     [Return]    ${resp.json()}
35
36 Make Add Stack Request
37     [Documentation]    Makes a JSON Add Stack Request from  YAML template and env files
38     [Arguments]    ${name}    ${template}    ${env}
39     ${templatedata}=    Template Yaml To Json    ${template}
40     ${envdata}=    Env Yaml To Json    ${env}
41     ${dict}=  Create Dictionary     template=${templatedata}    parameters=${envdata}    stack_name=${name}
42     Create Environment    heat    ${GLOBAL_TEMPLATE_FOLDER}
43     ${request}=    Apply Template    heat    ${OPENSTACK_HEAT_ADD_STACK_TEMPLATE}    ${dict}
44     Log    ${request}
45     [Return]    ${request}
46
47 Delete Openstack Stack
48     [Documentation]    Deletes and Openstack Stack for the passed name and id
49     [Arguments]    ${alias}    ${stack_name}    ${stack_id}
50     ${data_path}=    Catenate    /${stack_name}/${stack_id}
51     ${resp}=    Internal Delete Openstack    ${alias}    ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE}    ${OPENSTACK_HEAT_STACK_PATH}    data_path=${data_path}
52     Should Be Equal As Strings    204  ${resp.status_code}
53     [Return]    ${resp}
54
55 Get Stack Details
56     [Documentation]    Gets all of the information necessary for tearing down an existing Openstack Stack
57     [Arguments]    ${alias}    ${stack_name}
58     ${resp}=    Internal Get Openstack    ${alias}    ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE}    ${OPENSTACK_HEAT_STACK_PATH}    /${stack_name}
59     ${result}=    Stack Info Parse    ${resp.json()}
60     [Return]     ${result}
61
62 Get Stack Template
63     [Documentation]    Gets all of the template information of an existing Openstack Stack
64     [Arguments]    ${alias}    ${stack_name}    ${stack_id}
65     ${data_path}=    Catenate    /${stack_name}/${stack_id}/template
66     ${resp}=    Internal Get Openstack    ${alias}    ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE}    ${OPENSTACK_HEAT_STACK_PATH}    ${data_path}
67     ${template}=        Catenate    ${resp.json()}
68     [Return]    ${template}
69
70 Get Stack Resources
71     [Documentation]    Gets all of the resources of an existing Openstack Stack
72     [Arguments]    ${alias}    ${stack_name}    ${stack_id}
73     ${data_path}=    Catenate    /${stack_name}/${stack_id}/resources
74     ${resp}=    Internal Get Openstack    ${alias}    ${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE}    ${OPENSTACK_HEAT_STACK_PATH}    ${data_path}
75     [Return]    ${resp.json()}
76
77 Wait for Stack to Be Deployed
78     [Arguments]    ${alias}   ${stack_name}    ${timeout}=${GLOBAL_OPENSTACK_STACK_DEPLOYMENT_TIMEOUT}
79     ${stack_info}=    Wait Until Keyword Succeeds    ${timeout}    30 sec    Get Deployed Stack    ${alias}    ${stack_name}
80     ${status}=   Get From Dictionary    ${stack_info}    stack_status
81     Should Be Equal    ${status}    CREATE_COMPLETE
82     [Return]    ${stack_info}
83
84 Get Deployed Stack
85     [Arguments]    ${alias}    ${stack_name}
86     ${stack_info}=    Get Stack Details    ${alias}    ${stack_name}
87     ${status}=   Get From Dictionary    ${stack_info}    stack_status
88     Should Not Be Equal    ${status}    CREATE_IN_PROGRESS
89     [Return]    ${stack_info}