blob: e8d5da2a784f7fc2fc2df5d2ab0f0f057912904d (
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
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
*** Settings ***
Documentation 5G Bulk PM Usecase functionality
Library RequestsLibrary
Library OperatingSystem
Library Collections
Library String
Library DateTime
Library SSHLibrary
Library JSONLibrary
Library Process
Library ONAPLibrary.JSON
Library ONAPLibrary.Utilities
Resource ../../resources/usecases/5gbulkpm_interface.robot
Resource ../../resources/mr_interface.robot
Resource ../../resources/dr_interface.robot
Suite Setup Send File Ready Event to VES Collector test org.3GPP.32.435#measCollec V10
Suite Teardown Usecase Teardown
*** Variables ***
${INVENTORY_ENDPOINT} /dcae-service-types
${XNF_SFTP_BLUEPRINT_PATH} ${EXECDIR}/robot/assets/usecases/5gbulkpm/k8s-sftp.yaml
${BLUEPRINT_TEMPLATE_PATH} ${EXECDIR}/robot/assets/usecases/5gbulkpm/blueprintTemplate.json
${DEPLOYMENT_ENDPOINT} dcae-deployments
${MR_TOPIC_CHECK_PATH} /topics
${DR_SUB_CHECK_PATH} /internal/prov
${MR_TOPIC_URL_PATH} /events/org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS/CG1/C1
${MR_TOPIC_URL_PATH_FOR_POST} /events/org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS
${DMAAP_BC_MR_CLIENT_PATH} /webapi/mr_clients
${DMAAP_BC_MR_CLUSTER_PATH} /webapi/mr_clusters
${PMMAPPER_HEALTH_CHECK_PATH} /healthcheck
${JSON_DATA_FILE} ${EXECDIR}/robot/assets/usecases/5gbulkpm/Notification.json
${VES_LISTENER_PATH} /eventListener/v7
${PMMAPPER_SUB_ROLE_DATA} ${EXECDIR}/robot/assets/usecases/5gbulkpm/sub.json
${PMMAPPER_MR_CLUSTER_DATA} ${EXECDIR}/robot/assets/usecases/5gbulkpm/mr_clusters.json
${NEXUS3} ${GLOBAL_INJECTED_NEXUS_DOCKER_REPO}
${SET_KNOWN_HOSTS_FILE_PATH} kubectl set env deployment/$(kubectl get deployment -n onap | grep datafile | awk '{print $1}') KNOWN_HOSTS_FILE_PATH=/home/datafile/.ssh/known_hosts -n onap
${CHECK_ENV_SET} kubectl set env pod/$(kubectl get pod -n onap | grep datafile | awk '{print $1}') --list -n onap
${GET_RSA_KEY} kubectl exec $(kubectl get pod -n onap | grep sftpserver | awk '{print $1}') -n onap -- ssh-keyscan -t rsa sftpserver > /tmp/known_hosts
${COPY_RSA_KEY} kubectl cp /tmp/known_hosts $(kubectl get pod -n onap | grep datafile | awk '{print $1}'):/home/datafile/.ssh/known_hosts -n onap
${CHECK_DFC_LOGS} kubectl logs $(kubectl get pod -n onap | grep datafile | awk '{print $1}') -n onap --tail=4
${EXPECTED_PRINT} StrictHostKeyChecking is enabled but environment variable KNOWN_HOSTS_FILE_PATH is not set or points to not existing file
*** Test Cases ***
Setting Global Variables
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${env_variables} = Get Environment Variables
Set Global Variable ${ENV_VARIABLES} ${env_variables}
Log Environment Variables: ${ENV_VARIABLES}
${default_env_variables} = Create Dictionary
Set To Dictionary ${default_env_variables} FILE_FORMAT_TYPE=org.3GPP.32.435#measCollec
... FILE_FORMAT_VERSION=V10
... PM_FILE_PATH=${EXECDIR}/robot/assets/usecases/5gbulkpm/pmfiles/A20181002.0000-1000-0015-1000_5G.xml.gz
... EXPECTED_PM_STR=perf3gpp_RnNode-Ericsson_pmMeasResult
Set Global Variable ${DEFAULT_ENV_VARIABLES} ${default_env_variables}
${bulk_pm_mode}= Get Variable Value ${ENV_VARIABLES["BULK_PM_MODE"]} default
Set Global Variable ${BULK_PM_MODE} ${bulk_pm_mode}
Deploying Data File Collector
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${headers}= Create Dictionary content-type=application/json
${session}= Create Session dfc ${INVENTORY_SERVER}
${resp}= Get Request dfc ${INVENTORY_ENDPOINT}?typeName=k8s-datafile headers=${headers}
${json}= Set Variable ${resp.json()}
${serviceTypeId-Dfc} Set Variable ${json['items'][0]['typeId']}
${image} Get Regexp Matches ${json['items'][0]['blueprintTemplate']} nexus3(.)*?(?=\\")
${image} Replace String ${image}[0] nexus3.onap.org:10001 ${NEXUS3}
Set Global Variable ${serviceTypeId-Dfc}
${deployment_data}= Set Variable {"serviceTypeId": "${serviceTypeId-Dfc}", "inputs": {"tag_version": "${image}"}}
${session}= Create Session deployment-dfc ${DEPLOYMENT_SERVER}
${resp}= Put Request deployment-dfc /${DEPLOYMENT_ENDPOINT}/datafile data=${deployment_data} headers=${headers}
${operationLink} Set Variable ${resp.json().get('links').get('status')}
${operationId} Fetch From Right ${operationLink} /
Wait Until Keyword Succeeds 5 minute 20 sec Deployment Status ${DEPLOYMENT_SERVER} ${DEPLOYMENT_ENDPOINT} datafile ${operationId}
Deploying 3GPP PM Mapper
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${clusterdata}= OperatingSystem.Get File ${PMMAPPER_MR_CLUSTER_DATA}
${headers}= Create Dictionary content-type=application/json
${session}= Create Session dmaapbc ${DMAAP_BC_SERVER}
${resp}= Post Request dmaapbc ${DMAAP_BC_MR_CLUSTER_PATH} data=${clusterdata} headers=${headers}
${session}= Create Session pmmapper ${INVENTORY_SERVER}
${resp}= Get Request pmmapper ${INVENTORY_ENDPOINT}?typeName=k8s-pm-mapper headers=${headers}
${json}= Set Variable ${resp.json()}
${serviceTypeId-Pmmapper} Set Variable ${json['items'][0]['typeId']}
${image} Get Regexp Matches ${json['items'][0]['blueprintTemplate']} nexus3(.)*?(?=\')
${image} Replace String ${image}[0] nexus3.onap.org:10001 ${NEXUS3}
Set Global Variable ${serviceTypeId-Pmmapper}
${deployment_data}= Set Variable {"inputs":{"client_password": "${GLOBAL_DCAE_PASSWORD}", "tag_version": "${image}"},"serviceTypeId": "${serviceTypeId-Pmmapper}"}
${session}= Create Session deployment-pmmapper ${DEPLOYMENT_SERVER}
${resp}= Put Request deployment-pmmapper /${DEPLOYMENT_ENDPOINT}/pmmapper data=${deployment_data} headers=${headers}
${operationLink} Set Variable ${resp.json().get('links').get('status')}
${operationId} Fetch From Right ${operationLink} /
Wait Until Keyword Succeeds 6 minute 10 sec Deployment Status ${DEPLOYMENT_SERVER} ${DEPLOYMENT_ENDPOINT} pmmapper ${operationId}
Deploying SFTP Server As xNF
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${blueprint}= OperatingSystem.Get File ${XNF_SFTP_BLUEPRINT_PATH}
${templatejson}= Load JSON From File ${BLUEPRINT_TEMPLATE_PATH}
${templatejson}= Update Value To Json ${templatejson} blueprintTemplate ${blueprint}
${templatejson}= Update Value To Json ${templatejson} typeName sftpserver
${json_data} Convert JSON To String ${templatejson}
${headers}= Create Dictionary content-type=application/json
${session}= Create Session sftp ${INVENTORY_SERVER}
${resp}= Post Request sftp ${INVENTORY_ENDPOINT} data=${json_data} headers=${headers}
${serviceTypeId-Sftp}= Set Variable ${resp.json().get('typeId')}
Set Global Variable ${serviceTypeId-Sftp}
${deployment_data}= Set Variable {"serviceTypeId": "${serviceTypeId-Sftp}" }
${session}= Create Session deployment-sftpserver ${DEPLOYMENT_SERVER}
${resp}= Put Request deployment-sftpserver /${DEPLOYMENT_ENDPOINT}/sftpserver data=${deployment_data} headers=${headers}
${operationLink}= Set Variable ${resp.json().get('links').get('status')}
${operationId} Fetch From Right ${operationLink} /
Wait Until Keyword Succeeds 2 minute 5 sec Deployment Status ${DEPLOYMENT_SERVER} ${DEPLOYMENT_ENDPOINT} sftpserver ${operationId}
Checking PERFORMANCE_MEASUREMENTS Topic In Message Router
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${headers}= Create Dictionary content-type=application/json
${subdata}= OperatingSystem.Get File ${PMMAPPER_SUB_ROLE_DATA}
${session}= Create Session dmaapbc ${DMAAP_BC_SERVER}
${resp}= Post Request dmaapbc ${DMAAP_BC_MR_CLIENT_PATH} data=${subdata} headers=${headers}
Wait Until Keyword Succeeds 5 minute 5 sec Topic Validate success
${resp}= Run MR Get Request ${MR_TOPIC_CHECK_PATH}
Should Be Equal As Strings ${resp.status_code} 200
${topics}= Set Variable ${resp.json().get('topics')}
List Should Contain Value ${topics} org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS
${resp}= Run MR Auth Get Request ${MR_TOPIC_URL_PATH} ${GLOBAL_DCAE_USERNAME} ${GLOBAL_DCAE_PASSWORD}
Should Be Equal As Strings ${resp.status_code} 200
Uploading PM Files to xNF SFTP Server After Services Deployed
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${pm_file_path}= Set Variable If "${BULK_PM_MODE}" == "custom" ${ENV_VARIABLES["PM_FILE_PATH"]} ${DEFAULT_ENV_VARIABLES["PM_FILE_PATH"]}
${pm_file}= Upload PM Files to xNF SFTP Server ${pm_file_path} ${BULK_PM_MODE}
Set Global Variable ${PM_FILE} ${pm_file}
DR Bulk PM Feed Check
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${resp}= Run DR Get Request ${DR_SUB_CHECK_PATH}
Should Contain ${resp.text} bulk_pm_feed
DR PM Mapper Subscriber Check
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${resp}= Run DR Get Request ${DR_SUB_CHECK_PATH}
Should Contain ${resp.text} https://dcae-pm-mapper:8443/delivery
Sending File Ready Event to VES Collector After Services Deployed
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${file_format_type} ${file_format_version}= Run Keyword If "${BULK_PM_MODE}" == "custom" Set Variable ${ENV_VARIABLES["FILE_FORMAT_TYPE"]} ${ENV_VARIABLES["FILE_FORMAT_VERSION"]}
... ELSE Set Variable ${DEFAULT_ENV_VARIABLES["FILE_FORMAT_TYPE"]} ${DEFAULT_ENV_VARIABLES["FILE_FORMAT_VERSION"]}
Send File Ready Event to VES Collector ${PM_FILE} ${file_format_type} ${file_format_version}
Verifying 3GPP Perf VES Content On PERFORMANCE_MEASUREMENTS Topic After Services Deployed
[Tags] 5gbulkpm 5gbulkpm_checking_sftp_rsa_key
${expected_pm_str} ${expected_event_json_path}= Run Keyword If "${BULK_PM_MODE}" == "custom" Set Variable ${ENV_VARIABLES["EXPECTED_PM_STR"]} ${ENV_VARIABLES["EXPECTED_EVENT_JSON_PATH"]}
... ELSE Set Variable ${DEFAULT_ENV_VARIABLES["EXPECTED_PM_STR"]} none
Run Keyword If "${BULK_PM_MODE}" == "custom" Wait Until Keyword Succeeds 3x 3 min Run Keyword And Expect Error * Get Event From Topic ${expected_event_json_path}
... ELSE Wait Until Keyword Succeeds 3 min 5 s xNF PM File Validate ${expected_pm_str}
Run Keyword If "${BULK_PM_MODE}" == "custom" Validate Json Event From Topic ${expected_event_json_path} ${expected_pm_str}
Setting KNOWN_HOSTS_FILE_PATH Environment Variable
[Tags] 5gbulkpm_checking_sftp_rsa_key
${rc}= Run and Return RC ${SET_KNOWN_HOSTS_FILE_PATH}
Should Be Equal As Integers ${rc} 0
Wait Until Keyword Succeeds 5 min 10s Check Known Hosts In Env ${CHECK_ENV_SET}
${rc}= Run and Return RC ${GET_RSA_KEY}
Should Be Equal As Integers ${rc} 0
${rc}= Run and Return RC ${COPY_RSA_KEY}
Should Be Equal As Integers ${rc} 0
Uploading PM Files to xNF SFTP Server After KNOWN_HOSTS_FILE_PATH Env Variable Added
[Tags] 5gbulkpm_checking_sftp_rsa_key
Set Test Variable ${KNOWN_HOST_VARIABLE} True
${pm_file_path}= Set Variable If "${BULK_PM_MODE}" == "custom" ${ENV_VARIABLES["PM_FILE_PATH"]} ${DEFAULT_ENV_VARIABLES["PM_FILE_PATH"]}
${pm_file}= Upload PM Files to xNF SFTP Server ${pm_file_path} ${BULK_PM_MODE} ${KNOWN_HOST_VARIABLE}
Set Global Variable ${PM_FILE} ${pm_file}
Set Test Variable ${KNOWN_HOST_VARIABLE} False
Sending File Ready Event to VES Collector After KNOWN_HOSTS_FILE_PATH Env Variable Added
[Tags] 5gbulkpm_checking_sftp_rsa_key
${file_format_type} ${file_format_version}= Run Keyword If "${BULK_PM_MODE}" == "custom" Set Variable ${ENV_VARIABLES["FILE_FORMAT_TYPE"]} ${ENV_VARIABLES["FILE_FORMAT_VERSION"]}
... ELSE Set Variable ${DEFAULT_ENV_VARIABLES["FILE_FORMAT_TYPE"]} ${DEFAULT_ENV_VARIABLES["FILE_FORMAT_VERSION"]}
Send File Ready Event to VES Collector ${PM_FILE} ${file_format_type} ${file_format_version}
Verifying 3GPP Perf VES Content On PERFORMANCE_MEASUREMENTS Topic After KNOWN_HOSTS_FILE_PATH Env Variable Added
[Tags] 5gbulkpm_checking_sftp_rsa_key
Set Test Variable ${KNOWN_HOST_VARIABLE} True
${expected_pm_str} ${expected_event_json_path}= Run Keyword If "${BULK_PM_MODE}" == "custom" Set Variable ${ENV_VARIABLES["EXPECTED_PM_STR"]} ${ENV_VARIABLES["EXPECTED_EVENT_JSON_PATH"]}
... ELSE Set Variable ${DEFAULT_ENV_VARIABLES["EXPECTED_PM_STR"]} none
Run Keyword If "${BULK_PM_MODE}" == "custom" Wait Until Keyword Succeeds 3x 3 min Run Keyword And Expect Error * Get Event From Topic ${expected_event_json_path} ${KNOWN_HOST_VARIABLE}
... ELSE Wait Until Keyword Succeeds 3 min 5 s xNF PM File Validate ${expected_pm_str} ${expected_event_json_path}
Run Keyword If "${BULK_PM_MODE}" == "custom" Validate Json Event From Topic ${expected_event_json_path} ${expected_pm_str} ${KNOWN_HOST_VARIABLE}
Set Test Variable ${KNOWN_HOST_VARIABLE} False
Checking DFC Logs After KNOWN_HOSTS_FILE_PATH Env Variable Added
[Tags] 5gbulkpm_checking_sftp_rsa_key
${dfc_logs}= Run Given Command On DFC Container ${CHECK_DFC_LOGS}
Should Not Contain ${dfc_logs} ${EXPECTED_PRINT}
Changing SFTP Server RSA Key
[Tags] 5gbulkpm_checking_sftp_rsa_key
${get_known_hosts_file}= OperatingSystem.Get File /tmp/known_hosts
${change_rsa_key}= Replace String ${get_known_hosts_file} A a
Create File /tmp/known_hosts ${change_rsa_key}
${rc}= Run and Return RC ${COPY_RSA_KEY}
Should Be Equal As Integers ${rc} 0
Uploading PM Files to xNF SFTP Server After SFTP Server RSA Key Changed
[Tags] 5gbulkpm_checking_sftp_rsa_key
Set Test Variable ${KNOWN_HOST_VARIABLE} True
${pm_file_path}= Set Variable If "${BULK_PM_MODE}" == "custom" ${ENV_VARIABLES["PM_FILE_PATH"]} ${DEFAULT_ENV_VARIABLES["PM_FILE_PATH"]}
${pm_file}= Upload PM Files to xNF SFTP Server ${pm_file_path} ${BULK_PM_MODE} ${KNOWN_HOST_VARIABLE}
Set Global Variable ${PM_FILE} ${pm_file}
Set Test Variable ${KNOWN_HOST_VARIABLE} False
Sending File Ready Event to VES Collector After SFTP Server RSA Key Changed
[Tags] 5gbulkpm_checking_sftp_rsa_key
${file_format_type} ${file_format_version}= Run Keyword If "${BULK_PM_MODE}" == "custom" Set Variable ${ENV_VARIABLES["FILE_FORMAT_TYPE"]} ${ENV_VARIABLES["FILE_FORMAT_VERSION"]}
... ELSE Set Variable ${DEFAULT_ENV_VARIABLES["FILE_FORMAT_TYPE"]} ${DEFAULT_ENV_VARIABLES["FILE_FORMAT_VERSION"]}
Send File Ready Event to VES Collector ${PM_FILE} ${file_format_type} ${file_format_version}
Checking DFC Logs After SFTP Server RSA Key Changed
[Tags] 5gbulkpm_checking_sftp_rsa_key
Wait Until Keyword Succeeds 5 sec 30 sec Check Given Print In DFC LOG ${CHECK_DFC_LOGS}
|