BBE re-registration enabling testcase
[integration/csit.git] / tests / dcaegen2 / prh-testcases / resources / prh_library.robot
1 *** Settings ***
2 Library           RequestsLibrary
3 Library           Collections
4 Library           PrhLibrary.py
5 Library           OperatingSystem
6 Resource          ../../../common.robot
7
8 *** Keywords ***
9 Verify PNF ready sent
10     [Arguments]    ${test_case_directory}
11     ${pnf_entry}=    Get Data From File    ${test_case_directory}/aai-entry.json
12     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
13     ${expected_pnf_ready_event}=    Get Data From File    ${test_case_directory}/expected-pnf-ready-event.json
14     Add PNF entry in AAI    ${pnf_entry}
15     Set VES event in DMaaP    ${ves_event}
16     Wait Until Keyword Succeeds    10x    3000ms    Check CBS ready
17     Wait Until Keyword Succeeds    10x    3000ms    Check created PNF_READY notification    ${expected_pnf_ready_event}
18
19 Verify PNF ready sent and logical link created
20     [Arguments]    ${test_case_directory}
21     ${expected_logical_link}=    Get Data From File    ${test_case_directory}/expected-logical-link.json
22     Verify PNF ready sent    ${test_case_directory}
23     Check created Logical Link   ${expected_logical_link}
24
25 Verify event with missing required field is logged
26     [Arguments]    ${test_case_directory}
27     ${invalid_ves_event}=    Get Data From File    ${test_case_directory}/invalid-ves-event.json
28     Set VES event in DMaaP    ${invalid_ves_event}
29     Log    Invalid ves event: ${invalid_ves_event}
30     ${notification}=    Create invalid notification    ${invalid_ves_event}
31     ${error_msg}=    Set Variable    Incorrect json, consumerDmaapModel can not be created:
32     Wait Until Keyword Succeeds    10x    3000ms    Check PRH json log    ${error_msg}    ${notification}
33
34 Verify incorrect JSON event is logged
35     [Timeout]    60s
36     [Arguments]    ${test_case_directory}
37     ${invalid_ves_event}=    Get Data From File    ${test_case_directory}/invalid-ves-event.json
38     Set VES event in DMaaP    ${invalid_ves_event}
39     Check PRH log    |WARN    |Incorrect json, consumerDmaapModel can not be created:
40
41 Verify missing AAI record is logged
42     [Timeout]    100s
43     [Arguments]    ${test_case_directory}
44     ${incorrect_aai_entry}=    Get Data From File    ${test_case_directory}/incorrect-aai-entry.json
45     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
46     Add PNF entry in AAI    ${incorrect_aai_entry}
47     Set VES event in DMaaP    ${ves_event}
48     Check PRH log    Request failed for URL 'https://aai:3334/aai/v12/network/pnfs/pnf/NOK6061ZW8'. Response code: 404 Not Found
49
50 Verify AAI not responding is logged
51     [Timeout]    100s
52     [Arguments]    ${test_case_directory}
53     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
54     Ensure Container Is Exited    aai_simulator
55     Set VES event in DMaaP    ${ves_event}
56     Check PRH log    connection timed out: aai    Host is unreachable: aai
57     Ensure Container Is Running   aai_simulator
58
59 Verify PNF re registration
60     [Timeout]    500s
61     [Arguments]    ${test_case_directory}
62     ${aai_entry}=    Get Data From File    ${test_case_directory}/aai-entry.json
63     Log    PNF Re-registration: AAI entry for AAI Simulator ${aai_entry}
64     Add PNF entry in AAI    ${aai_entry}
65     ${service_instance}=    Get Data From File    ${test_case_directory}/aai-entry-service-instance.json
66     Add service instance entry in AAI    ${service_instance}
67
68     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
69     Set VES event in DMaaP    ${ves_event}
70     ${expected_pnf_update_event}=    Get Data From File    ${test_case_directory}/expected-pnf-update-event.json
71     Wait Until Keyword Succeeds    10x    3000ms    Check created PNF_UPDATE notification    ${expected_pnf_update_event}
72
73 Check CBS ready
74     ${resp}=    Get Request    ${consul_session}    /v1/catalog/services
75     Should Be Equal As Strings    ${resp.status_code}    200
76     Log    Service Catalog response: ${resp.content}
77     Dictionary Should Contain Key    ${resp.json()}    cbs    |Consul service catalog should contain CBS entry
78
79 Check created PNF_READY notification
80     [Arguments]    ${expected_event_pnf_ready_in_dpaap}
81     ${resp}=    Get Request    ${dmaap_session}    /verify/pnf_ready    headers=${suite_headers}
82     Should Be Equal As Strings    ${resp.status_code}    200
83     Should Be Equal As JSON    ${resp.content}    ${expected_event_pnf_ready_in_dpaap}
84
85 Check created PNF_UPDATE notification
86     [Arguments]    ${expected_event_pnf_update_in_dpaap}
87     ${resp}=    Get Request    ${dmaap_session}    /verify/pnf_update    headers=${suite_headers}
88     Log    Response from DMaaP: ${resp.content}
89     Should Be Equal As Strings    ${resp.status_code}    200
90     #Should Be Equal As JSON    ${resp.content}    ${expected_event_pnf_ready_in_dpaap}
91
92 Check created Logical Link
93     [Arguments]    ${expected_logical_link_in_aai}
94     ${resp}=    Get Request    ${aai_session}    /verify/created_logical_link    headers=${suite_headers}
95     Should Be Equal As Strings    ${resp.status_code}    200
96     Should Be Equal As JSON    ${resp.content}    ${expected_logical_link_in_aai}
97
98 Check PRH log
99     [Arguments]    @{log_entries}
100     ${found}=    Find one of log entryies    ${log_entries}
101     Should Be True    ${found}
102
103 Check PRH json log
104     [Arguments]    ${prefix}    ${json}
105     ${found}=    Find log json    ${prefix}    ${json}
106     Should Be True    ${found}
107
108 Create event parsing error
109     [Arguments]    ${ves_event}
110     ${notification}=    Create invalid notification    ${ves_event}
111     ${error_msg}=    Catenate    SEPARATOR= \\n    |Incorrect json, consumerDmaapModel can not be created:     ${notification}
112     [Return]    ${error_msg}
113
114 Add PNF entry in AAI
115     [Arguments]    ${pnf_entry}
116     ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
117     Log    AAI url ${AAI_SIMULATOR_SETUP_URL}
118     ${resp}=    Put Request    ${aai_session}    /setup/add_pnf_entry    headers=${suite_headers}    data=${pnf_entry}
119     Should Be Equal As Strings    ${resp.status_code}    200
120
121 Add service instance entry in AAI
122     [Arguments]    ${aai_service_instance}
123     ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
124     Log    AAI url ${AAI_SIMULATOR_SETUP_URL}
125     ${resp}=    Put Request    ${aai_session}    /setup/add_service_instace    headers=${suite_headers}    data=${aai_service_instance}
126     Should Be Equal As Strings    ${resp.status_code}    200
127
128 Set VES event in DMaaP
129     [Arguments]    ${ves_event}
130     ${resp}=    Put Request    ${dmaap_session}    /setup/ves_event    headers=${suite_headers}    data=${ves_event}
131     Should Be Equal As Strings    ${resp.status_code}    200
132
133 Should Be Equal As JSON
134     [Arguments]    ${actual}    ${expected}
135     Log    EXPECTED: ${expected}
136     Log    ACTUAL: ${actual}
137     ${expected_json}=    Evaluate    json.loads("""${expected}""")    json
138     ${actual_json}=    Evaluate    json.loads("""${actual}""")    json
139     Should Be Equal    ${actual_json}    ${expected_json}
140
141 Reset Simulators
142     Reset AAI simulator
143     Reset DMaaP simulator
144
145 Reset AAI simulator
146     ${resp}=    Post Request     ${aai_session}    /reset
147     Should Be Equal As Strings    ${resp.status_code}    200
148
149 Reset DMaaP simulator
150     ${resp}=    Post Request     ${dmaap_session}    /reset
151     Should Be Equal As Strings    ${resp.status_code}    200
152
153
154 Verify change logging level
155     Change logging level  TRACE
156     Verify logs with heartbeat
157     Change logging level  INFO
158
159 Change logging level
160     [Arguments]    ${expected_log_level}
161     Run   curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "${expected_log_level}"}' http://localhost:8100/actuator/loggers/org.onap.dcaegen2.services.prh
162
163 Verify logging level
164     [Arguments]    ${expected_log_level}
165     ${resp}=    Get Request    prh_session  /actuator/loggers/org.onap.dcaegen2.services.prh
166     Should Be Equal As JSON    ${resp.content}    ${expected_log_level}
167
168 Verify logs with heartbeat
169     Verify logging level  ${TRACE_LOG_LEVEL_CONF}
170     Get Request    prh_session    /heartbeat
171     Check PRH log   Heartbeat request received