summaryrefslogtreecommitdiffstats
path: root/robot/resources/dcae/deployment.robot
blob: 30a5efce254ae373a5ca674a5e1808ff538ea6da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
*** Settings ***
Documentation   The main interface for interacting with 5G Bulkpm.
Library         RequestsLibrary
Library           OperatingSystem
Library           String

*** Variables ***
${DEPLOYMENT_SERVER}                    ${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PROTOCOL}://${GLOBAL_DEPLOYMENT_HANDLER_SERVER_NAME}:${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PORT}
${DEPLOYMENT_ENDPOINT}                  dcae-deployments

*** Keywords ***
Deploy Service
    [Arguments]                         ${inputs}                   ${deployment_name}                      ${wait_time}=5 minute
    Disable Warnings
    ${headers}=                         Create Dictionary           content-type=application/json
    ${deployment_data}=                 Set Variable                ${inputs}
    ${session}=                         Create Session              deployment_session                       ${DEPLOYMENT_SERVER}
    ${resp}=                            Put Request                 deployment_session                       /${DEPLOYMENT_ENDPOINT}/${deployment_name}         data=${deployment_data}     headers=${headers}
    ${operationLink}                    Set Variable                ${resp.json().get('links').get('status')}
    ${operationId}                      Fetch From Right            ${operationLink}                /
    Wait Until Keyword Succeeds         ${wait_time}                20 sec           Deployment Status       ${deployment_name}     ${operationId}

Deployment Status
    [Arguments]         ${deployment_name}          ${operationId}
    Disable Warnings
    ${session}=         Create Session              deployment_session     ${DEPLOYMENT_SERVER}
    ${resp}=            Get Request                 deployment_session     /${DEPLOYMENT_ENDPOINT}/${deployment_name}/operation/${operationId}
    ${status}           Set Variable                ${resp.json().get('status')}
    Should Be Equal As Strings                      ${status}               succeeded

Undeploy Service
    [Arguments]         ${deployment_name}
    Disable Warnings
    ${session}=         Create Session              deployment_session      ${DEPLOYMENT_SERVER}
    ${resp}=            Delete Request              deployment_session      /${DEPLOYMENT_ENDPOINT}/${deployment_name}
    [Return]            ${resp}