aboutsummaryrefslogtreecommitdiffstats
path: root/tests/so/etsi/etsi_nfvo_ns_lcm_tests.robot
blob: 23995d93ab861144ab48a2e35901f4f0134ffd62 (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
*** Settings ***
Library     Collections
Library     RequestsLibrary
Library     OperatingSystem
Library     json
Library     ArchiveLibrary

*** Variables ***
${NFVO_NS_LCM_BASE_URL}=    /so/so-etsi-nfvo-ns-lcm/v1/api/nslcm/v1
${BASIC_AUTH}=    Basic c28tZXRzaS1uZnZvLW5zLWxjbTpwYXNzd29yZDEk

Documentation    Test cases for ETSI NFVO NS Lifecycle Management Operations
...    Create and Delete tests are synchronous
...    Instantiate and Terminate tests are asynchronous, test status checked through request to NS_LCM_OP_OCCs endpoint
...    Note, relies on:
...      -Network Service package being onboarded in etsi_package_onboarding_tests

*** Test Cases ***

Invoke Create Network Service
    Create Session   etsi_nfvo_ns_lcm_session  http://${REPO_IP}:9095
    ${data}=    Get Binary File     ${CURDIR}${/}data${/}createNetworkServiceRequest.json
    &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json    HTTP_GLOBALCUSTOMERID=DemoCustomer
    ${create_network_service_request}=    POST On Session    etsi_nfvo_ns_lcm_session    ${NFVO_NS_LCM_BASE_URL}/ns_instances    data=${data}    headers=${headers}
    log to console    ${create_network_service_request.content}
    ${create_network_service_json_response}=    Evaluate    json.loads(r"""${create_network_service_request.content}""", strict=False)    json
    ${request_Id}=    Set Variable   ${create_network_service_json_response}[id]
    SET GLOBAL VARIABLE    ${request_Id}

    Should Be Equal As Strings    '${create_network_service_request.status_code}'    '201'

Invoke Instantiate Network Service
    Run Keyword If    "${request_Id}"!="${EMPTY}"   Log to Console    Network Service ID :${request_Id}
    ...    ELSE    Fail    \nInvalid Network Service ID :${request_Id} received
    Create Session   etsi_nfvo_ns_lcm_session  http://${REPO_IP}:9095
    ${data}=    Get Binary File     ${CURDIR}${/}data${/}instantiateNetworkServiceRequest.json
    &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
    ${instantiate_network_service_request}=    POST On Session    etsi_nfvo_ns_lcm_session    ${NFVO_NS_LCM_BASE_URL}/ns_instances/${request_Id}/instantiate    data=${data}    headers=${headers}
    Run Keyword If  '${instantiate_network_service_request.status_code}' == '202'  log to console   \nexecuted with expected result
    ...    ELSE    Fail    \nInstantiate Network Service Request Received Response: ${instantiate_network_service_request.status_code}
    log to console    \n${instantiate_network_service_request.content}

    Wait Until Keyword Succeeds    3 min    5 secs    Get NS LCM OP OCCs

Invoke Terminate Network Service
    Run Keyword If    "${actual_request_state}"=="COMPLETED"    Log to Console    NS LCM OP OCCs State: ${actual_request_state}
    ...    ELSE    Fail    \nTerminate Network Service Failed to Start. Instantiate Network Service Request State: ${actual_request_state}
    Create Session   etsi_nfvo_ns_lcm_session  http://${REPO_IP}:9095
    &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
    ${terminate_network_service_request}=    POST On Session    etsi_nfvo_ns_lcm_session    ${NFVO_NS_LCM_BASE_URL}/ns_instances/${request_Id}/terminate    headers=${headers}
    Run Keyword If  '${terminate_network_service_request.status_code}' == '202'  log to console   \nexecuted with expected result
    ...    ELSE    Fail    \nTerminate Network Service Request Received Response: ${terminate_network_service_request.status_code}
    log to console    \n${terminate_network_service_request.content}

    Wait Until Keyword Succeeds    3 min    5 secs    Get NS LCM OP OCCs

Invoke Delete Network Service
    Run Keyword If    "${actual_request_state}"=="COMPLETED"    Log to Console    NS LCM OP OCCs State: ${actual_request_state}
    ...    ELSE    Fail    \nDelete Network Service Failed to Start. Invalid Previous Request State Received: ${actual_request_state}
    Create Session   etsi_nfvo_ns_lcm_session  http://${REPO_IP}:9095
    &{headers}=  Create Dictionary    Authorization=${BASIC_AUTH}    Content-Type=application/json    Accept=application/json
    ${delete_network_service_request}=    DELETE On Session    etsi_nfvo_ns_lcm_session    ${NFVO_NS_LCM_BASE_URL}/ns_instances/${request_Id}    headers=${headers}
    log to console    \n${delete_network_service_request.content}

    Should Be Equal As Strings    '${delete_network_service_request.status_code}'    '204'

*** Keywords ***

Get NS LCM OP OCCs
    ${ns_lcm_status_request}=   GET On Session  etsi_nfvo_ns_lcm_session   ${NFVO_NS_LCM_BASE_URL}/ns_lcm_op_occs/${request_Id}
    log to console      \n${ns_lcm_status_request.content}
    ${ns_lcm_request_json_response}=    Evaluate     json.loads(r"""${ns_lcm_status_request.content}""", strict=False)    json
    ${actual_request_state}=     SET VARIABLE       ${ns_lcm_request_json_response}[operationState]
    SET GLOBAL VARIABLE    ${actual_request_state}
    Should Be Equal As Strings    ${ns_lcm_status_request.status_code}    200
    Should Be Equal As Strings    ${actual_request_state}    COMPLETED