0937c5ac0fb29a39dd257440a1b000c3bc58c231
[testsuite.git] / robot / resources / usecases / 5gbulkpm_helm_interface.robot
1 *** Settings ***
2 Documentation     The main interface for interacting with 5G Bulkpm.
3 Library               RequestsLibrary
4 Library           OperatingSystem
5 Library           String
6 Library           JSONLibrary
7 Resource          ../mr_interface.robot
8 Resource          ../dr_interface.robot
9 Resource          ../bc_interface.robot
10 Resource          ../consul_interface.robot
11 Resource          ../chart_museum.robot
12
13 *** Variables ***
14 ${INVENTORY_SERVER}                                 ${GLOBAL_INVENTORY_SERVER_PROTOCOL}://${GLOBAL_INVENTORY_SERVER_NAME}:${GLOBAL_INVENTORY_SERVER_PORT}
15 ${DEPLOYMENT_SERVER}                                ${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PROTOCOL}://${GLOBAL_DEPLOYMENT_HANDLER_SERVER_NAME}:${GLOBAL_DEPLOYMENT_HANDLER_SERVER_PORT}
16 ${DR_ENDPOINT}                                      ${GLOBAL_DMAAP_DR_PROV_SERVER_PROTOCOL}://${GLOBAL_INJECTED_DMAAP_DR_PROV_IP_ADDR}:${GLOBAL_DMAAP_DR_PROV_SERVER_PORT}
17 ${DMAAP_BC_SERVER}                                  ${GLOBAL_BC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_BC_IP_ADDR}:${GLOBAL_BC_HTTPS_SERVER_PORT}
18 ${VES_HEALTH_CHECK_PATH}                            ${GLOBAL_DCAE_VES_HTTPS_PROTOCOL}://${GLOBAL_INJECTED_DCAE_VES_HOST}:${GLOBAL_DCAE_VES_HTTPS_SERVER_PORT}
19 ${MR_PUBLISH_TEMPLATE}                              mr/mr_publish.jinja
20 ${INVENTORY_ENDPOINT}                               /dcae-service-types
21 ${XNF_SFTP_BLUEPRINT_PATH}                          ${EXECDIR}/robot/assets/usecases/5gbulkpm/k8s-sftp.yaml
22 ${XNF_HTTPS_BLUEPRINT_PATH}                          ${EXECDIR}/robot/assets/usecases/5gbulkpm/k8s-https.yaml
23 ${BLUEPRINT_TEMPLATE_PATH}                          ${EXECDIR}/robot/assets/usecases/5gbulkpm/blueprintTemplate.json
24 ${DEPLOYMENT_ENDPOINT}                              dcae-deployments
25 ${MR_TOPIC_CHECK_PATH}                              /topics
26 ${DR_SUB_CHECK_PATH}                                /internal/prov
27 ${MR_TOPIC_URL_PATH}                                /events/unauthenticated.PERFORMANCE_MEASUREMENTS/CG1/C1
28 ${MR_TOPIC_URL_PATH_FOR_POST}                       /events/unauthenticated.PERFORMANCE_MEASUREMENTS
29 ${DMAAP_BC_MR_CLIENT_PATH}                          /webapi/mr_clients
30 ${DMAAP_BC_MR_CLUSTER_PATH}                         /webapi/mr_clusters
31 ${PMMAPPER_HEALTH_CHECK_PATH}                       /healthcheck
32 ${JSON_DATA_FILE}                                   ${EXECDIR}/robot/assets/usecases/5gbulkpm/Notification.json
33 ${VES_LISTENER_PATH}                                /eventListener/v7
34 ${PMMAPPER_SUB_ROLE_DATA}                           ${EXECDIR}/robot/assets/usecases/5gbulkpm/sub.json
35 ${PMMAPPER_MR_CLUSTER_DATA}                         ${EXECDIR}/robot/assets/usecases/5gbulkpm/mr_clusters.json
36 ${NEXUS3}                                           ${GLOBAL_INJECTED_NEXUS_DOCKER_REPO}
37 ${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
38 ${CHECK_ENV_SET}                                    kubectl set env pod/$(kubectl get pod -n onap | grep datafile | awk '{print $1}') --list -n onap
39 ${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
40 ${CHECK_DFC_LOGS}                                   kubectl logs $(kubectl get pod -n onap | grep datafile | awk '{print $1}') -n onap --tail=10
41 ${CHECK_ALL_DFC_LOGS}                               kubectl logs $(kubectl get pod -n onap | grep datafile | awk '{print $1}') -n onap --all-containers
42 ${CHECK_ALL_PMMAPPER_LOGS}                          kubectl logs $(kubectl get pod -n onap | grep pm-mapper | awk '{print $1}') -n onap --all-containers
43 ${EXPECTED_PRINT}                                   StrictHostKeyChecking is enabled but environment variable KNOWN_HOSTS_FILE_PATH is not set or points to not existing file
44 ${MONGO_BLUEPRINT_PATH}                             ${EXECDIR}/robot/assets/cmpv2/k8s-mongo.yaml
45 ${PNF_SIMULATOR_BLUEPRINT_PATH}                     ${EXECDIR}/robot/assets/cmpv2/k8s-pnf-simulator.yaml
46 ${MONGO_VES_CLIENT_BLUEPRINT_PATH}                  ${EXECDIR}/robot/assets/cmpv2/k8s-mongo-ves-client.yaml
47 ${VES_CLIENT_BLUEPRINT_PATH}                        ${EXECDIR}/robot/assets/cmpv2/k8s-ves-client.yaml
48 ${VES_INPUTS}                                       deployment/VesTlsCmpv2Inputs.jinja
49 ${pm_notification_event}                            dfc/notification.jinja
50 ${consul_change_event}                              dfc/consul.jinja
51 ${ves_client_single_event}=                         ves/pnf_simulator_single_event.jinja
52 ${SFTP_HELM_CHARTS}                                 ${EXECDIR}/robot/assets/helm/sftp
53 ${HTTPS_SERVER_HELM_CHARTS}                         ${EXECDIR}/robot/assets/helm/pm-https-server
54 ${HELM_RELEASE}                                     kubectl --namespace onap get pods | sed 's/ .*//' | grep robot | sed 's/-.*//'
55
56 *** Keywords ***
57
58 xNF PM File Validate
59     [Documentation]
60     ...  This keyword gathers all events from message router topic and validates if in recived data is present an expected string: "${expected_pm_str}" .
61     [Arguments]                 ${expected_pm_str}
62     ${timestamp}=               Get Time                        epoch
63     ${resp}=                    Run MR Auth Get Request         ${MR_TOPIC_URL_PATH}            ${GLOBAL_DCAE_USERNAME}         ${GLOBAL_DCAE_PASSWORD}
64     Should Contain              ${resp.text}                  ${expected_pm_str}
65
66 Topic Validate
67     [Arguments]                         ${value}
68     ${timestamp}=                       Get Current Date
69     ${dict}=                            Create Dictionary                           timestamp=${timestamp}
70     Templating.Create Environment       mr                                          ${GLOBAL_TEMPLATE_FOLDER}
71     ${data}=                            Templating.Apply Template                   mr                                  ${MR_PUBLISH_TEMPLATE}              ${dict}
72     ${resp}=                            Run MR Auth Post Request (User And Pass)    ${MR_TOPIC_URL_PATH_FOR_POST}       ${GLOBAL_DCAE_USERNAME}             ${GLOBAL_DCAE_PASSWORD}       ${data}
73     Should Be Equal As Strings          ${resp.status_code}                         200
74     ${resp}=                            Run MR Auth Get Request                     ${MR_TOPIC_URL_PATH}                ${GLOBAL_DCAE_USERNAME}             ${GLOBAL_DCAE_PASSWORD}
75     Should Contain                      ${resp.text}                                ${value}
76
77 Send File Ready Event to VES Collector and Deploy all DCAE Applications
78     [Arguments]                                 ${pm_file}              ${file_format_type}             ${file_format_version}
79     Disable Warnings
80     Delete PERFORMANCE_MEASUREMENTS topic
81     Setting Global Variables
82     Send File Ready Event to VES Collector      ${pm_file}              ${file_format_type}             ${file_format_version}
83     Add chart repository                        chart-museum                  http://chart-museum:80      onapinitializer      demo123456!
84     Log To Console                              Deploying Data File Collector
85     Deploying Data File Collector
86     Log To Console                              Deploying 3GPP PM Mapper
87     Deploying 3GPP PM Mapper
88     Log To Console                              Deploying SFTP Server As xNF
89     Deploying SFTP Server As xNF
90     Log To Console                              Deploying HTTPS Server with correct CMPv2 certificates as xNF
91     Deploying HTTPS server with correct certificates
92     Log To Console                              Deploying HTTPS Server with wrong subject alternatives in CMPv2 certificates as xNF
93     Deploying HTTPS server with wrong certificates - wrong SAN-s
94     DR Bulk PM Feed Check
95     DR PM Mapper Subscriber Check
96
97 Usecase Teardown
98     Disable Warnings
99     Get all logs from PM Mapper
100     Get all logs from Data File Collector
101     Uninstall helm charts               ${ONAP_HELM_RELEASE}-dcae-datafile-collector
102     Uninstall helm charts               ${ONAP_HELM_RELEASE}-dcae-pm-mapper
103     Uninstall helm charts               ${ONAP_HELM_RELEASE}-sftp
104     Uninstall helm charts               ${ONAP_HELM_RELEASE}-pm-https-server-correct-sans
105     Uninstall helm charts               ${ONAP_HELM_RELEASE}-pm-https-server-wrong-sans
106
107 Setting Global Variables
108     ${test_variables} =  Create Dictionary
109     Set To Dictionary  ${test_variables}   FILE_FORMAT_TYPE=org.3GPP.32.435#measCollec
110     ...                                    FILE_FORMAT_VERSION=V10
111     ...                                    PM_FILE_PATH=${EXECDIR}/robot/assets/usecases/5gbulkpm/pmfiles/A20181002.0000-1000-0015-1000_5G.xml.gz
112     ...                                    EXPECTED_PM_STR=perf3gpp_RnNode-Ericsson_pmMeasResult
113     Set Global Variable   ${GLOBAL_TEST_VARIABLES}  ${test_variables}
114     ${command_output} =                 Run And Return Rc And Output        ${HELM_RELEASE}
115     Should Be Equal As Integers         ${command_output[0]}                0
116     Set Global Variable   ${ONAP_HELM_RELEASE}   ${command_output[1]}
117
118 Send File Ready Event to VES Collector
119     [Arguments]                         ${pm_file}                          ${file_format_type}             ${file_format_version}
120     Disable Warnings
121     ${headers}=                         Create Dictionary                   content-type=application/json
122     ${fileready}=                       OperatingSystem.Get File            ${JSON_DATA_FILE}
123     ${auth}=                            Create List                         ${GLOBAL_DCAE_VES_USERNAME}     ${GLOBAL_DCAE_VES_PASSWORD}
124     ${session}=                         Create Session                      ves                             ${VES_HEALTH_CHECK_PATH}      auth=${auth}
125     ${resp}=                            Post Request                        ves                             ${VES_LISTENER_PATH}          data=${fileready}   headers=${headers}
126     Should Be Equal As Strings          ${resp.status_code}                 202
127     ${VES_FILE_READY_NOTIFICATION}      Set Variable                        {"event":{"commonEventHeader":{"version":"4.0.1","vesEventListenerVersion":"7.0.1","domain":"notification","eventName":"Noti_RnNode-Ericsson_FileReady","eventId":"FileReady_1797490e-10ae-4d48-9ea7-3d7d790b25e1","lastEpochMicrosec":8745745764578,"priority":"Normal","reportingEntityName":"otenb5309","sequence":0,"sourceName":"oteNB5309","startEpochMicrosec":8745745764578,"timeZoneOffset":"UTC+05.30"},"notificationFields":{"changeIdentifier":"PM_MEAS_FILES","changeType":"FileReady","notificationFieldsVersion":"2.0","arrayOfNamedHashMap":[{"name":"${pm_file}","hashMap":{"location":"sftp://bulkpm:bulkpm@${ONAP_HELM_RELEASE}-sftp:22/upload/${pm_file}","compression":"gzip","fileFormatType":"${file_format_type}","fileFormatVersion":"${file_format_version}"}}]}}}
128     ${resp}=                            Post Request                        ves                             ${VES_LISTENER_PATH}          data=${VES_FILE_READY_NOTIFICATION}   headers=${headers}
129     Should Be Equal As Strings          ${resp.status_code}                 202
130
131 Upload PM Files to xNF SFTP Server
132     [Arguments]                         ${pm_file_path}
133     Open Connection                     ${ONAP_HELM_RELEASE}-sftp
134     Login                               bulkpm                             bulkpm
135     ${epoch}=                           Get Current Date                   result_format=epoch
136     ${pm_file}=                         Set Variable                        A${epoch}.xml.gz
137     Put File                            ${pm_file_path}                    upload/${pm_file}
138     [Return]  ${pm_file}
139
140 Check Given Print In DFC Log
141     [Arguments]                         ${check_dfc_logs}
142     ${dfc_logs}=                        Run Given Command On DFC Container                                      ${CHECK_DFC_LOGS}
143     Should Contain                      ${dfc_logs}                                                             HostKey has been changed
144
145 Run Given Command On DFC Container
146     [Arguments]                         ${user_command}
147     ${run_command} =                    Run And Return Rc And Output        ${user_command}
148     Should Be Equal As Integers         ${run_command[0]}                   0
149     ${command_output} =                 Set Variable                        ${run_command[1]}
150     ${regexp_matches} =                 Get Regexp Matches                  ${command_output}                   .*(\\s|\\[)+(.+-datafile-collector).*  2
151     ${matches_length} =                 Get length                          ${regexp_matches}
152     ${log} =                            Run Keyword If   "${matches_length}"!='0'  Get DFC log by container name   ${command_output}  ${regexp_matches}
153                                         ...  ELSE   Set Variable   ${command_output}
154     [Return]                            ${log}
155
156 Get DFC log by container name
157     [Arguments]                         ${command_output}                   ${regexp_matches}
158     ${dfc_container_name} =             Set Variable                        ${regexp_matches[0]}
159     ${new_command} =                    Set Variable                        ${user_command} ${dfc_container_name}
160     ${command_output} =                 Run And Return Rc And Output        ${new_command}
161     Should Be Equal As Integers         ${run_command[0]}                   0
162     ${log} =                            Set Variable                        ${run_command[1]}
163     [Return]                            ${log}
164
165 Check Known Hosts In Env
166     [Arguments]                         ${CHECK_KNOWN_HOSTS}
167     ${check} =                          Run And Return Rc And Output        ${CHECK_KNOWN_HOSTS}
168     Should Be Equal As Integers         ${check[0]}                         0
169     ${env} =                            Set Variable                        ${check[1]}
170     ${string_matches} =                 Get Lines Containing String         ${env}                              KNOWN_HOSTS_FILE_PATH=/home/datafile/.ssh/known_host  case_insensitive=True
171     ${output} =                         Should Not Be Empty                 ${string_matches}
172     [Return]                            ${output}
173
174 Deploying Data File Collector
175     Install helm charts                 chart-museum                       dcae-datafile-collector         ${ONAP_HELM_RELEASE}-dcae-datafile-collector           6m      --set useCmpv2Certificates=true --set global.cmpv2Enabled=true --set masterPasswordOverride=test --set global.centralizedLoggingEnabled=false --debug
176
177 Deploying 3GPP PM Mapper
178     ${override} =                       Set Variable                       --set global.centralizedLoggingEnabled=false --debug
179     Install helm charts                 chart-museum                       dcae-pm-mapper         ${ONAP_HELM_RELEASE}-dcae-pm-mapper             6m   set_values_override=${override}
180
181 Deploying SFTP Server As xNF
182     ${override} =                       Set Variable                       --set fullnameOverride=${ONAP_HELM_RELEASE}-sftp --debug
183     Install helm charts from folder     ${SFTP_HELM_CHARTS}                ${ONAP_HELM_RELEASE}-sftp                 6m  set_values_override=${override}
184
185 Deploying HTTPS server with correct certificates
186     ${name} =                           Set Variable                       ${ONAP_HELM_RELEASE}-pm-https-server-correct-sans
187     ${override} =                       Set Variable                       --set fullnameOverride=${name} --set nameOverride=${name} --set certificates.name=${name} --set certificates.commonName=${name} --set certificates.dnsNames={${name}} --debug
188     Install helm charts from folder     ${HTTPS_SERVER_HELM_CHARTS}        ${name}                 set_values_override=${override}
189
190 Deploying HTTPS server with wrong certificates - wrong SAN-s
191     ${name} =                           Set Variable                       ${ONAP_HELM_RELEASE}-pm-https-server-wrong-sans
192     ${override} =                       Set Variable                       --set fullnameOverride=${name} --set nameOverride=${name} --set certificates.name=${name} --set certificates.commonName=wrong-sans-1 --set certificates.dnsNames={wrong-sans-2} --debug
193     Install helm charts from folder     ${HTTPS_SERVER_HELM_CHARTS}        ${name}                 set_values_override=${override}
194
195 DR Bulk PM Feed Check
196     ${resp}=                            Run DR Get Request                  ${DR_SUB_CHECK_PATH}
197     Should Contain                      ${resp.text}                        bulk_pm_feed
198
199 DR PM Mapper Subscriber Check
200     ${resp}=                            Run DR Get Request                  ${DR_SUB_CHECK_PATH}
201     Should Contain                      ${resp.text}                        http://dcae-pm-mapper:8081/delivery
202
203 Setting KNOWN_HOSTS_FILE_PATH Environment Variable in DFC
204     ${rc}=                             Run and Return RC                   ${SET_KNOWN_HOSTS_FILE_PATH}
205     Should Be Equal As Integers        ${rc}                               0
206     Wait Until Keyword Succeeds        7 min                               10s               Check Known Hosts In Env             ${CHECK_ENV_SET}
207     ${GET_RSA_KEY}=                    Set Variable                        kubectl exec $(kubectl get pod -n onap | grep ${ONAP_HELM_RELEASE}-sftp | awk '{print $1}') -n onap -- ssh-keyscan -t rsa ${ONAP_HELM_RELEASE}-sftp > /tmp/known_hosts
208     ${rc}=                             Run and Return RC                   ${GET_RSA_KEY}
209     Should Be Equal As Integers        ${rc}                               0
210     ${rc}=                             Run and Return RC                   ${COPY_RSA_KEY}
211     Should Be Equal As Integers        ${rc}                               0
212
213 Uploading PM Files to xNF SFTP Server
214     ${pm_file}=                         Upload PM Files to xNF SFTP Server      ${GLOBAL_TEST_VARIABLES["PM_FILE_PATH"]}
215     Set Global Variable                 ${PM_FILE}                              ${pm_file}
216
217 Sending File Ready Event to VES Collector
218     Send File Ready Event to VES Collector  ${PM_FILE}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_TYPE"]}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_VERSION"]}
219
220 Verifying 3GPP Perf VES Content On PERFORMANCE_MEASUREMENTS Topic
221     Wait Until Keyword Succeeds         2 min                            5 sec            xNF PM File Validate   ${GLOBAL_TEST_VARIABLES["EXPECTED_PM_STR"]}
222
223 Changing SFTP Server RSA Key in DFC
224     ${get_known_hosts_file}=          OperatingSystem.Get File  /tmp/known_hosts
225     ${change_rsa_key}=                Replace String            ${get_known_hosts_file}        A  a
226     Create File                       /tmp/known_hosts          ${change_rsa_key}
227     ${rc}=                            Run and Return RC         ${COPY_RSA_KEY}
228     Should Be Equal As Integers       ${rc}                     0
229
230 Checking DFC Logs After KNOWN_HOSTS_FILE_PATH Env Variable Added
231     ${dfc_logs}=                     Run Given Command On DFC Container      ${CHECK_DFC_LOGS}
232     Should Not Contain               ${dfc_logs}                             ${EXPECTED_PRINT}
233
234 Get all logs from PM Mapper
235     ${pmmapper_logs}=                Check logs      ${CHECK_ALL_PMMAPPER_LOGS}
236     Log                              ${pmmapper_logs}
237
238 Get all logs from Data File Collector
239     ${pmmapper_logs}=                Check logs      ${CHECK_ALL_DFC_LOGS}
240     Log                              ${pmmapper_logs}
241
242 Checking DFC Logs After SFTP Server RSA Key Changed
243     Wait Until Keyword Succeeds         5 min  30 sec            Check Given Print In DFC LOG  ${CHECK_DFC_LOGS}
244
245 Check logs
246     [Arguments]  ${LOG_CHECK}
247     ${rc} =                                    Run And Return Rc And Output                    ${LOG_CHECK}
248     Should Be Equal As Integers                ${rc[0]}                               0
249     [Return]                                   ${rc[1]}
250
251 Change DFC httpsHostnameVerify configuration in Consul
252     [Documentation]     Changes DFC httpsHostnameVerify config.
253     [Arguments]                     ${httpsHostnameVerify}
254     ${httpsHostnameVerify_conf}     Create Dictionary               httpsHostnameVerify=${httpsHostnameVerify}
255     Templating.Create Environment   pm                              ${GLOBAL_TEMPLATE_FOLDER}
256     ${event}=                       Templating.Apply Template       pm                              ${consul_change_event}      ${httpsHostnameVerify_conf}
257     ${rc}   ${container_name} =   Run and Return RC and Output  kubectl get pods -n onap | grep datafile-collector | awk '{print $1}' | grep -v NAME | awk -F'-' '{print $2}'
258     Should Be Equal As Integers   ${rc}                           0
259     ${resp}=                        Run Consul Put Request          /v1/kv/${container_name}-datafile-collector?raw=1          ${event}
260     Should Be Equal As Strings      ${resp.status_code}             200
261     ${rc} =                       Run and Return RC               kubectl delete pods -n onap $(kubectl get pods -n onap | grep datafile-collector | awk '{print $1}' | grep -v NAME)
262     Should Be Equal As Integers   ${rc}                           0
263     Wait Until Keyword Succeeds         360 sec          15 sec       Check logs                  kubectl logs -n onap $(kubectl get pods -n onap | grep datafile-collector | awk '{print $1}' | grep -v NAME) ${container_name}-datafile-collector
264
265 Sending File Ready Event to VES Collector for HTTPS Server
266     [Arguments]  ${https-server_host}
267     Send File Ready Event to VES Collector for HTTPS Server  ${PM_FILE}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_TYPE"]}  ${GLOBAL_TEST_VARIABLES["FILE_FORMAT_VERSION"]}    ${https-server_host}
268
269 Send File Ready Event to VES Collector for HTTPS Server
270     [Arguments]                         ${pm_file}                          ${file_format_type}             ${file_format_version}     ${https_server_host}
271     Disable Warnings
272     ${pm_event}                         Create Dictionary                   https_server_host=${https_server_host}  pm_file=${pm_file}   fileFormatType=${file_format_type}   fileFormatVersion=${file_format_version}
273     Templating.Create Environment       pm                                  ${GLOBAL_TEMPLATE_FOLDER}
274     ${VES_FILE_READY_NOTIFICATION}=     Templating.Apply Template           pm                              ${pm_notification_event}   ${pm_event}
275     ${headers}=                         Create Dictionary                   content-type=application/json
276     ${auth}=                            Create List                         ${GLOBAL_DCAE_VES_USERNAME}     ${GLOBAL_DCAE_VES_PASSWORD}
277     ${session}=                         Create Session                      ves                             ${VES_HEALTH_CHECK_PATH}      auth=${auth}
278     ${resp}=                            Post Request                        ves                             ${VES_LISTENER_PATH}          data=${VES_FILE_READY_NOTIFICATION}   headers=${headers}
279     Should Be Equal As Strings          ${resp.status_code}                 202
280
281
282 Uploading PM Files to xNF HTTPS Server
283     [Arguments]                         ${https-server_host}
284     ${pm_file}=                         Upload PM Files to xNF HTTPS Server     ${GLOBAL_TEST_VARIABLES["PM_FILE_PATH"]}    ${https-server_host}
285     Set Global Variable                 ${PM_FILE}                              ${pm_file}
286
287 Upload PM Files to xNF HTTPS Server
288     [Arguments]                         ${pm_file_path}                     ${https_server}
289     ${epoch}=                           Get Current Date                    result_format=epoch
290     ${pm_file} =                        Set Variable                        A${epoch}.xml.gz
291     Copy File                           ${pm_file_path}                     tmp/${pm_file}
292     ${fileData}=                        Get Binary File                     tmp/${pm_file}
293     ${file_part}=                       Create List                         ${pm_file}                         ${fileData}                   application/octet-stream
294     ${fileParts}=                       Create Dictionary
295     Set to Dictionary                   ${fileParts}                        uploaded_file=${file_part}
296     ${auth}=                            Create List                         demo                                demo123456!
297     ${session}=                         Create Session                      https                               http://${https_server}:80   auth=${auth}
298     ${resp}=                            Post Request                        https                               /upload.php                 files=${fileParts}
299     Should Be Equal As Strings          ${resp.status_code}                 200
300     [Return]                            ${pm_file}