aboutsummaryrefslogtreecommitdiffstats
path: root/tests/so/integration-cnfm-testing/cnf_lcm_tests.robot
blob: 85838861512fa26b158f7f3858dd8f0409db56bf (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
*** Settings ***
Library     Collections
Library     RequestsLibrary
Library     OperatingSystem
Library     json

Documentation    Test cases for CNF lifecycle management operations
...              Note, relies on:
...                -package being onboarded in cnf_package_onboarding_tests

*** Variables ***
${SLEEP_INTERVAL_SEC}=                     10
${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}=        60     # Represents the maximum number of attempts that will be made before a timeout. It sleeps for SLEEP_INTERVAL_SEC seconds before retry.
${BASIC_AUTH}=                             Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==
${SERVICE_INSTANTIATION_TEMPLATE}=         ${CURDIR}${/}data${/}serviceInstantiationRequest.json
${CNF_RESOURCE_INSTANTIATION_TEMPLATE}=    ${CURDIR}${/}data${/}cnfResourceInstantiationRequest.json
${CNF_RESOURCE_DELETE_TEMPLATE}=           ${CURDIR}${/}data${/}cnfResourceDeleteRequest.json
${SERVICE_DELETE_TEMPLATE}=                ${CURDIR}${/}data${/}serviceDeleteRequest.json

*** Test Cases ***
Invoke Service Instantiation
    Create Session   api_handler_session  http://${REPO_IP}:8080
    ${data}=    Get Binary File     ${SERVICE_INSTANTIATION_TEMPLATE}
    &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
    ${service_instantiation_request}=    Post On Session    api_handler_session    /onap/so/infra/serviceInstantiation/v7/serviceInstances    data=${data}    headers=${headers}
    Log to Console      \nStatus code received: ${service_instantiation_request.status_code}
    Log to Console      Content received: ${service_instantiation_request.content}
    Should Be Equal As Strings    '${service_instantiation_request.status_code}'    '202'

    ${service_instantiation_json_response}=    Evaluate     json.loads(r"""${service_instantiation_request.content}""", strict=False)    json
    ${request_ID}=          Set Variable         ${service_instantiation_json_response}[requestReferences][requestId]
    ${service_instance_Id}=     Set Variable       ${service_instantiation_json_response}[requestReferences][instanceId]
    Set Global Variable       ${service_instance_Id}
    ${actual_request_state}=    Set Variable    ""

    FOR    ${INDEX}    IN RANGE    ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
       ${orchestration_status_request}=   Get On Session  api_handler_session   /onap/so/infra/orchestrationRequests/v7/${request_ID}
       Log to Console      Orchestration status code received: ${orchestration_status_request.status_code}
       Log to Console      Orchestration Content received: ${orchestration_status_request.content}
       ${orchestration_json_response}=    Evaluate     json.loads(r"""${orchestration_status_request.content}""", strict=False)    json
       ${actual_request_state}=     Set Variable       ${orchestration_json_response}[request][requestStatus][requestState]
       Log To Console    Received actual repsonse status:${actual_request_state}
       Run Keyword If   '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED'      Exit For Loop
       Log to Console  Will try again after ${SLEEP_INTERVAL_SEC} seconds
       Sleep   ${SLEEP_INTERVAL_SEC}s
    END

    Log To Console     Final repsonse status received: ${actual_request_state}
    Should Be Equal As Strings    '${actual_request_state}'    'COMPLETE'

Invoke CNF Instantiation
    Run Keyword If      "${service_instance_Id}"!="${EMPTY}"      Log to Console    Service Instance ID :${service_instance_Id} received
    ...                ELSE      Fail           Log to Console  Invalid Service Instance ID :${service_instance_Id} recieved

    ${data}=    Get Binary File     ${CNF_RESOURCE_INSTANTIATION_TEMPLATE}
    ${cnf_instantiate_request_json}=    Evaluate    json.loads(r'''${data}''', strict=False)    json
    Set To Dictionary    ${cnf_instantiate_request_json}[requestDetails][relatedInstanceList][0][relatedInstance]        instanceId=${service_instance_Id}
    ${cnf_instantiate_request_string}=    Evaluate    json.dumps(${cnf_instantiate_request_json})    json

    Create Session   api_handler_session  http://${REPO_IP}:8080
    &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
    ${cnf_instantiate_request}=    Post On Session    api_handler_session    /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/cnfs   data=${cnf_instantiate_request_string}    headers=${headers}
    Log to Console      \nStatus code received: ${cnf_instantiate_request.status_code}
    Log to Console      Content received: ${cnf_instantiate_request.content}
    Should Be Equal As Strings    '${cnf_instantiate_request.status_code}'    '202'

    ${cnf_instantiate_json_response}=    Evaluate     json.loads(r"""${cnf_instantiate_request.content}""")    json
    ${request_ID}=          Set Variable         ${cnf_instantiate_json_response}[requestReferences][requestId]
    ${actual_request_state}=    Set Variable    ""
    ${cnf_instance_Id}=     Set Variable       ${cnf_instantiate_json_response}[requestReferences][instanceId]
    SET GLOBAL VARIABLE       ${cnf_instance_Id}

    FOR    ${INDEX}    IN RANGE    ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
       ${orchestration_status_request}=   Get On Session  api_handler_session   /onap/so/infra/orchestrationRequests/v7/${request_ID}
       Run Keyword If  '${orchestration_status_request.status_code}' == '200'  log to console   \nexecuted with expected result
       Log To Console      ${orchestration_status_request.content}
       ${orchestration_json_response}=    Evaluate     json.loads(r"""${orchestration_status_request.content}""", strict=False)    json
       ${actual_request_state}=     Set Variable       ${orchestration_json_response}[request][requestStatus][requestState]
       Run Keyword If   '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED'      Exit For Loop
       Log To Console  Will try again after ${SLEEP_INTERVAL_SEC} seconds
       SLEEP   ${SLEEP_INTERVAL_SEC}s
    END

    ${service_instance_Id}=     Set Variable       ${orchestration_json_response}[request][instanceReferences][serviceInstanceId]
    Log To Console     Final repsonse status received: ${actual_request_state}
    Should Be Equal As Strings    '${actual_request_state}'    'COMPLETE'

Invoke CNF Delete
    Run Keyword If      "${cnf_instance_Id}" != "${EMPTY}"      Log to Console    CNF Instance ID :${cnf_instance_Id} received
    ...                ELSE      Fail           Log to Console  Invalid CNF Instance ID :${cnf_instance_Id} recieved
    Run Keyword If      "${service_instance_Id}" != "${EMPTY}"      Log to Console    CNF Instance ID :${service_instance_Id} received
    ...                ELSE      Fail           Log to Console  Invalid CNF Instance ID :${service_instance_Id} recieved

    Create Session   api_handler_session  http://${REPO_IP}:8080
    ${data}=    Get Binary File     ${CNF_RESOURCE_DELETE_TEMPLATE}
    &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
    ${cnf_delete_request}=    Delete On Session    api_handler_session    /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}/cnfs/${cnf_instance_Id}     data=${data}     headers=${headers}
    Log to Console      \nStatus code received: ${cnf_delete_request.status_code}
    Log to Console      Content received: ${cnf_delete_request.content}
    Should Be Equal As Strings    '${cnf_delete_request.status_code}'    '202'

    ${cnf_delete_json_response}=    Evaluate     json.loads(r"""${cnf_delete_request.content}""")    json
    ${request_ID}=          Set Variable         ${cnf_delete_json_response}[requestReferences][requestId]
    ${actual_request_state}=    Set Variable    ""

    FOR    ${INDEX}    IN RANGE    ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
       ${orchestration_status_request}=   Get On Session  api_handler_session   /onap/so/infra/orchestrationRequests/v7/${request_ID}
       Run Keyword If  '${orchestration_status_request.status_code}' == '200'  log to console   \nexecuted with expected result
       Log To Console      ${orchestration_status_request.content}
       ${orchestration_json_response}=    Evaluate     json.loads(r"""${orchestration_status_request.content}""")    json
       ${actual_request_state}=     Set Variable       ${orchestration_json_response}[request][requestStatus][requestState]
       RUN KEYWORD IF   '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED'      Exit For Loop
       Log To Console  Will try again after ${SLEEP_INTERVAL_SEC} seconds
       SLEEP   ${SLEEP_INTERVAL_SEC}s
    END

    Log To Console     Final repsonse status received: ${actual_request_state}
    Should Be Equal As Strings    '${actual_request_state}'    'COMPLETE'

Delete Service Instance
    Run Keyword If      "${service_instance_Id}" != "${EMPTY}"      Log to Console    CNF Instance ID :${service_instance_Id} received
    ...                ELSE      Fail           Log to Console  Invalid Service Instance ID :${service_instance_Id} recieved

    Create Session   api_handler_session  http://${REPO_IP}:8080
    ${data}=    Get Binary File     ${SERVICE_DELETE_TEMPLATE}
    &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
    ${service_delete_request}=    Delete On Session    api_handler_session    /onap/so/infra/serviceInstantiation/v7/serviceInstances/${service_instance_Id}     data=${data}     headers=${headers}
    ${service_delete_json_response}=    Evaluate     json.loads(r"""${service_delete_request.content}""")    json
    Log to Console      \nStatus code received: ${service_delete_request.status_code}
    Log to Console      Content received: ${service_delete_request.content}
    Should Be Equal As Strings    '${service_delete_request.status_code}'    '202'

    ${request_ID}=          Set Variable         ${service_delete_json_response}[requestReferences][requestId]
    ${actual_request_state}=    Set Variable    ""

    FOR    ${INDEX}    IN RANGE    ${MAXIMUM_ATTEMPTS_BEFORE_TIMEOUT}
       ${orchestration_status_request}=   Get On Session  api_handler_session   /onap/so/infra/orchestrationRequests/v7/${request_ID}
       Run Keyword If  '${orchestration_status_request.status_code}' == '200'  log to console   \nexecuted with expected result
       Log To Console      ${orchestration_status_request.content}
       ${orchestration_json_response}=    Evaluate     json.loads(r"""${orchestration_status_request.content}""")    json
       ${actual_request_state}=     Set Variable       ${orchestration_json_response}[request][requestStatus][requestState]
       RUN KEYWORD IF   '${actual_request_state}' == 'COMPLETE' or '${actual_request_state}' == 'FAILED'      Exit For Loop
       Log To Console  Will try again after ${SLEEP_INTERVAL_SEC} seconds
       SLEEP   ${SLEEP_INTERVAL_SEC}s
    END

    Log To Console     Final repsonse status received: ${actual_request_state}
    Should Be Equal As Strings    '${actual_request_state}'    'COMPLETE'