[PMSH] CSIT Enhancements
[integration/csit.git] / tests / dcaegen2-services-pmsh / testcases / pmsh.robot
1 *** Settings ***
2 Documentation     Testing PMSH functionality
3
4 Library           OperatingSystem
5 Library           RequestsLibrary
6 Library           String
7 Library           Process
8
9 Resource          ../../common.robot
10 Test Teardown     Delete All Sessions
11
12
13 *** Variables ***
14
15 ${PMSH_BASE_URL}                    https://${PMSH_IP}:8443
16 ${MR_SIM_BASE_URL}                  http://${MR_SIM_IP_ADDRESS}:3904
17 ${SUBSCRIPTION_ENDPOINT}            /subscription
18
19 ${MR_SIM_RESET}                             %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/mr-sim-reset.json
20 ${MR_AAI_PNF_CREATED}                       %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/aai-pnf-create.json
21 ${MR_AAI_PNF_REMOVED}                       %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/aai-pnf-delete.json
22 ${MR_POLICY_RESPONSE_PNF_EXISTING}          %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/policy-sub-created-pnf-existing.json
23 ${MR_POLICY_RESPONSE_PNF_DELETED}           %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/policy-sub-deleted-pnf-existing.json
24 ${CREATE_SUBSCRIPTION_DATA}                 %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_request.json
25 ${CREATE_SECOND_SUBSCRIPTION_DATA}          %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/create_second_subscription_request.json
26 ${CREATE_SUBSCRIPTION_BAD_DATA}             %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_bad_request.json
27 ${CREATE_SUBSCRIPTION_SCHEMA_ERROR_DATA}    %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_schema_error_request.json
28 ${CREATE_MSG_GRP_DATA}                      %{WORKSPACE}/tests/dcaegen2-services-pmsh/testcases/assets/create_msg_grp.json
29
30 *** Test Cases ***
31 Verify Get subscriptions with Network Functions None
32     [Tags]                          PMSH_01
33     [Documentation]                 Verify Get all subscriptions when there are no defined subscriptions
34     [Timeout]                       10 seconds
35     ${resp}=                        GetSubsCall    ${SUBSCRIPTION_ENDPOINT}     ""
36     Should Be True                  ${resp.status_code} == 200
37     Should Contain                  ${resp.text}                     []
38
39 Verify Create Subscriptions API
40     [Tags]                          PMSH_07
41     [Documentation]                 Verify Create Subscription API
42     [Timeout]                       60 seconds
43     ${json_value}=                  json_from_file                  ${CREATE_SUBSCRIPTION_DATA}
44     ${resp}=                        PostSubscriptionCall     ${SUBSCRIPTION_ENDPOINT}   ${json_value}
45     Should Be True                  ${resp.status_code} == 201
46      ${resp}=                       GetSubsCall    ${SUBSCRIPTION_ENDPOINT}   "/subs_01"
47     Should Be Equal As Strings      ${resp.json()[0]['subscription']['subscriptionName']}       subs_01
48
49 Verify database tables exist and are empty
50     [Tags]                          PMSH_02
51     [Documentation]                 Verify database has been created and is empty
52     [Timeout]                       10 seconds
53     ${resp}=                        GetSubsCall    ${SUBSCRIPTION_ENDPOINT}     ""
54     Should Be True                  ${resp.status_code} == 200
55     Should Contain                  ${resp.text}                     []
56
57 Verify PNF detected in AAI when administrative state unlocked
58     [Tags]                          PMSH_03
59     [Documentation]                 Verify PNF detected when administrative state unlocked
60     [Timeout]                       60 seconds
61     ${resp}=                        GetMeasGrpCall    /subscription/subs_01/measurementGroups/msg_grp_01
62     Should Be Equal As Strings      ${resp.json()['subscriptionName']}      subs_01
63     Should Be Equal As Strings      ${resp.json()['administrativeState']}       UNLOCKED
64     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfName']}            pnf-existing
65     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfMgStatus']}      PENDING_CREATE
66
67 Verify Policy response on MR is handled
68     [Tags]                          PMSH_04
69     [Documentation]                 Verify policy response on MR is handled
70     [Timeout]                       60 seconds
71     AddCreatePolicyResponeToMrSim
72     Sleep                           31 seconds      Ensure Policy response on MR is picked up
73     ResetMrSim
74     ${resp}=                        GetMeasGrpCall    /subscription/subs_01/measurementGroups/msg_grp_01
75     Should Be Equal As Strings      ${resp.json()['subscriptionName']}      subs_01
76     Should Be Equal As Strings      ${resp.json()['administrativeState']}       UNLOCKED
77     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfName']}            pnf-existing
78     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfMgStatus']}     CREATED
79
80 Verify AAI event on MR detailing new PNF being detected is handled
81     [Tags]                          PMSH_05
82     [Documentation]                 Verify PNF created AAI event on MR is handled
83     [Timeout]                       60 seconds
84     AddNewPnfToMrSim
85     Sleep                           25 seconds     Give sim time to set expectation
86     ResetMrSim
87     ${resp}=                        GetMeasGrpCall    /subscription/subs_01/measurementGroups/msg_grp_01
88     Should Be Equal As Strings      ${resp.json()['subscriptionName']}      subs_01
89     Should Be Equal As Strings      ${resp.json()['administrativeState']}       UNLOCKED
90     Should Be Equal As Strings      ${resp.json()['networkFunctions'][1]['nfName']}            pnf_newly_discovered
91     Should Be Equal As Strings      ${resp.json()['networkFunctions'][1]['nfMgStatus']}      PENDING_CREATE
92
93 Verify AAI event on MR detailing PNF being deleted is handled
94     [Tags]                          PMSH_06
95     [Documentation]                 Verify PNF deleted AAI event on MR is handled
96     [Timeout]                       60 seconds
97     RemoveNewPnfFromMrSim
98     Sleep                           21 seconds      Ensure AAI event on MR is picked up
99     ResetMrSim
100     ${resp}=                        GetMeasGrpCall    /subscription/subs_01/measurementGroups/msg_grp_01
101     Should Not Contain              ${resp.text}    pnf_newly_discovered
102
103 Verify Create Subscription API for duplicate subscription Id
104     [Tags]                          PMSH_08
105     [Documentation]                 Verify Create Subscription API for duplicate subscription Id
106     [Timeout]                       60 seconds
107     ${json_value}=                  json_from_file                  ${CREATE_SUBSCRIPTION_DATA}
108     ${resp}=                        PostSubscriptionCall     ${SUBSCRIPTION_ENDPOINT}   ${json_value}
109     Should Be True                  ${resp.status_code} == 409
110     Should Contain                  ${resp.json()}      subscription Name: subs_01 already exists.
111
112 Verify Create Subscription API for schema error
113     [Tags]                          PMSH_09
114     [Documentation]                 Verify Create Subscription API
115     [Timeout]                       60 seconds
116     ${json_value}=                  json_from_file                  ${CREATE_SUBSCRIPTION_SCHEMA_ERROR_DATA}
117     ${resp}=                        PostSubscriptionCall     ${SUBSCRIPTION_ENDPOINT}   ${json_value}
118     Should Be True                  ${resp.status_code} == 400
119     Should Contain                  ${resp.json()['detail']}      'administrativeState' is a required property - 'subscription.measurementGroups.0.measurementGroup'
120
121 Verify Create Subscription API for filter values missing
122     [Tags]                          PMSH_10
123     [Documentation]                 Verify Create Subscription API
124     [Timeout]                       60 seconds
125     ${json_value}=                  json_from_file                  ${CREATE_SUBSCRIPTION_BAD_DATA}
126     ${resp}=                        PostSubscriptionCall     ${SUBSCRIPTION_ENDPOINT}   ${json_value}
127     Should Be True                  ${resp.status_code} == 400
128     Should Contain                  ${resp.json()}      At least one filter within nfFilter must not be empty
129
130 Verify Get Measurement Group with Network Functions
131     [Tags]                          PMSH_11
132     [Documentation]                 Verify Get Measurement Group with Network Functions by using MGName and SubName
133     [Timeout]                       60 seconds
134     ${resp}=                        GetMeasGrpWithNFSCall     /subscription/subs_01/measurementGroups/msg_grp_01
135     ${nf_length}=                   Get length  ${resp.json()['networkFunctions']}
136     Should Be True                  ${resp.status_code} == 200
137     Should Be Equal As Strings      ${resp.json()['subscriptionName']}      subs_01
138     Should Be Equal As Strings      ${resp.json()['measurementGroupName']}      msg_grp_01
139     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfName']}      pnf-existing
140     Should be equal as numbers      ${nf_length}  1
141
142 Verify Get single subscription with Network Functions
143     [Tags]                          PMSH_12
144     [Documentation]                 Verify Get single subscription with Network Functions by using subscription name
145     [Timeout]                       60 seconds
146     ${resp}=                        GetSubsCall    ${SUBSCRIPTION_ENDPOINT}/subs_01  ""
147     ${nf_length}=                   Get length  ${resp.json()['subscription']['nfs']}
148     Should Be True                  ${resp.status_code} == 200
149     Should Be Equal As Strings      ${resp.json()['subscription']['subscriptionName']}      subs_01
150     Should Be Equal As Strings      ${resp.json()['subscription']['nfs'][0]}      pnf-existing
151         Should Be Equal As Strings      ${resp.json()['subscription']['measurementGroups'][0]['measurementGroup']['measurementGroupName']}  msg_grp_02
152     Should be equal as numbers      ${nf_length}  1
153
154 Verify Get single subscription with Network Functions None
155     [Tags]                          PMSH_13
156     [Documentation]                 Verify Get single subscription with Network Functions when there is no defined subscription
157     [Timeout]                       60 seconds
158     ${resp}=                        GetSubsCall    ${SUBSCRIPTION_ENDPOINT}/sub_none  ""
159     Should Be True                  ${resp.status_code} == 404
160     Should Be Equal As Strings      ${resp.json()['error']}     Subscription was not defined with the name : sub_none
161
162 Verify Update Measurement Group admin status from Unlocked to Locking
163     [Tags]                          PMSH_14
164     [Documentation]                 Verify Update Measurement Group admin status from Unlocked to Locking
165     [Timeout]                       60 seconds
166     ${json_string}=                 Set Variable    {"administrativeState": "LOCKED"}
167     ${json}=                        evaluate        json.loads('''${json_string}''')    json
168     ${resp}=                        PutMsgGrpStatusCall     /subscription/subs_01/measurementGroups/msg_grp_01/adminState   ${json}
169     Should Be True                  ${resp.status_code} == 200
170     Should Contain                  ${resp.json()}      Successfully updated admin state
171     ${resp}=                        GetMeasGrpWithNFSCall     /subscription/subs_01/measurementGroups/msg_grp_01
172     ${nf_length}=                   Get length  ${resp.json()['networkFunctions']}
173     Should Be True                  ${resp.status_code} == 200
174     Should Be Equal As Strings      ${resp.json()['subscriptionName']}      subs_01
175     Should Be Equal As Strings      ${resp.json()['measurementGroupName']}      msg_grp_01
176     Should Be Equal As Strings      ${resp.json()['administrativeState']}       LOCKING
177     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfName']}      pnf-existing
178     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfMgStatus']}      PENDING_DELETE
179     Should be equal as numbers      ${nf_length}  1
180
181 Verify Update Measurement Group admin status with locking in progress
182     [Tags]                          PMSH_15
183     [Documentation]                 Verify Update Measurement Group admin status with locking in progress
184     [Timeout]                       60 seconds
185     ${json_string}=                 Set Variable    {"administrativeState": "LOCKED"}
186     ${json}=                        evaluate        json.loads('''${json_string}''')    json
187     ${resp}=                        PutMsgGrpStatusCall     /subscription/subs_01/measurementGroups/msg_grp_01/adminState   ${json}
188     Should Be True                  ${resp.status_code} == 409
189     Should Contain                  ${resp.json()}  Cannot update admin status as Locked request is in progress for sub name: subs_01  and meas group name: msg_grp_01
190
191 Verify Measurement Group admin status update from Locking to Locked
192     [Tags]                          PMSH_16
193     [Documentation]                 Verify Measurement Group admin status update from Locking to Locked
194     [Timeout]                       60 seconds
195     AddDeletePolicyResponeToMrSim
196     Sleep                           31 seconds      Ensure Policy response on MR is picked up
197     ResetMrSim
198     ${resp}=                        GetMeasGrpCall    /subscription/subs_01/measurementGroups/msg_grp_01
199     Should Be Equal As Strings      ${resp.json()['measurementGroupName']}      msg_grp_01
200     Should Be Equal As Strings      ${resp.json()['subscriptionName']}      subs_01
201     Should Be Equal As Strings      ${resp.json()['administrativeState']}       LOCKED
202     ${nf_length}=                   Get length  ${resp.json()['networkFunctions']}
203     Should be equal as numbers      ${nf_length}  0
204
205 Verify Update Measurement Group admin status to unlocked
206     [Tags]                          PMSH_17
207     [Documentation]                 Verify Update Measurement Group admin status to unlocked with no Network Functions in Subscription
208     [Timeout]                       60 seconds
209     ${json_string}=                 Set Variable    {"administrativeState": "UNLOCKED"}
210     ${json}=                        evaluate        json.loads('''${json_string}''')    json
211     ${resp}=                        PutMsgGrpStatusCall     /subscription/subs_01/measurementGroups/msg_grp_01/adminState   ${json}
212     Should Be True                  ${resp.status_code} == 200
213     Should Contain                  ${resp.json()}      Successfully updated admin state
214     ${resp}=                        GetMeasGrpWithNFSCall     /subscription/subs_01/measurementGroups/msg_grp_01
215     ${nf_length}=                   Get length  ${resp.json()['networkFunctions']}
216     Should Be True                  ${resp.status_code} == 200
217     Should Be Equal As Strings      ${resp.json()['subscriptionName']}      subs_01
218     Should Be Equal As Strings      ${resp.json()['measurementGroupName']}      msg_grp_01
219     Should Be Equal As Strings      ${resp.json()['administrativeState']}       UNLOCKED
220     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfName']}      pnf-existing
221     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfMgStatus']}      PENDING_CREATE
222     Should be equal as numbers      ${nf_length}  1
223
224 Verify Update Measurement Group admin status from Locked to Unlocked with Network function present in subscription
225     [Tags]                          PMSH_18
226     [Documentation]                 Verify Update Measurement Group admin status from Locked to Unlocked with Network function present in subscription
227     [Timeout]                       60 seconds
228     ${json_string}=                 Set Variable    {"administrativeState": "UNLOCKED"}
229     ${json}=                        evaluate        json.loads('''${json_string}''')    json
230     ${resp}=                        PutMsgGrpStatusCall     /subscription/subs_01/measurementGroups/msg_grp_02/adminState   ${json}
231     Should Be True                  ${resp.status_code} == 200
232     Should Contain                  ${resp.json()}      Successfully updated admin state
233     ${resp}=                        GetMeasGrpWithNFSCall     /subscription/subs_01/measurementGroups/msg_grp_02
234     ${nf_length}=                   Get length  ${resp.json()['networkFunctions']}
235     Should Be True                  ${resp.status_code} == 200
236     Should Be Equal As Strings      ${resp.json()['subscriptionName']}      subs_01
237     Should Be Equal As Strings      ${resp.json()['measurementGroupName']}      msg_grp_02
238     Should Be Equal As Strings      ${resp.json()['administrativeState']}       UNLOCKED
239     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfName']}      pnf-existing
240     Should Be Equal As Strings      ${resp.json()['networkFunctions'][0]['nfMgStatus']}      PENDING_CREATE
241     Should be equal as numbers      ${nf_length}  1
242
243 Verify Update Measurement Group admin status with no change
244     [Tags]                          PMSH_19
245     [Documentation]                 Verify Update Measurement Group admin status with no change
246     [Timeout]                       60 seconds
247     ${json_string}=                 Set Variable    {"administrativeState": "UNLOCKED"}
248     ${json}=                        evaluate        json.loads('''${json_string}''')    json
249     ${resp}=                        PutMsgGrpStatusCall     /subscription/subs_01/measurementGroups/msg_grp_01/adminState   ${json}
250     Should Be True                  ${resp.status_code} == 400
251     Should Contain                  ${resp.json()}  Measurement group is already in UNLOCKED state for sub name: subs_01  and meas group name: msg_grp_01
252
253 Verify Update Measurement Group admin status for invalid measurement group
254     [Tags]                          PMSH_20
255     [Documentation]                 Verify Update Measurement Group admin status for invalid measurement group
256     [Timeout]                       60 seconds
257     ${json_string}=                 Set Variable    {"administrativeState": "LOCKED"}
258     ${json}=                        evaluate        json.loads('''${json_string}''')    json
259     ${resp}=                        PutMsgGrpStatusCall     /subscription/subs_01/measurementGroups/msg_grp_11/adminState   ${json}
260     Should Be True                  ${resp.status_code} == 400
261     Should Contain                  ${resp.json()}  Requested measurement group not available for admin status update
262
263 Verify Get subscriptions with Network Functions
264     [Tags]                          PMSH_21
265     [Documentation]                 Verify Get subscriptions with Network Functions
266     [Timeout]                       60 seconds
267     ${json_value}=                  json_from_file                  ${CREATE_SECOND_SUBSCRIPTION_DATA}
268     ${resp_post}=                   PostSubscriptionCall     ${SUBSCRIPTION_ENDPOINT}   ${json_value}
269     ${resp}=                        GetSubsCall    ${SUBSCRIPTION_ENDPOINT}  ""
270     ${nf_length_first}=             Get length  ${resp.json()[0]['subscription']['nfs']}
271     ${nf_length_second}=            Get length  ${resp.json()[1]['subscription']['nfs']}
272     Should Be True                  ${resp.status_code} == 200
273     Should Be Equal As Strings      ${resp.json()[0]['subscription']['subscriptionName']}      subs_01
274     Should Be Equal As Strings      ${resp.json()[0]['subscription']['nfs'][0]}      pnf-existing
275         Should Be Equal As Strings      ${resp.json()[0]['subscription']['measurementGroups'][0]['measurementGroup']['measurementGroupName']}  msg_grp_02
276     Should be equal as numbers      ${nf_length_first}  1
277     Should Be Equal As Strings      ${resp.json()[1]['subscription']['subscriptionName']}      subs_02
278     Should Be Equal As Strings      ${resp.json()[1]['subscription']['nfs'][0]}      pnf-existing
279         Should Be Equal As Strings      ${resp.json()[1]['subscription']['measurementGroups'][0]['measurementGroup']['measurementGroupName']}  msg_grp_04
280     Should be equal as numbers      ${nf_length_second}  1
281
282 Verify Delete Measurement Group with Administrative State unlocked
283     [Tags]                          PMSH_22
284     [Documentation]                 Verify Delete Measurement Group with Administrative State unlocked
285     [Timeout]                       60 seconds
286     ${json_string}=                 Set Variable    {"administrativeState": "UNLOCKED"}
287     ${json}=                        evaluate        json.loads('''${json_string}''')    json
288     PutMsgGrpStatusCall             /subscription/subs_01/measurementGroups/msg_grp_02/adminState   ${json}
289     ${resp}=                        DeleteMeasGrpCall   /subscription/subs_01/measurementGroups/msg_grp_02
290     Should Be True                  ${resp.status_code} == 409
291
292 Verify Delete Measurement Group with incorrect Measurement Group name server error
293     [Tags]                          PMSH_23
294     [Documentation]                 Verify Delete Measurement Group with incorrect Measurement Group Name
295     [Timeout]                       60 seconds
296     ${resp}=                        DeleteMeasGrpCall   /subscription/subs_01/measurementGroups/nonexistent
297     Should Be True                  ${resp.status_code} == 500
298
299 Verify Create Measurement Group successful
300     [Tags]                          PMSH_24
301     [Documentation]                 Verify Create Measurement Group successful
302     [Timeout]                       60 seconds
303     ${json_value}=                  json_from_file                  ${CREATE_MSG_GRP_DATA}
304     ${resp}=                        PostMsgGrpCall      /subscription/subs_01/measurementGroups/msg_grp_05  ${json_value}
305     Should Be True                  ${resp.status_code} == 201
306
307 Verify Create Measurement Group unsuccessful
308     [Tags]                          PMSH_25
309     [Documentation]                 Verify Create Measurement Group successful
310     [Timeout]                       60 seconds
311     ${json_value}=                  json_from_file                  ${CREATE_MSG_GRP_DATA}
312     ${resp}=                        PostMsgGrpCall      /subscription/subs_01/measurementGroups/msg_grp_05  ${json_value}
313     Should Be True                  ${resp.status_code} == 409
314
315 Verify Delete Measurement Group successful
316     [Tags]                          PMSH_26
317     [Documentation]                 Verify Delete Measurement Group successful
318     [Timeout]                       60 seconds
319     ${resp}=                        DeleteMeasGrpCall   /subscription/subs_01/measurementGroups/msg_grp_05
320     Should Be True                  ${resp.status_code} == 204
321
322 *** Keywords ***
323
324 AddCreatePolicyResponeToMrSim
325     ${data}=            Get Data From File      ${MR_POLICY_RESPONSE_PNF_EXISTING}
326     Create Session      mr_sim_session   ${MR_SIM_BASE_URL}    verify=false
327     ${resp}=            PUT On Session    mr_sim_session    url=/clear  data={"id" : "pmsh_cl_input_event"}
328     Should Be True      ${resp.status_code} == 200
329     Sleep               2                 Allow MR_SIM time to set expectation
330     ${resp} =           PUT On Session    mr_sim_session    url=/expectation     data=${data}
331     Should Be True      ${resp.status_code} == 201
332
333 AddDeletePolicyResponeToMrSim
334     ${data}=            Get Data From File      ${MR_POLICY_RESPONSE_PNF_DELETED}
335     Create Session      mr_sim_session   ${MR_SIM_BASE_URL}    verify=false
336     ${resp}=            PUT On Session    mr_sim_session    url=/clear  data={"id" : "pmsh_cl_input_event"}
337     Should Be True      ${resp.status_code} == 200
338     Sleep               2                 Allow MR_SIM time to set expectation
339     ${resp} =           PUT On Session    mr_sim_session    url=/expectation     data=${data}
340     Should Be True      ${resp.status_code} == 201
341
342 AddNewPnfToMrSim
343     ${data}=            Get Data From File      ${MR_AAI_PNF_CREATED}
344     Create Session      mr_sim_session   ${MR_SIM_BASE_URL}    verify=false
345     ${resp}=            PUT On Session    mr_sim_session    url=/clear  data={"id" : "mr_aai_event"}
346     Should Be True      ${resp.status_code} == 200
347     Sleep               2                 Allow MR_SIM time to set expectation
348     ${resp} =           PUT On Session    mr_sim_session    url=/expectation     data=${data}
349     Should Be True      ${resp.status_code} == 201
350
351 RemoveNewPnfFromMrSim
352     ${data}=            Get Data From File      ${MR_AAI_PNF_REMOVED}
353     Create Session      mr_sim_session   ${MR_SIM_BASE_URL}    verify=false
354     ${resp}=            PUT On Session    mr_sim_session    url=/clear  data={"id" : "mr_aai_event"}
355     Should Be True      ${resp.status_code} == 200
356     Sleep               2                 Allow MR_SIM time to set expectation
357     ${resp} =           PUT On Session    mr_sim_session    url=/expectation     data=${data}
358     Should Be True      ${resp.status_code} == 201
359
360 ResetMrSim
361     ${data}=            Get Data From File      ${MR_SIM_RESET}
362     Create Session      mr_sim_session   ${MR_SIM_BASE_URL}    verify=false
363     ${resp}=            PUT On Session    mr_sim_session    url=/reset
364     Should Be True      ${resp.status_code} == 200
365     ${resp}=            PUT On Session    mr_sim_session    url=/expectation     data=${data}
366     Should Be True      ${resp.status_code} == 201
367
368 GetSubsCall
369     [Arguments]     ${url}      ${url_path_param}
370     Create Session  pmsh_session      ${PMSH_BASE_URL}    verify=false
371     ${resp}=        GET On Session    pmsh_session        url=${url}    data={"path": {url_path_param}}    expected_status=any
372     [Return]        ${resp}
373
374 GetMeasGrpCall
375     [Arguments]     ${url}
376     Create Session  pmsh_session      ${PMSH_BASE_URL}    verify=false
377     ${resp}=        GET On Session    pmsh_session        url=${url}
378     [Return]        ${resp}
379
380 GetMeasGrpWithNFSCall
381     [Arguments]     ${url}
382     Create Session  pmsh_session      ${PMSH_BASE_URL}    verify=false
383     ${resp}=        GET On Session    pmsh_session        url=${url}
384     [Return]        ${resp}
385
386 DeleteMeasGrpCall
387     [Arguments]     ${url}
388     Create Session  pmsh_session      ${PMSH_BASE_URL}    verify=false
389     ${resp}=        DELETE On Session    pmsh_session        url=${url}     expected_status=anything
390     [Return]        ${resp}
391
392 PostSubscriptionCall
393     [Arguments]     ${url}     ${data}
394     Create Session  pmsh_sub_session       ${PMSH_BASE_URL}    verify=false
395     ${headers}=     Create Dictionary    Accept=application/json     Content-Type=application/json
396     ${resp}=        POST On Session      pmsh_sub_session    url=${url}    json=${data}     headers=${headers}  expected_status=anything
397     [Return]        ${resp}
398
399 PostMsgGrpCall
400     [Arguments]     ${url}     ${data}
401     Create Session  pmsh_sub_session       ${PMSH_BASE_URL}    verify=false
402     ${headers}=     Create Dictionary    Accept=application/json     Content-Type=application/json
403     ${resp}=        POST On Session      pmsh_sub_session    url=${url}    json=${data}     headers=${headers}  expected_status=anything
404     [Return]        ${resp}
405
406 PutMsgGrpStatusCall
407     [Arguments]     ${url}     ${data}
408     Create Session  pmsh_sub_session       ${PMSH_BASE_URL}    verify=false
409     ${headers}=     Create Dictionary    Accept=application/json     Content-Type=application/json
410     ${resp}=        PUT On Session      pmsh_sub_session    url=${url}    json=${data}     headers=${headers}  expected_status=anything
411     [Return]        ${resp}