aboutsummaryrefslogtreecommitdiffstats
path: root/tests/dcaegen2/prh-testcases/resources/prh_library.robot
blob: c00f012ff45c100a3545d25c455b7662ab7add32 (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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
*** Settings ***
Library           RequestsLibrary
Library           Collections
Library           PrhLibrary.py
Resource          ../../../common.robot

*** Keywords ***
Verify PNF ready sent
    [Arguments]    ${test_case_directory}
    ${pnf_entry}=    Get Data From File    ${test_case_directory}/aai-entry.json
    ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
    ${expected_pnf_ready_event}=    Get Data From File    ${test_case_directory}/expected-pnf-ready-event.json
    Add PNF entry in AAI    ${pnf_entry}
    Set VES event in DMaaP    ${ves_event}
    Wait Until Keyword Succeeds    10x    3000ms    Check CBS ready
    Wait Until Keyword Succeeds    10x    3000ms    Check created PNF_READY notification    ${expected_pnf_ready_event}

Verify PNF ready sent and logical link created
    [Arguments]    ${test_case_directory}
    ${expected_logical_link}=    Get Data From File    ${test_case_directory}/expected-logical-link.json
    Verify PNF ready sent    ${test_case_directory}
    Check created Logical Link   ${expected_logical_link}

Verify event with missing required field is logged
    [Arguments]    ${test_case_directory}
    ${invalid_ves_event}=    Get Data From File    ${test_case_directory}/invalid-ves-event.json
    Set VES event in DMaaP    ${invalid_ves_event}
    Log    Invalid ves event: ${invalid_ves_event}
    ${notification}=    Create invalid notification    ${invalid_ves_event}
    ${error_msg}=    Set Variable    Incorrect json, consumerDmaapModel can not be created:
    Wait Until Keyword Succeeds    10x    3000ms    Check PRH json log    ${error_msg}    ${notification}

Verify incorrect JSON event is logged
    [Timeout]    60s
    [Arguments]    ${test_case_directory}
    ${invalid_ves_event}=    Get Data From File    ${test_case_directory}/invalid-ves-event.json
    Set VES event in DMaaP    ${invalid_ves_event}
    Check PRH log    |WARN    |Incorrect json, consumerDmaapModel can not be created:

Verify missing AAI record is logged
    [Timeout]    100s
    [Arguments]    ${test_case_directory}
    ${incorrect_aai_entry}=    Get Data From File    ${test_case_directory}/incorrect-aai-entry.json
    ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
    Add PNF entry in AAI    ${incorrect_aai_entry}
    Set VES event in DMaaP    ${ves_event}
    Check PRH log    Request failed for URL 'https://aai:3334/aai/v12/network/pnfs/pnf/NOK6061ZW8'. Response code: 404 Not Found

Verify AAI not responding is logged
    [Timeout]    100s
    [Arguments]    ${test_case_directory}
    ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
    Ensure Container Is Exited    aai_simulator
    Set VES event in DMaaP    ${ves_event}
    Check PRH log    connection timed out: aai    Host is unreachable: aai
    Ensure Container Is Running   aai_simulator

Verify PNF re registration
    [Timeout]    100s
    [Arguments]    ${test_case_directory}
    ${aai_entry}=    Get Data From File    ${test_case_directory}/aai-entry.json
    Add PNF entry in AAI    ${aai_entry}
    ${service_instance}=    Get Data From File    ${test_case_directory}/aai-entry-service-instance.json
    Add service instance entry in AAI    ${service_instance}

    ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
    Set VES event in DMaaP    ${ves_event}
    ${expected_pnf_update_event}=    Get Data From File    ${test_case_directory}/expected-pnf-update-event.json
    #Wait Until Keyword Succeeds    10x    3000ms    Check created PNF_UPDATE notification    ${expected_pnf_update_event}

Check CBS ready
    ${resp}=    Get Request    ${consul_session}    /v1/catalog/services
    Should Be Equal As Strings    ${resp.status_code}    200
    Log    Service Catalog response: ${resp.content}
    Dictionary Should Contain Key    ${resp.json()}    cbs    |Consul service catalog should contain CBS entry

Check created PNF_READY notification
    [Arguments]    ${expected_event_pnf_ready_in_dpaap}
    ${resp}=    Get Request    ${dmaap_session}    /verify/pnf_ready    headers=${suite_headers}
    Should Be Equal As Strings    ${resp.status_code}    200
    Should Be Equal As JSON    ${resp.content}    ${expected_event_pnf_ready_in_dpaap}

Check created PNF_UPDATE notification
    [Arguments]    ${expected_event_pnf_update_in_dpaap}
    ${resp}=    Get Request    ${dmaap_session}    /verify/pnf_update    headers=${suite_headers}
    Log    Response from DMaaP: ${resp.content}
    Should Be Equal As Strings    ${resp.status_code}    200
    #Should Be Equal As JSON    ${resp.content}    ${expected_event_pnf_ready_in_dpaap}

Check created Logical Link
    [Arguments]    ${expected_logical_link_in_aai}
    ${resp}=    Get Request    ${aai_session}    /verify/created_logical_link    headers=${suite_headers}
    Should Be Equal As Strings    ${resp.status_code}    200
    Should Be Equal As JSON    ${resp.content}    ${expected_logical_link_in_aai}

Check PRH log
    [Arguments]    @{log_entries}
    ${found}=    Find one of log entryies    ${log_entries}
    Should Be True    ${found}

Check PRH json log
    [Arguments]    ${prefix}    ${json}
    ${found}=    Find log json    ${prefix}    ${json}
    Should Be True    ${found}

Create event parsing error
    [Arguments]    ${ves_event}
    ${notification}=    Create invalid notification    ${ves_event}
    ${error_msg}=    Catenate    SEPARATOR= \\n    |Incorrect json, consumerDmaapModel can not be created:     ${notification}
    [Return]    ${error_msg}

Add PNF entry in AAI
    [Arguments]    ${pnf_entry}
    ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
    Log    AAI url ${AAI_SIMULATOR_SETUP_URL}
    ${resp}=    Put Request    ${aai_session}    /setup/add_pnf_entry    headers=${suite_headers}    data=${pnf_entry}
    Should Be Equal As Strings    ${resp.status_code}    200

Add service instance entry in AAI
    [Arguments]    ${aai_service_instance}
    ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
    Log    AAI url ${AAI_SIMULATOR_SETUP_URL}
    ${resp}=    Put Request    ${aai_session}    /setup/add_service_instace    headers=${suite_headers}    data=${aai_service_instance}
    Should Be Equal As Strings    ${resp.status_code}    200

Set VES event in DMaaP
    [Arguments]    ${ves_event}
    ${resp}=    Put Request    ${dmaap_session}    /setup/ves_event    headers=${suite_headers}    data=${ves_event}
    Should Be Equal As Strings    ${resp.status_code}    200

Should Be Equal As JSON
    [Arguments]    ${actual}    ${expected}
    Log    EXPECTED: ${expected}
    Log    ACTUAL: ${actual}
    ${expected_json}=    Evaluate    json.loads("""${expected}""")    json
    ${actual_json}=    Evaluate    json.loads("""${actual}""")    json
    Should Be Equal    ${actual_json}    ${expected_json}

Reset Simulators
    Reset AAI simulator
    Reset DMaaP simulator

Reset AAI simulator
    ${resp}=    Post Request     ${aai_session}    /reset
    Should Be Equal As Strings    ${resp.status_code}    200

Reset DMaaP simulator
    ${resp}=    Post Request     ${dmaap_session}    /reset
    Should Be Equal As Strings    ${resp.status_code}    200


Verify change logging level
    ${logger}=    Set Variable    org.onap.dcaegen2.services.prh.controllers.AppInfoController
    Change logging level    ${logger}    TRACE
    Verify logging level    ${logger}    TRACE
    Verify logs with heartbeat
    [Teardown]    Change logging level    ${logger}    INFO

Change logging level
    [Arguments]    ${logger}    ${log_level}
    ${request_body}=    Create Dictionary    configuredLevel=${log_level}
    ${resp}=    Post Request    prh_session    /actuator/loggers/${logger}    json=${request_body}
    Should Be Equal As Integers    ${resp.status_code}    204

Verify logging level
    [Arguments]    ${logger}    ${expected_log_level}
    ${resp}=    Get Request    prh_session  /actuator/loggers/${logger}
    Should Be Equal As Integers    ${resp.status_code}    200
    Log    ${resp.content}
    Should Be Equal As Strings   ${resp.json()["configuredLevel"]}    ${expected_log_level}    ignore_case=true

Verify logs with heartbeat
    Get Request    prh_session    /heartbeat
    Check PRH log   Heartbeat request received