Support second level NSSI in terminate app
[optf/osdf.git] / csit / tests / osdf / optf_osdf_nxi_termination.robot
1 *** Settings ***
2 Library       copy
3 Library       json
4 Library       Collections
5 Library       OperatingSystem
6 Resource          ./resources/common-keywords.robot
7
8 Suite Teardown  Delete All Sessions
9
10 *** Variables ***
11 &{placement_auth} =    username=test   password=testpwd
12
13 *** Keywords ***
14
15 NxiTerminationRequest
16     [Documentation]    Sends request to NxiTermination API
17     [Arguments]  ${data}
18     ${data_str}=     json.dumps    ${data}
19     ${resp}=         Http Post        host=${osdf_host}   restUrl=/api/oof/terminate/nxi/v1     data=${data_str}   auth=${placement_auth}
20     ${response_json}    json.loads    ${resp.content}
21     Should Be Equal As Integers    ${resp.status_code}    200
22     [Return]  ${response_json}
23
24 *** Test Cases ***
25
26 TerminationRequestGeneration
27     [Documentation]  This test case will generate request json for different scenarios
28     ${data}=         Get Binary File     ${CURDIR}${/}data${/}termination_request.json
29     ${nsi_termination_request}=       json.loads    ${data}
30     Set Global Variable       ${nsi_termination_request}
31     ${nssi_termination_request}=      copy.deepcopy  ${nsi_termination_request}
32     Set To Dictionary         ${nssi_termination_request}     type=NSSI
33     Set Global Variable       ${nssi_termination_request}
34     ${nsi_termination_request_args}=      copy.deepcopy  ${nsi_termination_request}
35     ${request_info}=          Set Variable      ${nsi_termination_request_args["requestInfo"]}
36     ${addtnl_args}=           Create Dictionary  serviceInstanceId=660ca85c-1a0f-4521-a559-65f23e794699
37     Set To Dictionary         ${request_info}      addtnlArgs=${addtnl_args}
38     Set To Dictionary         ${nsi_termination_request_args}      requestInfo=${request_info}
39     Set Global Variable       ${nsi_termination_request_args}
40     ${nssi_termination_request_args}=      copy.deepcopy  ${nssi_termination_request}
41     ${request_info}=          Set Variable      ${nssi_termination_request_args["requestInfo"]}
42     ${addtnl_args}=           Create Dictionary  serviceInstanceId=660ca85c-1a0f-4521-a559-65f23e794699
43     Set To Dictionary         ${request_info}      addtnlArgs=${addtnl_args}
44     Set To Dictionary         ${nssi_termination_request_args}      requestInfo=${request_info}
45     Set Global Variable       ${nssi_termination_request_args}
46
47 NSITermination
48     [Documentation]    It sends a NSI termination request with no additional arguments
49     ${response_json}=   NxiTerminationRequest         ${nsi_termination_request}
50     Should Be Equal     success    ${response_json['requestStatus']}
51     Should Be True       ${response_json['terminateResponse']}
52
53 NSSITermination
54     [Documentation]    It sends a NSSI termination request with no additional arguments
55     ${response_json}=   NxiTerminationRequest         ${nssi_termination_request}
56     Should Be Equal     success    ${response_json['requestStatus']}
57     Should Be True       ${response_json['terminateResponse']}
58
59 NSITerminationWithAddtnlArgs
60     [Documentation]  It sends a NSSI termination request with additional arguments
61     ${response_json}=   NxiTerminationRequest         ${nsi_termination_request_args}
62     Should Be Equal     success    ${response_json['requestStatus']}
63     Should Be True       ${response_json['terminateResponse']}
64
65 NSSITerminationWithAddtnlArgs
66     [Documentation]  It sends a NSSI termination request with additional arguments
67     ${response_json}=   NxiTerminationRequest         ${nssi_termination_request_args}
68     Should Be Equal     success    ${response_json['requestStatus']}
69     Should Be True       ${response_json['terminateResponse']}