aboutsummaryrefslogtreecommitdiffstats
path: root/tests/so/etsi/etsi_nfvo_ns_lcm_tests.robot
blob: 91bbe6e5e037627f1d893469c1906deee9056c8c (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
*** 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

*** 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