<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.10.6 on linux)" generated="2026-10-26T06:19:21.897318" rpa="false" schemaversion="5">
<suite id="s1" name="plans/dcaegen2-services-pmsh/testsuite" source="/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases">
<suite id="s1-s1" name="Pmsh" source="/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/pmsh.robot">
<test id="s1-s1-t1" name="Verify Get subscriptions with Network Functions None" line="31">
<kw name="GetSubsCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:22.049199" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:19:22.048655" elapsed="0.000817"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:22.108752" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription 
 path_url=/subscription 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '26'} 
 body={"path": {url_path_param}} 
 </msg>
<msg time="2026-10-26T06:19:22.108903" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '3', 'Server': 'TornadoServer/6.1'} 
 body=[]
 
 </msg>
<msg time="2026-10-26T06:19:22.109172" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:19:22.109664" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<arg>data={"path": {url_path_param}}</arg>
<arg>expected_status=any</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:22.049669" elapsed="0.060052"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:19:22.109912" elapsed="0.000126"/>
</return>
<msg time="2026-10-26T06:19:22.110322" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>""</arg>
<status status="PASS" start="2026-10-26T06:19:22.047498" elapsed="0.062871"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:19:22.110743" elapsed="0.001224"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>[]</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:19:22.112185" elapsed="0.000983"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:19:22.113691" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:19:22.113540" elapsed="0.000256"/>
</kw>
<doc>Verify Get all subscriptions when there are no defined subscriptions</doc>
<tag>PMSH_01</tag>
<timeout value="10 seconds"/>
<status status="PASS" start="2026-10-26T06:19:22.046376" elapsed="0.067500"/>
</test>
<test id="s1-s1-t2" name="Verify Create Subscriptions API" line="39">
<kw name="json_from_file" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:19:22.116457" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_request.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_request.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:19:22.116755" level="INFO">${json_file} = {
  "subscription": {
    "subscriptionName": "subs_01",
    "operationalPolicyName":"pmsh-operational-policy",
    "controlLoopName":"pmsh-control-loop",
    "nfFilter": {
      "nfNames": [
        ...</msg>
<var>${json_file}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:19:22.116134" elapsed="0.000667"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:19:22.117882" level="INFO">${json_object} = {'subscription': {'subscriptionName': 'subs_01', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': ['^pnf.*', '^vnf.*'], 'modelInvaria...</msg>
<var>${json_object}</var>
<arg>json.loads('''${json_file}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:19:22.117029" elapsed="0.000902"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-26T06:19:22.118017" elapsed="0.000045"/>
</return>
<msg time="2026-10-26T06:19:22.118273" level="INFO">${json_value} = {'subscription': {'subscriptionName': 'subs_01', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': ['^pnf.*', '^vnf.*'], 'modelInvaria...</msg>
<var>${json_value}</var>
<arg>${CREATE_SUBSCRIPTION_DATA}</arg>
<status status="PASS" start="2026-10-26T06:19:22.115551" elapsed="0.002768"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:22.119490" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:19:22.119158" elapsed="0.000652"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:19:22.120745" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:19:22.120066" elapsed="0.000727"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:23.130408" level="INFO">POST Request : url=https://172.17.0.5:8443/subscription 
 path_url=/subscription 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '761'} 
 body=b'{"subscription": {"subscriptionName": "subs_01", "operationalPolicyName": "pmsh-operational-policy", "controlLoopName": "pmsh-control-loop", "nfFilter": {"nfNames": ["^pnf.*", "^vnf.*"], "modelInvariantIDs": [], "modelVersionIDs": [], "modelNames": []}, "measurementGroups": [{"measurementGroup": {"measurementGroupName": "msg_grp_01", "fileBasedGP": 15, "fileLocation": "pm.xml", "administrativeState": "UNLOCKED", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}, {"measurementGroup": {"measurementGroupName": "msg_grp_02", "fileBasedGP": 15, "fileLocation": "pm.xml", "administrativeState": "LOCKED", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}]}}' 
 </msg>
<msg time="2026-10-26T06:19:23.130552" level="INFO">POST Response : url=https://172.17.0.5:8443/subscription 
 status=201, reason=CREATED 
 headers={'Content-Type': 'application/json', 'Content-Length': '0', 'Server': 'TornadoServer/6.1'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:19:23.131018" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:19:23.131484" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:22.121005" elapsed="1.010564"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:19:23.131810" elapsed="0.000108"/>
</return>
<msg time="2026-10-26T06:19:23.132284" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>${json_value}</arg>
<status status="PASS" start="2026-10-26T06:19:22.118571" elapsed="1.013788"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:19:23.132810" elapsed="0.001518"/>
</kw>
<kw name="GetSubsCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:23.136261" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:19:23.135739" elapsed="0.003367"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:23.164601" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription 
 path_url=/subscription 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '26'} 
 body={"path": {url_path_param}} 
 </msg>
<msg time="2026-10-26T06:19:23.164728" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '1401', 'Server': 'TornadoServer/6.1'} 
 body=[
  {
    "subscription": {
      "controlLoopName": "pmsh-control-loop",
      "measurementGroups": [
        {
          "measurementGroup": {
            "administrativeState": "LOCKED",
            "fileBasedGP": 15,
            "fileLocation": "pm.xml",
            "managedObjectDNsBasic": [
              {
                "DN": "string"
              }
            ],
            "measurementGroupName": "msg_grp_02",
            "measurementTypes": [
              {
                "measurementType": "counter_a"
              }
            ]
          }
        },
        {
          "measurementGroup": {
            "administrativeState": "UNLOCKED",
            "fileBasedGP": 15,
            "fileLocation": "pm.xml",
            "managedObjectDNsBasic": [
              {
                "DN": "string"
              }
            ],
            "measurementGroupName": "msg_grp_01",
            "measurementTypes": [
              {
                "measurementType": "counter_a"
              }
            ]
          }
        }
      ],
      "nfFilter": {
        "modelInvariantIDs": [],
        "modelNames": [],
        "modelVersionIDs": [],
        "nfNames": [
          "^pnf.*",
          "^vnf.*"
        ]
      },
      "nfs": [
        "pnf-existing"
      ],
      "operationalPolicyName": "pmsh-operational-policy",
      "subscriptionName": "subs_01"
    }
  }
]
 
 </msg>
<msg time="2026-10-26T06:19:23.164962" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:19:23.165344" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<arg>data={"path": {url_path_param}}</arg>
<arg>expected_status=any</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:23.139465" elapsed="0.025959"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:19:23.165590" elapsed="0.000109"/>
</return>
<msg time="2026-10-26T06:19:23.166028" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>"/subs_01"</arg>
<status status="PASS" start="2026-10-26T06:19:23.134793" elapsed="0.031310"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()[0]['subscription']['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:19:23.166449" elapsed="0.001347"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:19:23.168511" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:19:23.168305" elapsed="0.000569"/>
</kw>
<doc>Verify Create Subscription API</doc>
<tag>PMSH_07</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:19:22.114472" elapsed="1.054535"/>
</test>
<test id="s1-s1-t3" name="Verify database tables exist and are empty" line="49">
<kw name="GetSubsCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:23.172699" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:19:23.172168" elapsed="0.000924"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:23.196839" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription 
 path_url=/subscription 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '26'} 
 body={"path": {url_path_param}} 
 </msg>
<msg time="2026-10-26T06:19:23.196934" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '1401', 'Server': 'TornadoServer/6.1'} 
 body=[
  {
    "subscription": {
      "controlLoopName": "pmsh-control-loop",
      "measurementGroups": [
        {
          "measurementGroup": {
            "administrativeState": "LOCKED",
            "fileBasedGP": 15,
            "fileLocation": "pm.xml",
            "managedObjectDNsBasic": [
              {
                "DN": "string"
              }
            ],
            "measurementGroupName": "msg_grp_02",
            "measurementTypes": [
              {
                "measurementType": "counter_a"
              }
            ]
          }
        },
        {
          "measurementGroup": {
            "administrativeState": "UNLOCKED",
            "fileBasedGP": 15,
            "fileLocation": "pm.xml",
            "managedObjectDNsBasic": [
              {
                "DN": "string"
              }
            ],
            "measurementGroupName": "msg_grp_01",
            "measurementTypes": [
              {
                "measurementType": "counter_a"
              }
            ]
          }
        }
      ],
      "nfFilter": {
        "modelInvariantIDs": [],
        "modelNames": [],
        "modelVersionIDs": [],
        "nfNames": [
          "^pnf.*",
          "^vnf.*"
        ]
      },
      "nfs": [
        "pnf-existing"
      ],
      "operationalPolicyName": "pmsh-operational-policy",
      "subscriptionName": "subs_01"
    }
  }
]
 
 </msg>
<msg time="2026-10-26T06:19:23.197223" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:19:23.197574" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<arg>data={"path": {url_path_param}}</arg>
<arg>expected_status=any</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:23.173459" elapsed="0.024216"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:19:23.197839" elapsed="0.000078"/>
</return>
<msg time="2026-10-26T06:19:23.198221" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>""</arg>
<status status="PASS" start="2026-10-26T06:19:23.171245" elapsed="0.027047"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:19:23.198693" elapsed="0.001367"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>[]</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:19:23.200403" elapsed="0.001121"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:19:23.202232" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:19:23.202029" elapsed="0.000340"/>
</kw>
<doc>Verify database has been created and is empty</doc>
<tag>PMSH_02</tag>
<timeout value="10 seconds"/>
<status status="PASS" start="2026-10-26T06:19:23.169865" elapsed="0.032621"/>
</test>
<test id="s1-s1-t4" name="Verify PNF detected in AAI when administrative state unlocked" line="57">
<kw name="GetMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:23.206037" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:19:23.205466" elapsed="0.000973"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:23.236168" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:19:23.236268" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '736', 'Server': 'TornadoServer/6.1'} 
 body={
  "administrativeState": "UNLOCKED",
  "fileBasedGP": 15,
  "fileLocation": "pm.xml",
  "managedObjectDNsBasic": [
    {
      "DN": "string"
    }
  ],
  "measurementGroupName": "msg_grp_01",
  "measurementTypes": [
    {
      "measurementType": "counter_a"
    }
  ],
  "networkFunctions": [
    {
      "ipv4Address": "10.10.10.32",
      "ipv6Address": "2001:0db8:0:0:0:0:1428:57ab",
      "modelInvariantId": "7129e420-d396-4efb-af02-6b83499b12f8",
      "modelName": "PNF102",
      "modelVersionId": "77c1a3d9-422a-4f78-bd8f-f7a357685b25",
      "nfMgStatus": "PENDING_CREATE",
      "nfName": "pnf-existing",
      "sdncModelName": "pm_control",
      "sdncModelVersion": "1.0.0"
    }
  ],
  "subscriptionName": "subs_01"
}
 
 </msg>
<msg time="2026-10-26T06:19:23.236486" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:19:23.236829" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:23.206792" elapsed="0.030113"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:19:23.237046" elapsed="0.000089"/>
</return>
<msg time="2026-10-26T06:19:23.237472" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01</arg>
<status status="PASS" start="2026-10-26T06:19:23.204649" elapsed="0.032894"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:19:23.237881" elapsed="0.001151"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['administrativeState']}</arg>
<arg>UNLOCKED</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:19:23.239368" elapsed="0.001148"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfName']}</arg>
<arg>pnf-existing</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:19:23.240917" elapsed="0.022035"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfMgStatus']}</arg>
<arg>PENDING_CREATE</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:19:23.263365" elapsed="0.000748"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:19:23.264571" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:19:23.264441" elapsed="0.000240"/>
</kw>
<doc>Verify PNF detected when administrative state unlocked</doc>
<tag>PMSH_03</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:19:23.203237" elapsed="0.061585"/>
</test>
<test id="s1-s1-t5" name="Verify Policy response on MR is handled" line="67">
<kw name="AddCreatePolicyResponeToMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:19:23.267587" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/policy-sub-created-pnf-existing.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/policy-sub-created-pnf-existing.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:19:23.267884" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${file}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:19:23.267288" elapsed="0.000643"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-26T06:19:23.268014" elapsed="0.000059"/>
</return>
<msg time="2026-10-26T06:19:23.268270" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${MR_POLICY_RESPONSE_PNF_EXISTING}</arg>
<status status="PASS" start="2026-10-26T06:19:23.266785" elapsed="0.001530"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:23.268883" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.4:3904, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>mr_sim_session</arg>
<arg>${MR_SIM_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:19:23.268536" elapsed="0.000626"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:23.300205" level="INFO">PUT Request : url=http://172.17.0.4:3904/clear 
 path_url=/clear 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '30'} 
 body={"id" : "pmsh_cl_input_event"} 
 </msg>
<msg time="2026-10-26T06:19:23.300317" level="INFO">PUT Response : url=http://172.17.0.4:3904/clear 
 status=200, reason=OK 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/clear" is deprecated use "/mockserver/clear" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:19:23.300685" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/clear</arg>
<arg>data={"id" : "pmsh_cl_input_event"}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:23.269392" elapsed="0.031368"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:19:23.301141" elapsed="0.001362"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-26T06:19:25.303854" level="INFO">Slept 2 seconds.</msg>
<msg time="2026-10-26T06:19:25.303971" level="INFO">Allow MR_SIM time to set expectation</msg>
<arg>2</arg>
<arg>Allow MR_SIM time to set expectation</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-26T06:19:23.302844" elapsed="2.001467"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:25.343882" level="INFO">PUT Request : url=http://172.17.0.4:3904/expectation 
 path_url=/expectation 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '1575'} 
 body=[
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{

            }
         }
      }
   },
   {
      "id":"pmsh_cl_input_event",
      "httpRequest":{
         "path":"/events/unauthenticated.PMSH_CL_INPUT/.*",
         "method":"GET",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":[
               "{\"name\":\"ResponseEvent\",\"nameSpace\":\"org.onap.policy.apex.onap.pmcontrol\",\"source\":\"APEX\",\"target\":\"DCAE\",\"version\":\"0.0.1\",\"status\":{\"subscriptionName\":\"subs_01\",\"measurementGroupName\": \"msg_grp_01\",\"nfName\":\"pnf-existing\",\"changeType\":\"CREATE\",\"message\":\"success\"}}"
            ]
         }
      }
   },
   {
      "id":"dcae_cl_output_event",
      "httpRequest":{
         "path":"/events/unauthenticated.DCAE_CL_OUTPUT/.*",
         "method":"POST"
      },
      "httpResponse":{
         "statusCode":200
      }
   }
] 
 </msg>
<msg time="2026-10-26T06:19:25.344012" level="INFO">PUT Response : url=http://172.17.0.4:3904/expectation 
 status=201, reason=Created 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/expectation" is deprecated use "/mockserver/expectation" instead', 'connection': 'keep-alive', 'content-type': 'application/json; charset=utf-8', 'content-length': '1489'} 
 body=[ {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/AAI-EVENT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "mr_aai_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/unauthenticated.PMSH_CL_INPUT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : [ "{\"name\":\"ResponseEvent\",\"nameSpace\":\"org.onap.policy.apex.onap.pmcontrol\",\"source\":\"APEX\",\"target\":\"DCAE\",\"version\":\"0.0.1\",\"status\":{\"subscriptionName\":\"subs_01\",\"measurementGroupName\": \"msg_grp_01\",\"nfName\":\"pnf-existing\",\"changeType\":\"CREATE\",\"message\":\"success\"}}" ]
  },
  "id" : "pmsh_cl_input_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "POST",
    "path" : "/events/unauthenticated.DCAE_CL_OUTPUT/.*"
  },
  "httpResponse" : {
    "statusCode" : 200
  },
  "id" : "dcae_cl_output_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
} ] 
 </msg>
<msg time="2026-10-26T06:19:25.344508" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/expectation</arg>
<arg>data=${data}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:25.304825" elapsed="0.039781"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:19:25.344995" elapsed="0.001466"/>
</kw>
<status status="PASS" start="2026-10-26T06:19:23.266281" elapsed="2.080388"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-26T06:19:56.348021" level="INFO">Slept 31 seconds.</msg>
<msg time="2026-10-26T06:19:56.348140" level="INFO">Ensure Policy response on MR is picked up</msg>
<arg>31 seconds</arg>
<arg>Ensure Policy response on MR is picked up</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-26T06:19:25.346959" elapsed="31.001534"/>
</kw>
<kw name="ResetMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:19:56.351457" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/mr-sim-reset.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/mr-sim-reset.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:19:56.351903" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${file}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:19:56.350919" elapsed="0.001057"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-26T06:19:56.352113" elapsed="0.000117"/>
</return>
<msg time="2026-10-26T06:19:56.352544" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${MR_SIM_RESET}</arg>
<status status="PASS" start="2026-10-26T06:19:56.350057" elapsed="0.002557"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:56.353625" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.4:3904, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>mr_sim_session</arg>
<arg>${MR_SIM_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:19:56.353035" elapsed="0.001066"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:56.424277" level="INFO">PUT Request : url=http://172.17.0.4:3904/reset 
 path_url=/reset 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:19:56.424419" level="INFO">PUT Response : url=http://172.17.0.4:3904/reset 
 status=200, reason=OK 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/reset" is deprecated use "/mockserver/reset" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:19:56.424822" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/reset</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:56.354465" elapsed="0.070431"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:19:56.425359" elapsed="0.001508"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:56.441697" level="INFO">PUT Request : url=http://172.17.0.4:3904/expectation 
 path_url=/expectation 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '1249'} 
 body=[
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{

            }
         }
      }
   },
   {
      "id":"pmsh_cl_input_event",
      "httpRequest":{
         "path":"/events/unauthenticated.PMSH_CL_INPUT/.*",
         "method":"GET",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{

            }
         }
      }
   },
   {
      "id":"dcae_cl_output_event",
      "httpRequest":{
         "path":"/events/unauthenticated.DCAE_CL_OUTPUT/.*",
         "method":"POST"
      },
      "httpResponse":{
         "statusCode":200
      }
   }
] 
 </msg>
<msg time="2026-10-26T06:19:56.441819" level="INFO">PUT Response : url=http://172.17.0.4:3904/expectation 
 status=201, reason=Created 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/expectation" is deprecated use "/mockserver/expectation" instead', 'connection': 'keep-alive', 'content-type': 'application/json; charset=utf-8', 'content-length': '1177'} 
 body=[ {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/AAI-EVENT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "mr_aai_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/unauthenticated.PMSH_CL_INPUT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "pmsh_cl_input_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "POST",
    "path" : "/events/unauthenticated.DCAE_CL_OUTPUT/.*"
  },
  "httpResponse" : {
    "statusCode" : 200
  },
  "id" : "dcae_cl_output_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
} ] 
 </msg>
<msg time="2026-10-26T06:19:56.442337" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/expectation</arg>
<arg>data=${data}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:56.427228" elapsed="0.015192"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:19:56.442792" elapsed="0.001860"/>
</kw>
<status status="PASS" start="2026-10-26T06:19:56.349125" elapsed="0.095711"/>
</kw>
<kw name="GetMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:56.446646" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:19:56.446100" elapsed="0.000950"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:56.475584" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:19:56.475692" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '729', 'Server': 'TornadoServer/6.1'} 
 body={
  "administrativeState": "UNLOCKED",
  "fileBasedGP": 15,
  "fileLocation": "pm.xml",
  "managedObjectDNsBasic": [
    {
      "DN": "string"
    }
  ],
  "measurementGroupName": "msg_grp_01",
  "measurementTypes": [
    {
      "measurementType": "counter_a"
    }
  ],
  "networkFunctions": [
    {
      "ipv4Address": "10.10.10.32",
      "ipv6Address": "2001:0db8:0:0:0:0:1428:57ab",
      "modelInvariantId": "7129e420-d396-4efb-af02-6b83499b12f8",
      "modelName": "PNF102",
      "modelVersionId": "77c1a3d9-422a-4f78-bd8f-f7a357685b25",
      "nfMgStatus": "CREATED",
      "nfName": "pnf-existing",
      "sdncModelName": "pm_control",
      "sdncModelVersion": "1.0.0"
    }
  ],
  "subscriptionName": "subs_01"
}
 
 </msg>
<msg time="2026-10-26T06:19:56.475944" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:19:56.476384" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:56.447441" elapsed="0.029021"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:19:56.476619" elapsed="0.000100"/>
</return>
<msg time="2026-10-26T06:19:56.477045" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01</arg>
<status status="PASS" start="2026-10-26T06:19:56.445261" elapsed="0.031855"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:19:56.477506" elapsed="0.001205"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['administrativeState']}</arg>
<arg>UNLOCKED</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:19:56.479043" elapsed="0.001118"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfName']}</arg>
<arg>pnf-existing</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:19:56.480515" elapsed="0.001137"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfMgStatus']}</arg>
<arg>CREATED</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:19:56.481982" elapsed="0.001096"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:19:56.483871" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:19:56.483664" elapsed="0.000545"/>
</kw>
<doc>Verify policy response on MR is handled</doc>
<tag>PMSH_04</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:19:23.265425" elapsed="33.218911"/>
</test>
<test id="s1-s1-t6" name="Verify AAI event on MR detailing new PNF being detected is handled" line="80">
<kw name="AddNewPnfToMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:19:56.489001" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/aai-pnf-create.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/aai-pnf-create.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:19:56.489476" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${file}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:19:56.488526" elapsed="0.001026"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-26T06:19:56.489685" elapsed="0.000082"/>
</return>
<msg time="2026-10-26T06:19:56.490076" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${MR_AAI_PNF_CREATED}</arg>
<status status="PASS" start="2026-10-26T06:19:56.487707" elapsed="0.002441"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:56.491045" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.4:3904, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>mr_sim_session</arg>
<arg>${MR_SIM_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:19:56.490526" elapsed="0.000973"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:56.506600" level="INFO">PUT Request : url=http://172.17.0.4:3904/clear 
 path_url=/clear 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '23'} 
 body={"id" : "mr_aai_event"} 
 </msg>
<msg time="2026-10-26T06:19:56.506838" level="INFO">PUT Response : url=http://172.17.0.4:3904/clear 
 status=200, reason=OK 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/clear" is deprecated use "/mockserver/clear" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:19:56.507566" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/clear</arg>
<arg>data={"id" : "mr_aai_event"}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:56.491835" elapsed="0.015820"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:19:56.508379" elapsed="0.002033"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-26T06:19:58.511877" level="INFO">Slept 2 seconds.</msg>
<msg time="2026-10-26T06:19:58.512040" level="INFO">Allow MR_SIM time to set expectation</msg>
<arg>2</arg>
<arg>Allow MR_SIM time to set expectation</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-26T06:19:56.510742" elapsed="2.001733"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:19:58.534908" level="INFO">PUT Request : url=http://172.17.0.4:3904/expectation 
 path_url=/expectation 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '3062'} 
 body=[
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "statusCode":200,
         "body":{
            "type":"JSON",
            "json":[
               "{\"cambria.partition\":\"AAI\",\"event-header\":{\"severity\":\"NORMAL\",\"entity-type\":\"pnf\",\"top-entity-type\":\"pnf\",\"entity-link\":\"/aai/v21/network/pnfs/pnf/pnf_newly_discovered\",\"event-type\":\"AAI-EVENT\",\"domain\":\"dev\",\"action\":\"UPDATE\",\"sequence-number\":\"0\",\"id\":\"db09e090-196e-4f84-9645-e449b1cd3640\",\"source-name\":\"dcae-curl\",\"version\":\"v21\",\"timestamp\":\"20200203-15:14:08:807\"},\"entity\":{\"ipaddress-v4-oam\":\"10.10.10.37\",\"nf-role\":\"gNB\",\"equip-type\":\"val8\",\"relationship-list\":{\"relationship\":[{\"related-to\":\"service-instance\",\"relationship-data\":[{\"relationship-value\":\"Demonstration\",\"relationship-key\":\"customer.global-customer-id\"},{\"relationship-value\":\"vCPE\",\"relationship-key\":\"service-subscription.service-type\"},{\"relationship-value\":\"2c03b2a8-e31a-4749-9e99-3089ab441400\",\"relationship-key\":\"service-instance.service-instance-id\"}],\"related-link\":\"/aai/v16/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/2c03b2a8-e31a-4749-9e99-3089ab441400\",\"relationship-label\":\"org.onap.relationships.inventory.ComposedOf\",\"related-to-property\":[{\"property-key\":\"service-instance.service-instance-name\",\"property-value\":\"Svc6_1\"}]}]},\"equip-vendor\":\"Ericsson\",\"serial-number\":\"6061ZW3\",\"ipaddress-v6-oam\":\"2001:0db8:0:0:0:0:1428:57ab\",\"orchestration-status\":\"Active\",\"equip-model\":\"val6\",\"in-maint\":false,\"model-version-id\":\"e80a6ae3-cafd-4d24-850d-e14c084a5ca9\",\"resource-version\":\"1578668956804\",\"sw-version\":\"val7\",\"pnf-id\":\"eabcfaf7-b7f3-45fb-94e7-e6112fb3e8b8\",\"pnf-name\":\"pnf_newly_discovered\",\"model-invariant-id\":\"7129e420-d396-4efb-af02-6b83499b12f8\"}}"
            ]
         }
      }
   },
   {
      "id":"pmsh_cl_input_event",
      "httpRequest":{
         "path":"/events/unauthenticated.PMSH_CL_INPUT/.*",
         "method":"GET",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json": {
            }
         }
      }
   },
   {
      "id":"dcae_cl_output_event",
      "httpRequest":{
         "path":"/events/unauthenticated.DCAE_CL_OUTPUT/.*",
         "method":"POST"
      },
      "httpResponse":{
         "statusCode":200
      }
   }
] 
 </msg>
<msg time="2026-10-26T06:19:58.535126" level="INFO">PUT Response : url=http://172.17.0.4:3904/expectation 
 status=201, reason=Created 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/expectation" is deprecated use "/mockserver/expectation" instead', 'connection': 'keep-alive', 'content-type': 'application/json; charset=utf-8', 'content-length': '2976'} 
 body=[ {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/AAI-EVENT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : [ "{\"cambria.partition\":\"AAI\",\"event-header\":{\"severity\":\"NORMAL\",\"entity-type\":\"pnf\",\"top-entity-type\":\"pnf\",\"entity-link\":\"/aai/v21/network/pnfs/pnf/pnf_newly_discovered\",\"event-type\":\"AAI-EVENT\",\"domain\":\"dev\",\"action\":\"UPDATE\",\"sequence-number\":\"0\",\"id\":\"db09e090-196e-4f84-9645-e449b1cd3640\",\"source-name\":\"dcae-curl\",\"version\":\"v21\",\"timestamp\":\"20200203-15:14:08:807\"},\"entity\":{\"ipaddress-v4-oam\":\"10.10.10.37\",\"nf-role\":\"gNB\",\"equip-type\":\"val8\",\"relationship-list\":{\"relationship\":[{\"related-to\":\"service-instance\",\"relationship-data\":[{\"relationship-value\":\"Demonstration\",\"relationship-key\":\"customer.global-customer-id\"},{\"relationship-value\":\"vCPE\",\"relationship-key\":\"service-subscription.service-type\"},{\"relationship-value\":\"2c03b2a8-e31a-4749-9e99-3089ab441400\",\"relationship-key\":\"service-instance.service-instance-id\"}],\"related-link\":\"/aai/v16/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/2c03b2a8-e31a-4749-9e99-3089ab441400\",\"relationship-label\":\"org.onap.relationships.inventory.ComposedOf\",\"related-to-property\":[{\"property-key\":\"service-instance.service-instance-name\",\"property-value\":\"Svc6_1\"}]}]},\"equip-vendor\":\"Ericsson\",\"serial-number\":\"6061ZW3\",\"ipaddress-v6-oam\":\"2001:0db8:0:0:0:0:1428:57ab\",\"orchestration-status\":\"Active\",\"equip-model\":\"val6\",\"in-maint\":false,\"model-version-id\":\"e80a6ae3-cafd-4d24-850d-e14c084a5ca9\",\"resource-version\":\"1578668956804\",\"sw-version\":\"val7\",\"pnf-id\":\"eabcfaf7-b7f3-45fb-94e7-e6112fb3e8b8\",\"pnf-name\":\"pnf_newly_discovered\",\"model-invariant-id\":\"7129e420-d396-4efb-af02-6b83499b12f8\"}}" ]
  },
  "id" : "mr_aai_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/unauthenticated.PMSH_CL_INPUT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "pmsh_cl_input_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "POST",
    "path" : "/events/unauthenticated.DCAE_CL_OUTPUT/.*"
  },
  "httpResponse" : {
    "statusCode" : 200
  },
  "id" : "dcae_cl_output_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
} ] 
 </msg>
<msg time="2026-10-26T06:19:58.535988" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/expectation</arg>
<arg>data=${data}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:19:58.513092" elapsed="0.022979"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:19:58.536686" elapsed="0.001783"/>
</kw>
<status status="PASS" start="2026-10-26T06:19:56.486700" elapsed="2.051966"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-26T06:20:23.542348" level="INFO">Slept 25 seconds.</msg>
<msg time="2026-10-26T06:20:23.542462" level="INFO">Give sim time to set expectation</msg>
<arg>25 seconds</arg>
<arg>Give sim time to set expectation</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-26T06:19:58.538965" elapsed="25.003830"/>
</kw>
<kw name="ResetMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:20:23.545368" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/mr-sim-reset.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/mr-sim-reset.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:20:23.546280" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${file}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:20:23.544988" elapsed="0.001341"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-26T06:20:23.546420" elapsed="0.000067"/>
</return>
<msg time="2026-10-26T06:20:23.546691" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${MR_SIM_RESET}</arg>
<status status="PASS" start="2026-10-26T06:20:23.544381" elapsed="0.002358"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:23.547419" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.4:3904, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>mr_sim_session</arg>
<arg>${MR_SIM_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:23.547041" elapsed="0.001001"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:23.569682" level="INFO">PUT Request : url=http://172.17.0.4:3904/reset 
 path_url=/reset 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:23.569871" level="INFO">PUT Response : url=http://172.17.0.4:3904/reset 
 status=200, reason=OK 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/reset" is deprecated use "/mockserver/reset" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:23.570418" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/reset</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:23.548274" elapsed="0.022232"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:23.571043" elapsed="0.001638"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:23.586995" level="INFO">PUT Request : url=http://172.17.0.4:3904/expectation 
 path_url=/expectation 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '1249'} 
 body=[
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{

            }
         }
      }
   },
   {
      "id":"pmsh_cl_input_event",
      "httpRequest":{
         "path":"/events/unauthenticated.PMSH_CL_INPUT/.*",
         "method":"GET",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{

            }
         }
      }
   },
   {
      "id":"dcae_cl_output_event",
      "httpRequest":{
         "path":"/events/unauthenticated.DCAE_CL_OUTPUT/.*",
         "method":"POST"
      },
      "httpResponse":{
         "statusCode":200
      }
   }
] 
 </msg>
<msg time="2026-10-26T06:20:23.587133" level="INFO">PUT Response : url=http://172.17.0.4:3904/expectation 
 status=201, reason=Created 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/expectation" is deprecated use "/mockserver/expectation" instead', 'connection': 'keep-alive', 'content-type': 'application/json; charset=utf-8', 'content-length': '1177'} 
 body=[ {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/AAI-EVENT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "mr_aai_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/unauthenticated.PMSH_CL_INPUT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "pmsh_cl_input_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "POST",
    "path" : "/events/unauthenticated.DCAE_CL_OUTPUT/.*"
  },
  "httpResponse" : {
    "statusCode" : 200
  },
  "id" : "dcae_cl_output_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
} ] 
 </msg>
<msg time="2026-10-26T06:20:23.587631" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/expectation</arg>
<arg>data=${data}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:23.573058" elapsed="0.014665"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:23.588223" elapsed="0.001686"/>
</kw>
<status status="PASS" start="2026-10-26T06:20:23.543548" elapsed="0.046580"/>
</kw>
<kw name="GetMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:23.592232" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:23.591523" elapsed="0.001440"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:23.624541" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:23.624685" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '1138', 'Server': 'TornadoServer/6.1'} 
 body={
  "administrativeState": "UNLOCKED",
  "fileBasedGP": 15,
  "fileLocation": "pm.xml",
  "managedObjectDNsBasic": [
    {
      "DN": "string"
    }
  ],
  "measurementGroupName": "msg_grp_01",
  "measurementTypes": [
    {
      "measurementType": "counter_a"
    }
  ],
  "networkFunctions": [
    {
      "ipv4Address": "10.10.10.32",
      "ipv6Address": "2001:0db8:0:0:0:0:1428:57ab",
      "modelInvariantId": "7129e420-d396-4efb-af02-6b83499b12f8",
      "modelName": "PNF102",
      "modelVersionId": "77c1a3d9-422a-4f78-bd8f-f7a357685b25",
      "nfMgStatus": "CREATED",
      "nfName": "pnf-existing",
      "sdncModelName": "pm_control",
      "sdncModelVersion": "1.0.0"
    },
    {
      "ipv4Address": "10.10.10.37",
      "ipv6Address": "2001:0db8:0:0:0:0:1428:57ab",
      "modelInvariantId": "7129e420-d396-4efb-af02-6b83499b12f8",
      "modelName": "PNF102",
      "modelVersionId": "e80a6ae3-cafd-4d24-850d-e14c084a5ca9",
      "nfMgStatus": "PENDING_CREATE",
      "nfName": "pnf_newly_discovered",
      "sdncModelName": "pm_control",
      "sdncModelVersion": "1.0.0"
    }
  ],
  "subscriptionName": "subs_01"
}
 
 </msg>
<msg time="2026-10-26T06:20:23.624999" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:23.625508" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:23.593536" elapsed="0.032059"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:23.625783" elapsed="0.000129"/>
</return>
<msg time="2026-10-26T06:20:23.626300" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01</arg>
<status status="PASS" start="2026-10-26T06:20:23.590566" elapsed="0.035815"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:23.626787" elapsed="0.001431"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['administrativeState']}</arg>
<arg>UNLOCKED</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:23.628587" elapsed="0.001257"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][1]['nfName']}</arg>
<arg>pnf_newly_discovered</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:23.630209" elapsed="0.001216"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][1]['nfMgStatus']}</arg>
<arg>PENDING_CREATE</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:23.631788" elapsed="0.001213"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:23.633797" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:23.633582" elapsed="0.000609"/>
</kw>
<doc>Verify PNF created AAI event on MR is handled</doc>
<tag>PMSH_05</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:19:56.485126" elapsed="27.149203"/>
</test>
<test id="s1-s1-t7" name="Verify AAI event on MR detailing PNF being deleted is handled" line="93">
<kw name="RemoveNewPnfFromMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:20:23.638998" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/aai-pnf-delete.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/aai-pnf-delete.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:20:23.639446" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${file}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:20:23.638482" elapsed="0.001044"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-26T06:20:23.639667" elapsed="0.000084"/>
</return>
<msg time="2026-10-26T06:20:23.640106" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${MR_AAI_PNF_REMOVED}</arg>
<status status="PASS" start="2026-10-26T06:20:23.637606" elapsed="0.002577"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:23.641127" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.4:3904, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>mr_sim_session</arg>
<arg>${MR_SIM_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:23.640563" elapsed="0.001070"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:23.652617" level="INFO">PUT Request : url=http://172.17.0.4:3904/clear 
 path_url=/clear 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '23'} 
 body={"id" : "mr_aai_event"} 
 </msg>
<msg time="2026-10-26T06:20:23.652730" level="INFO">PUT Response : url=http://172.17.0.4:3904/clear 
 status=200, reason=OK 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/clear" is deprecated use "/mockserver/clear" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:23.653179" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/clear</arg>
<arg>data={"id" : "mr_aai_event"}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:23.642018" elapsed="0.011241"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:23.653722" elapsed="0.001984"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-26T06:20:25.657174" level="INFO">Slept 2 seconds.</msg>
<msg time="2026-10-26T06:20:25.657284" level="INFO">Allow MR_SIM time to set expectation</msg>
<arg>2</arg>
<arg>Allow MR_SIM time to set expectation</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-26T06:20:23.656069" elapsed="2.001572"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:25.675161" level="INFO">PUT Request : url=http://172.17.0.4:3904/expectation 
 path_url=/expectation 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '3000'} 
 body=[
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "statusCode":200,
         "body":{
            "type":"JSON",
            "json":[
               "{\"cambria.partition\":\"AAI\",\"event-header\":{\"severity\":\"NORMAL\",\"entity-type\":\"pnf\",\"top-entity-type\":\"pnf\",\"entity-link\":\"/aai/v21/network/pnfs/pnf/pnf_newly_discovered\",\"event-type\":\"AAI-EVENT\",\"domain\":\"dev\",\"action\":\"DELETE\",\"sequence-number\":\"0\",\"id\":\"db09e090-196e-4f84-9645-e449b1cd3640\",\"source-name\":\"dcae-curl\",\"version\":\"v21\",\"timestamp\":\"20200203-15:14:08:807\"},\"entity\":{\"ipaddress-v4-oam\":\"10.10.10.37\",\"nf-role\":\"gNB\",\"equip-type\":\"val8\",\"relationship-list\":{\"relationship\":[{\"related-to\":\"service-instance\",\"relationship-data\":[{\"relationship-value\":\"Demonstration\",\"relationship-key\":\"customer.global-customer-id\"},{\"relationship-value\":\"vCPE\",\"relationship-key\":\"service-subscription.service-type\"},{\"relationship-value\":\"2c03b2a8-e31a-4749-9e99-3089ab441400\",\"relationship-key\":\"service-instance.service-instance-id\"}],\"related-link\":\"/aai/v16/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/2c03b2a8-e31a-4749-9e99-3089ab441400\",\"relationship-label\":\"org.onap.relationships.inventory.ComposedOf\",\"related-to-property\":[{\"property-key\":\"service-instance.service-instance-name\",\"property-value\":\"Svc6_1\"}]}]},\"equip-vendor\":\"Ericsson\",\"serial-number\":\"6061ZW3\",\"ipaddress-v6-oam\":\"2001:0db8:0:0:0:0:1428:57ab\",\"orchestration-status\":\"Active\",\"equip-model\":\"val6\",\"in-maint\":false,\"model-version-id\":\"e80a6ae3-cafd-4d24-850d-e14c084a5ca9\",\"resource-version\":\"1578668956804\",\"sw-version\":\"val7\",\"pnf-id\":\"eabcfaf7-b7f3-45fb-94e7-e6112fb3e8b8\",\"pnf-name\":\"pnf_newly_discovered\",\"model-invariant-id\":\"7129e420-d396-4efb-af02-6b83499b12f8\"}}"
            ]
         }
      }
   },
   {
      "id":"pmsh_cl_input_event",
      "httpRequest":{
         "path":"/events/unauthenticated.PMSH_CL_INPUT/.*",
         "method":"GET",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{

         }
      }
   },
   {
      "id":"dcae_cl_output_event",
      "httpRequest":{
         "path":"/events/unauthenticated.DCAE_CL_OUTPUT/.*",
         "method":"POST"
      },
      "httpResponse":{
         "statusCode":200
      }
   }
] 
 </msg>
<msg time="2026-10-26T06:20:25.675298" level="INFO">PUT Response : url=http://172.17.0.4:3904/expectation 
 status=201, reason=Created 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/expectation" is deprecated use "/mockserver/expectation" instead', 'connection': 'keep-alive', 'content-type': 'application/json; charset=utf-8', 'content-length': '2976'} 
 body=[ {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/AAI-EVENT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : [ "{\"cambria.partition\":\"AAI\",\"event-header\":{\"severity\":\"NORMAL\",\"entity-type\":\"pnf\",\"top-entity-type\":\"pnf\",\"entity-link\":\"/aai/v21/network/pnfs/pnf/pnf_newly_discovered\",\"event-type\":\"AAI-EVENT\",\"domain\":\"dev\",\"action\":\"DELETE\",\"sequence-number\":\"0\",\"id\":\"db09e090-196e-4f84-9645-e449b1cd3640\",\"source-name\":\"dcae-curl\",\"version\":\"v21\",\"timestamp\":\"20200203-15:14:08:807\"},\"entity\":{\"ipaddress-v4-oam\":\"10.10.10.37\",\"nf-role\":\"gNB\",\"equip-type\":\"val8\",\"relationship-list\":{\"relationship\":[{\"related-to\":\"service-instance\",\"relationship-data\":[{\"relationship-value\":\"Demonstration\",\"relationship-key\":\"customer.global-customer-id\"},{\"relationship-value\":\"vCPE\",\"relationship-key\":\"service-subscription.service-type\"},{\"relationship-value\":\"2c03b2a8-e31a-4749-9e99-3089ab441400\",\"relationship-key\":\"service-instance.service-instance-id\"}],\"related-link\":\"/aai/v16/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/2c03b2a8-e31a-4749-9e99-3089ab441400\",\"relationship-label\":\"org.onap.relationships.inventory.ComposedOf\",\"related-to-property\":[{\"property-key\":\"service-instance.service-instance-name\",\"property-value\":\"Svc6_1\"}]}]},\"equip-vendor\":\"Ericsson\",\"serial-number\":\"6061ZW3\",\"ipaddress-v6-oam\":\"2001:0db8:0:0:0:0:1428:57ab\",\"orchestration-status\":\"Active\",\"equip-model\":\"val6\",\"in-maint\":false,\"model-version-id\":\"e80a6ae3-cafd-4d24-850d-e14c084a5ca9\",\"resource-version\":\"1578668956804\",\"sw-version\":\"val7\",\"pnf-id\":\"eabcfaf7-b7f3-45fb-94e7-e6112fb3e8b8\",\"pnf-name\":\"pnf_newly_discovered\",\"model-invariant-id\":\"7129e420-d396-4efb-af02-6b83499b12f8\"}}" ]
  },
  "id" : "mr_aai_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/unauthenticated.PMSH_CL_INPUT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "pmsh_cl_input_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "POST",
    "path" : "/events/unauthenticated.DCAE_CL_OUTPUT/.*"
  },
  "httpResponse" : {
    "statusCode" : 200
  },
  "id" : "dcae_cl_output_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
} ] 
 </msg>
<msg time="2026-10-26T06:20:25.675945" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/expectation</arg>
<arg>data=${data}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:25.658176" elapsed="0.017849"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:25.676459" elapsed="0.001541"/>
</kw>
<status status="PASS" start="2026-10-26T06:20:23.636756" elapsed="2.041426"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.679579" level="INFO">Slept 21 seconds.</msg>
<msg time="2026-10-26T06:20:46.679694" level="INFO">Ensure AAI event on MR is picked up</msg>
<arg>21 seconds</arg>
<arg>Ensure AAI event on MR is picked up</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-26T06:20:25.678485" elapsed="21.001525"/>
</kw>
<kw name="ResetMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:20:46.682944" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/mr-sim-reset.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/mr-sim-reset.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:20:46.683351" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${file}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:20:46.682413" elapsed="0.001010"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-26T06:20:46.683580" elapsed="0.000095"/>
</return>
<msg time="2026-10-26T06:20:46.683980" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${MR_SIM_RESET}</arg>
<status status="PASS" start="2026-10-26T06:20:46.681574" elapsed="0.002476"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.684946" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.4:3904, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>mr_sim_session</arg>
<arg>${MR_SIM_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:46.684406" elapsed="0.001005"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.698644" level="INFO">PUT Request : url=http://172.17.0.4:3904/reset 
 path_url=/reset 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:46.698775" level="INFO">PUT Response : url=http://172.17.0.4:3904/reset 
 status=200, reason=OK 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/reset" is deprecated use "/mockserver/reset" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:46.699183" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/reset</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:46.685780" elapsed="0.013478"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:46.699768" elapsed="0.001749"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.715655" level="INFO">PUT Request : url=http://172.17.0.4:3904/expectation 
 path_url=/expectation 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '1249'} 
 body=[
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{

            }
         }
      }
   },
   {
      "id":"pmsh_cl_input_event",
      "httpRequest":{
         "path":"/events/unauthenticated.PMSH_CL_INPUT/.*",
         "method":"GET",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{

            }
         }
      }
   },
   {
      "id":"dcae_cl_output_event",
      "httpRequest":{
         "path":"/events/unauthenticated.DCAE_CL_OUTPUT/.*",
         "method":"POST"
      },
      "httpResponse":{
         "statusCode":200
      }
   }
] 
 </msg>
<msg time="2026-10-26T06:20:46.715839" level="INFO">PUT Response : url=http://172.17.0.4:3904/expectation 
 status=201, reason=Created 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/expectation" is deprecated use "/mockserver/expectation" instead', 'connection': 'keep-alive', 'content-type': 'application/json; charset=utf-8', 'content-length': '1177'} 
 body=[ {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/AAI-EVENT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "mr_aai_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/unauthenticated.PMSH_CL_INPUT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "pmsh_cl_input_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "POST",
    "path" : "/events/unauthenticated.DCAE_CL_OUTPUT/.*"
  },
  "httpResponse" : {
    "statusCode" : 200
  },
  "id" : "dcae_cl_output_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
} ] 
 </msg>
<msg time="2026-10-26T06:20:46.716440" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/expectation</arg>
<arg>data=${data}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:46.701874" elapsed="0.014678"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:46.717087" elapsed="0.001688"/>
</kw>
<status status="PASS" start="2026-10-26T06:20:46.680643" elapsed="0.038319"/>
</kw>
<kw name="GetMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.720902" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:46.720340" elapsed="0.001011"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.750450" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:46.750578" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '729', 'Server': 'TornadoServer/6.1'} 
 body={
  "administrativeState": "UNLOCKED",
  "fileBasedGP": 15,
  "fileLocation": "pm.xml",
  "managedObjectDNsBasic": [
    {
      "DN": "string"
    }
  ],
  "measurementGroupName": "msg_grp_01",
  "measurementTypes": [
    {
      "measurementType": "counter_a"
    }
  ],
  "networkFunctions": [
    {
      "ipv4Address": "10.10.10.32",
      "ipv6Address": "2001:0db8:0:0:0:0:1428:57ab",
      "modelInvariantId": "7129e420-d396-4efb-af02-6b83499b12f8",
      "modelName": "PNF102",
      "modelVersionId": "77c1a3d9-422a-4f78-bd8f-f7a357685b25",
      "nfMgStatus": "CREATED",
      "nfName": "pnf-existing",
      "sdncModelName": "pm_control",
      "sdncModelVersion": "1.0.0"
    }
  ],
  "subscriptionName": "subs_01"
}
 
 </msg>
<msg time="2026-10-26T06:20:46.750821" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:46.751535" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:46.721716" elapsed="0.029895"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:46.751762" elapsed="0.000098"/>
</return>
<msg time="2026-10-26T06:20:46.752177" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01</arg>
<status status="PASS" start="2026-10-26T06:20:46.719399" elapsed="0.032847"/>
</kw>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>pnf_newly_discovered</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="PASS" start="2026-10-26T06:20:46.752634" elapsed="0.001204"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:46.754811" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:46.754598" elapsed="0.000533"/>
</kw>
<doc>Verify PNF deleted AAI event on MR is handled</doc>
<tag>PMSH_06</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:23.635194" elapsed="23.120118"/>
</test>
<test id="s1-s1-t8" name="Verify Create Subscription API for duplicate subscription Id" line="103">
<kw name="json_from_file" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:20:46.759093" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_request.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_request.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:20:46.759477" level="INFO">${json_file} = {
  "subscription": {
    "subscriptionName": "subs_01",
    "operationalPolicyName":"pmsh-operational-policy",
    "controlLoopName":"pmsh-control-loop",
    "nfFilter": {
      "nfNames": [
        ...</msg>
<var>${json_file}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:20:46.758637" elapsed="0.000929"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.761173" level="INFO">${json_object} = {'subscription': {'subscriptionName': 'subs_01', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': ['^pnf.*', '^vnf.*'], 'modelInvaria...</msg>
<var>${json_object}</var>
<arg>json.loads('''${json_file}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:20:46.759922" elapsed="0.001328"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-26T06:20:46.761417" elapsed="0.000090"/>
</return>
<msg time="2026-10-26T06:20:46.761842" level="INFO">${json_value} = {'subscription': {'subscriptionName': 'subs_01', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': ['^pnf.*', '^vnf.*'], 'modelInvaria...</msg>
<var>${json_value}</var>
<arg>${CREATE_SUBSCRIPTION_DATA}</arg>
<status status="PASS" start="2026-10-26T06:20:46.757776" elapsed="0.004136"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.763732" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:46.763209" elapsed="0.000922"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.765469" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:20:46.764545" elapsed="0.001019"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.790980" level="INFO">POST Request : url=https://172.17.0.5:8443/subscription 
 path_url=/subscription 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '761'} 
 body=b'{"subscription": {"subscriptionName": "subs_01", "operationalPolicyName": "pmsh-operational-policy", "controlLoopName": "pmsh-control-loop", "nfFilter": {"nfNames": ["^pnf.*", "^vnf.*"], "modelInvariantIDs": [], "modelVersionIDs": [], "modelNames": []}, "measurementGroups": [{"measurementGroup": {"measurementGroupName": "msg_grp_01", "fileBasedGP": 15, "fileLocation": "pm.xml", "administrativeState": "UNLOCKED", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}, {"measurementGroup": {"measurementGroupName": "msg_grp_02", "fileBasedGP": 15, "fileLocation": "pm.xml", "administrativeState": "LOCKED", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}]}}' 
 </msg>
<msg time="2026-10-26T06:20:46.791073" level="INFO">POST Response : url=https://172.17.0.5:8443/subscription 
 status=409, reason=CONFLICT 
 headers={'Content-Type': 'application/json', 'Content-Length': '45', 'Server': 'TornadoServer/6.1'} 
 body="subscription Name: subs_01 already exists."
 
 </msg>
<msg time="2026-10-26T06:20:46.791279" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:46.791729" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:46.765894" elapsed="0.025914"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:46.791975" elapsed="0.000074"/>
</return>
<msg time="2026-10-26T06:20:46.792345" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>${json_value}</arg>
<status status="PASS" start="2026-10-26T06:20:46.762298" elapsed="0.030115"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 409</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:46.792779" elapsed="0.001293"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.json()}</arg>
<arg>subscription Name: subs_01 already exists.</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:20:46.794411" elapsed="0.001056"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:46.796156" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:46.795958" elapsed="0.000331"/>
</kw>
<doc>Verify Create Subscription API for duplicate subscription Id</doc>
<tag>PMSH_08</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:46.756227" elapsed="0.040176"/>
</test>
<test id="s1-s1-t9" name="Verify Create Subscription API for schema error" line="112">
<kw name="json_from_file" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:20:46.799727" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_schema_error_request.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_schema_error_request.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:20:46.800113" level="INFO">${json_file} = {
  "subscription": {
    "subscriptionName": "subs_01",
    "operationalPolicyName":"pmsh-operational-policy",
    "controlLoopName":"pmsh-control-loop",
    "nfFilter": {
      "nfNames": [
        ...</msg>
<var>${json_file}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:20:46.799250" elapsed="0.000934"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.801804" level="INFO">${json_object} = {'subscription': {'subscriptionName': 'subs_01', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': ['^pnf.*', '^vnf.*'], 'modelInvaria...</msg>
<var>${json_object}</var>
<arg>json.loads('''${json_file}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:20:46.800578" elapsed="0.001360"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-26T06:20:46.802079" elapsed="0.000071"/>
</return>
<msg time="2026-10-26T06:20:46.802472" level="INFO">${json_value} = {'subscription': {'subscriptionName': 'subs_01', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': ['^pnf.*', '^vnf.*'], 'modelInvaria...</msg>
<var>${json_value}</var>
<arg>${CREATE_SUBSCRIPTION_SCHEMA_ERROR_DATA}</arg>
<status status="PASS" start="2026-10-26T06:20:46.798411" elapsed="0.004156"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.804742" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:46.803855" elapsed="0.001268"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.806451" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:20:46.805591" elapsed="0.000954"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.825971" level="INFO">POST Request : url=https://172.17.0.5:8443/subscription 
 path_url=/subscription 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '611'} 
 body=b'{"subscription": {"subscriptionName": "subs_01", "operationalPolicyName": "pmsh-operational-policy", "controlLoopName": "pmsh-control-loop", "nfFilter": {"nfNames": ["^pnf.*", "^vnf.*"], "modelInvariantIDs": ["8lk4578-d396-4efb-af02-6b83499b12f8", "687kj45-d396-4efb-af02-6b83499b12f8"], "modelVersionIDs": ["e80a6ae3-cafd-4d24-850d-e14c084a5ca9"], "modelNames": ["PNF102"]}, "measurementGroups": [{"measurementGroup": {"measurementGroupName": "msrmt_grp_name", "fileBasedGP": 15, "fileLocation": "pm.xml", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}]}}' 
 </msg>
<msg time="2026-10-26T06:20:46.827616" level="INFO">POST Response : url=https://172.17.0.5:8443/subscription 
 status=400, reason=BAD REQUEST 
 headers={'Content-Type': 'application/problem+json', 'Content-Length': '185', 'Server': 'TornadoServer/6.1'} 
 body={
  "detail": "'administrativeState' is a required property - 'subscription.measurementGroups.0.measurementGroup'",
  "status": 400,
  "title": "Bad Request",
  "type": "about:blank"
}
 
 </msg>
<msg time="2026-10-26T06:20:46.828044" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:46.828362" level="INFO">${resp} = &lt;Response [400]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:46.806878" elapsed="0.021559"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:46.828628" elapsed="0.000076"/>
</return>
<msg time="2026-10-26T06:20:46.829001" level="INFO">${resp} = &lt;Response [400]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>${json_value}</arg>
<status status="PASS" start="2026-10-26T06:20:46.802952" elapsed="0.026118"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 400</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:46.829445" elapsed="0.001283"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.json()['detail']}</arg>
<arg>'administrativeState' is a required property - 'subscription.measurementGroups.0.measurementGroup'</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:20:46.831068" elapsed="0.001091"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:46.832852" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:46.832652" elapsed="0.000333"/>
</kw>
<doc>Verify Create Subscription API</doc>
<tag>PMSH_09</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:46.797146" elapsed="0.035953"/>
</test>
<test id="s1-s1-t10" name="Verify Create Subscription API for filter values missing" line="121">
<kw name="json_from_file" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:20:46.836398" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_bad_request.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_subscription_bad_request.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:20:46.836785" level="INFO">${json_file} = {
  "subscription": {
    "subscriptionName": "subs_02",
    "operationalPolicyName":"pmsh-operational-policy",
    "controlLoopName":"pmsh-control-loop",
    "nfFilter": {
      "nfNames": [
      ],...</msg>
<var>${json_file}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:20:46.835951" elapsed="0.000905"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.838413" level="INFO">${json_object} = {'subscription': {'subscriptionName': 'subs_02', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': [], 'modelInvariantIDs': [], 'model...</msg>
<var>${json_object}</var>
<arg>json.loads('''${json_file}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:20:46.837208" elapsed="0.001305"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-26T06:20:46.838650" elapsed="0.000072"/>
</return>
<msg time="2026-10-26T06:20:46.839040" level="INFO">${json_value} = {'subscription': {'subscriptionName': 'subs_02', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': [], 'modelInvariantIDs': [], 'model...</msg>
<var>${json_value}</var>
<arg>${CREATE_SUBSCRIPTION_BAD_DATA}</arg>
<status status="PASS" start="2026-10-26T06:20:46.835145" elapsed="0.003966"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.840906" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:46.840393" elapsed="0.000990"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.842682" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:20:46.841800" elapsed="0.000955"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.866725" level="INFO">POST Request : url=https://172.17.0.5:8443/subscription 
 path_url=/subscription 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '506'} 
 body=b'{"subscription": {"subscriptionName": "subs_02", "operationalPolicyName": "pmsh-operational-policy", "controlLoopName": "pmsh-control-loop", "nfFilter": {"nfNames": [], "modelInvariantIDs": [], "modelVersionIDs": [], "modelNames": []}, "measurementGroups": [{"measurementGroup": {"measurementGroupName": "msrmt_grp_name", "fileBasedGP": 15, "fileLocation": "pm.xml", "administrativeState": "UNLOCKED", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}]}}' 
 </msg>
<msg time="2026-10-26T06:20:46.866817" level="INFO">POST Response : url=https://172.17.0.5:8443/subscription 
 status=400, reason=BAD REQUEST 
 headers={'Content-Type': 'application/json', 'Content-Length': '56', 'Server': 'TornadoServer/6.1'} 
 body="At least one filter within nfFilter must not be empty"
 
 </msg>
<msg time="2026-10-26T06:20:46.867021" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:46.867328" level="INFO">${resp} = &lt;Response [400]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:46.843086" elapsed="0.024317"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:46.867595" elapsed="0.000075"/>
</return>
<msg time="2026-10-26T06:20:46.867965" level="INFO">${resp} = &lt;Response [400]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>${json_value}</arg>
<status status="PASS" start="2026-10-26T06:20:46.839508" elapsed="0.028526"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 400</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:46.868374" elapsed="0.001296"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.json()}</arg>
<arg>At least one filter within nfFilter must not be empty</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:20:46.870007" elapsed="0.001044"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:46.871745" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:46.871539" elapsed="0.000337"/>
</kw>
<doc>Verify Create Subscription API</doc>
<tag>PMSH_10</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:46.833876" elapsed="0.038112"/>
</test>
<test id="s1-s1-t11" name="Verify Get Measurement Group with Network Functions" line="130">
<kw name="GetMeasGrpWithNFSCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.875839" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:46.874960" elapsed="0.001262"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.900834" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:46.900931" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '729', 'Server': 'TornadoServer/6.1'} 
 body={
  "administrativeState": "UNLOCKED",
  "fileBasedGP": 15,
  "fileLocation": "pm.xml",
  "managedObjectDNsBasic": [
    {
      "DN": "string"
    }
  ],
  "measurementGroupName": "msg_grp_01",
  "measurementTypes": [
    {
      "measurementType": "counter_a"
    }
  ],
  "networkFunctions": [
    {
      "ipv4Address": "10.10.10.32",
      "ipv6Address": "2001:0db8:0:0:0:0:1428:57ab",
      "modelInvariantId": "7129e420-d396-4efb-af02-6b83499b12f8",
      "modelName": "PNF102",
      "modelVersionId": "77c1a3d9-422a-4f78-bd8f-f7a357685b25",
      "nfMgStatus": "CREATED",
      "nfName": "pnf-existing",
      "sdncModelName": "pm_control",
      "sdncModelVersion": "1.0.0"
    }
  ],
  "subscriptionName": "subs_01"
}
 
 </msg>
<msg time="2026-10-26T06:20:46.901364" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:46.901711" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:46.876575" elapsed="0.025211"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:46.901927" elapsed="0.000076"/>
</return>
<msg time="2026-10-26T06:20:46.902298" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01</arg>
<status status="PASS" start="2026-10-26T06:20:46.874164" elapsed="0.028204"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.903965" level="INFO">Length is 1.</msg>
<msg time="2026-10-26T06:20:46.904222" level="INFO">${nf_length} = 1</msg>
<var>${nf_length}</var>
<arg>${resp.json()['networkFunctions']}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-26T06:20:46.902707" elapsed="0.001582"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:46.904663" elapsed="0.001260"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:46.906248" elapsed="0.001073"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['measurementGroupName']}</arg>
<arg>msg_grp_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:46.907726" elapsed="0.001069"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfName']}</arg>
<arg>pnf-existing</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:46.909122" elapsed="0.001122"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.911369" level="INFO">Argument types are:
&lt;class 'int'&gt;
&lt;class 'str'&gt;</msg>
<arg>${nf_length}</arg>
<arg>1</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="PASS" start="2026-10-26T06:20:46.910632" elapsed="0.000946"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:46.912235" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:46.912039" elapsed="0.000328"/>
</kw>
<doc>Verify Get Measurement Group with Network Functions by using MGName and SubName</doc>
<tag>PMSH_11</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:46.872722" elapsed="0.039759"/>
</test>
<test id="s1-s1-t12" name="Verify Get single subscription with Network Functions" line="142">
<kw name="GetSubsCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.916183" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:46.915692" elapsed="0.000894"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.951861" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01 
 path_url=/subscription/subs_01 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '26'} 
 body={"path": {url_path_param}} 
 </msg>
<msg time="2026-10-26T06:20:46.951955" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '1283', 'Server': 'TornadoServer/6.1'} 
 body={
  "subscription": {
    "controlLoopName": "pmsh-control-loop",
    "measurementGroups": [
      {
        "measurementGroup": {
          "administrativeState": "LOCKED",
          "fileBasedGP": 15,
          "fileLocation": "pm.xml",
          "managedObjectDNsBasic": [
            {
              "DN": "string"
            }
          ],
          "measurementGroupName": "msg_grp_02",
          "measurementTypes": [
            {
              "measurementType": "counter_a"
            }
          ]
        }
      },
      {
        "measurementGroup": {
          "administrativeState": "UNLOCKED",
          "fileBasedGP": 15,
          "fileLocation": "pm.xml",
          "managedObjectDNsBasic": [
            {
              "DN": "string"
            }
          ],
          "measurementGroupName": "msg_grp_01",
          "measurementTypes": [
            {
              "measurementType": "counter_a"
            }
          ]
        }
      }
    ],
    "nfFilter": {
      "modelInvariantIDs": [],
      "modelNames": [],
      "modelVersionIDs": [],
      "nfNames": [
        "^pnf.*",
        "^vnf.*"
      ]
    },
    "nfs": [
      "pnf-existing"
    ],
    "operationalPolicyName": "pmsh-operational-policy",
    "subscriptionName": "subs_01"
  }
}
 
 </msg>
<msg time="2026-10-26T06:20:46.952170" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:46.952574" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<arg>data={"path": {url_path_param}}</arg>
<arg>expected_status=any</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:46.916914" elapsed="0.035736"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:46.952808" elapsed="0.000076"/>
</return>
<msg time="2026-10-26T06:20:46.953177" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}/subs_01</arg>
<arg>""</arg>
<status status="PASS" start="2026-10-26T06:20:46.914787" elapsed="0.038459"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.954739" level="INFO">Length is 1.</msg>
<msg time="2026-10-26T06:20:46.954993" level="INFO">${nf_length} = 1</msg>
<var>${nf_length}</var>
<arg>${resp.json()['subscription']['nfs']}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-26T06:20:46.953649" elapsed="0.001411"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:46.955402" elapsed="0.001241"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscription']['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:46.956962" elapsed="0.001126"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscription']['nfs'][0]}</arg>
<arg>pnf-existing</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:46.958414" elapsed="0.001087"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscription']['measurementGroups'][0]['measurementGroup']['measurementGroupName']}</arg>
<arg>msg_grp_02</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:46.959831" elapsed="0.001096"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-26T06:20:46.962076" level="INFO">Argument types are:
&lt;class 'int'&gt;
&lt;class 'str'&gt;</msg>
<arg>${nf_length}</arg>
<arg>1</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="PASS" start="2026-10-26T06:20:46.961288" elapsed="0.000970"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:46.962932" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:46.962737" elapsed="0.000327"/>
</kw>
<doc>Verify Get single subscription with Network Functions by using subscription name</doc>
<tag>PMSH_12</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:46.913226" elapsed="0.049951"/>
</test>
<test id="s1-s1-t13" name="Verify Get single subscription with Network Functions None" line="154">
<kw name="GetSubsCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.967202" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:46.966709" elapsed="0.000889"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:46.993026" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/sub_none 
 path_url=/subscription/sub_none 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '26'} 
 body={"path": {url_path_param}} 
 </msg>
<msg time="2026-10-26T06:20:46.993116" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/sub_none 
 status=404, reason=NOT FOUND 
 headers={'Content-Type': 'application/json', 'Content-Length': '71', 'Server': 'TornadoServer/6.1'} 
 body={
  "error": "Subscription was not defined with the name : sub_none"
}
 
 </msg>
<msg time="2026-10-26T06:20:46.993562" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:46.993877" level="INFO">${resp} = &lt;Response [404]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<arg>data={"path": {url_path_param}}</arg>
<arg>expected_status=any</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:46.967981" elapsed="0.025970"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:46.994108" elapsed="0.000075"/>
</return>
<msg time="2026-10-26T06:20:46.994473" level="INFO">${resp} = &lt;Response [404]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}/sub_none</arg>
<arg>""</arg>
<status status="PASS" start="2026-10-26T06:20:46.965796" elapsed="0.028766"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 404</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:46.994902" elapsed="0.001240"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['error']}</arg>
<arg>Subscription was not defined with the name : sub_none</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:46.996462" elapsed="0.001090"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:46.998214" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:46.998019" elapsed="0.000329"/>
</kw>
<doc>Verify Get single subscription with Network Functions when there is no defined subscription</doc>
<tag>PMSH_13</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:46.963914" elapsed="0.034548"/>
</test>
<test id="s1-s1-t14" name="Verify Update Measurement Group admin status from Unlocked to Locking" line="162">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-26T06:20:47.001161" level="INFO">${json_string} = {"administrativeState": "LOCKED"}</msg>
<var>${json_string}</var>
<arg>{"administrativeState": "LOCKED"}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-26T06:20:47.000291" elapsed="0.000944"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:20:47.002740" level="INFO">${json} = {'administrativeState': 'LOCKED'}</msg>
<var>${json}</var>
<arg>json.loads('''${json_string}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:20:47.001645" elapsed="0.001167"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:47.004588" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:47.004080" elapsed="0.000892"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:20:47.006255" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:20:47.005379" elapsed="0.000949"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:47.078923" level="INFO">PUT Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '33'} 
 body=b'{"administrativeState": "LOCKED"}' 
 </msg>
<msg time="2026-10-26T06:20:47.079070" level="INFO">PUT Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '35', 'Server': 'TornadoServer/6.1'} 
 body="Successfully updated admin state"
 
 </msg>
<msg time="2026-10-26T06:20:47.079357" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:47.079888" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:47.006677" elapsed="0.073294"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:47.080185" elapsed="0.000109"/>
</return>
<msg time="2026-10-26T06:20:47.080677" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01/adminState</arg>
<arg>${json}</arg>
<status status="PASS" start="2026-10-26T06:20:47.003223" elapsed="0.077525"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:47.081174" elapsed="0.001511"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.json()}</arg>
<arg>Successfully updated admin state</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:20:47.083023" elapsed="0.001077"/>
</kw>
<kw name="GetMeasGrpWithNFSCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:47.085907" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:47.085385" elapsed="0.001374"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:47.112358" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:47.112454" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '735', 'Server': 'TornadoServer/6.1'} 
 body={
  "administrativeState": "LOCKING",
  "fileBasedGP": 15,
  "fileLocation": "pm.xml",
  "managedObjectDNsBasic": [
    {
      "DN": "string"
    }
  ],
  "measurementGroupName": "msg_grp_01",
  "measurementTypes": [
    {
      "measurementType": "counter_a"
    }
  ],
  "networkFunctions": [
    {
      "ipv4Address": "10.10.10.32",
      "ipv6Address": "2001:0db8:0:0:0:0:1428:57ab",
      "modelInvariantId": "7129e420-d396-4efb-af02-6b83499b12f8",
      "modelName": "PNF102",
      "modelVersionId": "77c1a3d9-422a-4f78-bd8f-f7a357685b25",
      "nfMgStatus": "PENDING_DELETE",
      "nfName": "pnf-existing",
      "sdncModelName": "pm_control",
      "sdncModelVersion": "1.0.0"
    }
  ],
  "subscriptionName": "subs_01"
}
 
 </msg>
<msg time="2026-10-26T06:20:47.112753" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:47.113076" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:47.087091" elapsed="0.026060"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:47.113291" elapsed="0.000110"/>
</return>
<msg time="2026-10-26T06:20:47.113744" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01</arg>
<status status="PASS" start="2026-10-26T06:20:47.084554" elapsed="0.029261"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-26T06:20:47.115140" level="INFO">Length is 1.</msg>
<msg time="2026-10-26T06:20:47.115393" level="INFO">${nf_length} = 1</msg>
<var>${nf_length}</var>
<arg>${resp.json()['networkFunctions']}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-26T06:20:47.114128" elapsed="0.001331"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:47.115825" elapsed="0.001209"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:47.117384" elapsed="0.001087"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['measurementGroupName']}</arg>
<arg>msg_grp_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:47.118822" elapsed="0.001043"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['administrativeState']}</arg>
<arg>LOCKING</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:47.120189" elapsed="0.001040"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfName']}</arg>
<arg>pnf-existing</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:47.121610" elapsed="0.001061"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfMgStatus']}</arg>
<arg>PENDING_DELETE</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:20:47.122996" elapsed="0.001049"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-26T06:20:47.125150" level="INFO">Argument types are:
&lt;class 'int'&gt;
&lt;class 'str'&gt;</msg>
<arg>${nf_length}</arg>
<arg>1</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="PASS" start="2026-10-26T06:20:47.124406" elapsed="0.000962"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:47.126071" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:47.125875" elapsed="0.000548"/>
</kw>
<doc>Verify Update Measurement Group admin status from Unlocked to Locking</doc>
<tag>PMSH_14</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:46.999192" elapsed="0.127377"/>
</test>
<test id="s1-s1-t15" name="Verify Update Measurement Group admin status with locking in progress" line="181">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-26T06:20:47.129413" level="INFO">${json_string} = {"administrativeState": "LOCKED"}</msg>
<var>${json_string}</var>
<arg>{"administrativeState": "LOCKED"}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-26T06:20:47.128476" elapsed="0.001035"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:20:47.130982" level="INFO">${json} = {'administrativeState': 'LOCKED'}</msg>
<var>${json}</var>
<arg>json.loads('''${json_string}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:20:47.129881" elapsed="0.001173"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:47.132838" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:47.132336" elapsed="0.000884"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:20:47.134555" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:20:47.133660" elapsed="0.000969"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:47.156674" level="INFO">PUT Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '33'} 
 body=b'{"administrativeState": "LOCKED"}' 
 </msg>
<msg time="2026-10-26T06:20:47.156767" level="INFO">PUT Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 status=409, reason=CONFLICT 
 headers={'Content-Type': 'application/json', 'Content-Length': '117', 'Server': 'TornadoServer/6.1'} 
 body="Cannot update admin status as Locked request is in progress for sub name: subs_01  and meas group name: msg_grp_01"
 
 </msg>
<msg time="2026-10-26T06:20:47.156973" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:20:47.157365" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:47.134954" elapsed="0.022489"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:20:47.157637" elapsed="0.000078"/>
</return>
<msg time="2026-10-26T06:20:47.158009" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01/adminState</arg>
<arg>${json}</arg>
<status status="PASS" start="2026-10-26T06:20:47.131462" elapsed="0.026616"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 409</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:47.158416" elapsed="0.001265"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.json()}</arg>
<arg>Cannot update admin status as Locked request is in progress for sub name: subs_01</arg>
<arg>and meas group name: msg_grp_01</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:20:47.160017" elapsed="0.001110"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:20:47.161855" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:20:47.161656" elapsed="0.000332"/>
</kw>
<doc>Verify Update Measurement Group admin status with locking in progress</doc>
<tag>PMSH_15</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:47.127335" elapsed="0.034767"/>
</test>
<test id="s1-s1-t16" name="Verify Measurement Group admin status update from Locking to Locked" line="191">
<kw name="AddDeletePolicyResponeToMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:20:47.166734" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/policy-sub-deleted-pnf-existing.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/policy-sub-deleted-pnf-existing.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:20:47.167136" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${file}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:20:47.165905" elapsed="0.001303"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-26T06:20:47.167337" elapsed="0.000070"/>
</return>
<msg time="2026-10-26T06:20:47.167728" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${MR_POLICY_RESPONSE_PNF_DELETED}</arg>
<status status="PASS" start="2026-10-26T06:20:47.165086" elapsed="0.002711"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:47.168662" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.4:3904, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>mr_sim_session</arg>
<arg>${MR_SIM_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:20:47.168143" elapsed="0.000889"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:47.182233" level="INFO">PUT Request : url=http://172.17.0.4:3904/clear 
 path_url=/clear 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '30'} 
 body={"id" : "pmsh_cl_input_event"} 
 </msg>
<msg time="2026-10-26T06:20:47.182335" level="INFO">PUT Response : url=http://172.17.0.4:3904/clear 
 status=200, reason=OK 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/clear" is deprecated use "/mockserver/clear" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:20:47.182894" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/clear</arg>
<arg>data={"id" : "pmsh_cl_input_event"}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:47.169390" elapsed="0.013574"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:47.183330" elapsed="0.001255"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-26T06:20:49.185930" level="INFO">Slept 2 seconds.</msg>
<msg time="2026-10-26T06:20:49.186048" level="INFO">Allow MR_SIM time to set expectation</msg>
<arg>2</arg>
<arg>Allow MR_SIM time to set expectation</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-26T06:20:47.184905" elapsed="2.001484"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:20:49.203604" level="INFO">PUT Request : url=http://172.17.0.4:3904/expectation 
 path_url=/expectation 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '1590'} 
 body=[
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{
               
            }
         }
      }
   },
   {
      "id":"pmsh_cl_input_event",
      "httpRequest":{
         "path":"/events/unauthenticated.PMSH_CL_INPUT/.*",
         "method":"GET",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":[
               "{\"name\":\"ResponseEvent\",\"nameSpace\":\"org.onap.policy.apex.onap.pmcontrol\",\"source\":\"APEX\",\"target\":\"DCAE\",\"version\":\"0.0.1\",\"status\":{\"subscriptionName\":\"subs_01\",\"measurementGroupName\": \"msg_grp_01\",\"nfName\":\"pnf-existing\",\"changeType\":\"DELETE\",\"message\":\"success\"}}"
            ]
         }
      }
   },
   {
      "id":"dcae_cl_output_event",
      "httpRequest":{
         "path":"/events/unauthenticated.DCAE_CL_OUTPUT/.*",
         "method":"POST"
      },
      "httpResponse":{
         "statusCode":200
      }
   }
] 
 </msg>
<msg time="2026-10-26T06:20:49.203729" level="INFO">PUT Response : url=http://172.17.0.4:3904/expectation 
 status=201, reason=Created 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/expectation" is deprecated use "/mockserver/expectation" instead', 'connection': 'keep-alive', 'content-type': 'application/json; charset=utf-8', 'content-length': '1489'} 
 body=[ {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/AAI-EVENT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "mr_aai_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/unauthenticated.PMSH_CL_INPUT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : [ "{\"name\":\"ResponseEvent\",\"nameSpace\":\"org.onap.policy.apex.onap.pmcontrol\",\"source\":\"APEX\",\"target\":\"DCAE\",\"version\":\"0.0.1\",\"status\":{\"subscriptionName\":\"subs_01\",\"measurementGroupName\": \"msg_grp_01\",\"nfName\":\"pnf-existing\",\"changeType\":\"DELETE\",\"message\":\"success\"}}" ]
  },
  "id" : "pmsh_cl_input_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "POST",
    "path" : "/events/unauthenticated.DCAE_CL_OUTPUT/.*"
  },
  "httpResponse" : {
    "statusCode" : 200
  },
  "id" : "dcae_cl_output_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
} ] 
 </msg>
<msg time="2026-10-26T06:20:49.204231" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/expectation</arg>
<arg>data=${data}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:20:49.186966" elapsed="0.017341"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:20:49.204726" elapsed="0.001543"/>
</kw>
<status status="PASS" start="2026-10-26T06:20:47.164340" elapsed="2.042107"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.207879" level="INFO">Slept 31 seconds.</msg>
<msg time="2026-10-26T06:21:20.207985" level="INFO">Ensure Policy response on MR is picked up</msg>
<arg>31 seconds</arg>
<arg>Ensure Policy response on MR is picked up</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-26T06:20:49.206766" elapsed="31.001554"/>
</kw>
<kw name="ResetMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:21:20.211196" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/mr-sim-reset.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/mr-sim-reset.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:21:20.211602" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${file}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:21:20.210683" elapsed="0.000992"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-26T06:21:20.211809" elapsed="0.000092"/>
</return>
<msg time="2026-10-26T06:21:20.212227" level="INFO">${data} = [
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000...</msg>
<var>${data}</var>
<arg>${MR_SIM_RESET}</arg>
<status status="PASS" start="2026-10-26T06:21:20.209829" elapsed="0.002466"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.213182" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.4:3904, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>mr_sim_session</arg>
<arg>${MR_SIM_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.212645" elapsed="0.001006"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.226845" level="INFO">PUT Request : url=http://172.17.0.4:3904/reset 
 path_url=/reset 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:20.226950" level="INFO">PUT Response : url=http://172.17.0.4:3904/reset 
 status=200, reason=OK 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/reset" is deprecated use "/mockserver/reset" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:20.227361" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/reset</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.213982" elapsed="0.013450"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:20.227789" elapsed="0.001404"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.241678" level="INFO">PUT Request : url=http://172.17.0.4:3904/expectation 
 path_url=/expectation 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '1249'} 
 body=[
   {
      "id":"mr_aai_event",
      "httpRequest":{
         "method":"GET",
         "path":"/events/AAI-EVENT/.*",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{

            }
         }
      }
   },
   {
      "id":"pmsh_cl_input_event",
      "httpRequest":{
         "path":"/events/unauthenticated.PMSH_CL_INPUT/.*",
         "method":"GET",
         "queryStringParameters":{
            "timeout":[
               "5000"
            ]
         }
      },
      "httpResponse":{
         "statusCode":200,
         "headers":{
            "content-type":[
               "application/json"
            ]
         },
         "body":{
            "type":"JSON",
            "json":{

            }
         }
      }
   },
   {
      "id":"dcae_cl_output_event",
      "httpRequest":{
         "path":"/events/unauthenticated.DCAE_CL_OUTPUT/.*",
         "method":"POST"
      },
      "httpResponse":{
         "statusCode":200
      }
   }
] 
 </msg>
<msg time="2026-10-26T06:21:20.241792" level="INFO">PUT Response : url=http://172.17.0.4:3904/expectation 
 status=201, reason=Created 
 headers={'access-control-allow-origin': '*', 'access-control-allow-credentials': 'false', 'access-control-allow-methods': 'CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH, TRACE', 'access-control-allow-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-expose-headers': 'Allow, Content-Encoding, Content-Length, Content-Type, ETag, Expires, Last-Modified, Location, Server, Vary, Authorization', 'access-control-max-age': '0', 'version': '9.1.0', 'deprecated': '"/expectation" is deprecated use "/mockserver/expectation" instead', 'connection': 'keep-alive', 'content-type': 'application/json; charset=utf-8', 'content-length': '1177'} 
 body=[ {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/AAI-EVENT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "mr_aai_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "GET",
    "path" : "/events/unauthenticated.PMSH_CL_INPUT/.*",
    "queryStringParameters" : {
      "timeout" : [ "5000" ]
    }
  },
  "httpResponse" : {
    "statusCode" : 200,
    "headers" : {
      "content-type" : [ "application/json" ]
    },
    "body" : { }
  },
  "id" : "pmsh_cl_input_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
}, {
  "httpRequest" : {
    "method" : "POST",
    "path" : "/events/unauthenticated.DCAE_CL_OUTPUT/.*"
  },
  "httpResponse" : {
    "statusCode" : 200
  },
  "id" : "dcae_cl_output_event",
  "priority" : 0,
  "timeToLive" : {
    "unlimited" : true
  },
  "times" : {
    "unlimited" : true
  }
} ] 
 </msg>
<msg time="2026-10-26T06:21:20.242179" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>mr_sim_session</arg>
<arg>url=/expectation</arg>
<arg>data=${data}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.229558" elapsed="0.012694"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:20.242620" elapsed="0.001266"/>
</kw>
<status status="PASS" start="2026-10-26T06:21:20.208923" elapsed="0.035149"/>
</kw>
<kw name="GetMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.246065" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.245223" elapsed="0.001238"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.270479" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:20.270599" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '331', 'Server': 'TornadoServer/6.1'} 
 body={
  "administrativeState": "LOCKED",
  "fileBasedGP": 15,
  "fileLocation": "pm.xml",
  "managedObjectDNsBasic": [
    {
      "DN": "string"
    }
  ],
  "measurementGroupName": "msg_grp_01",
  "measurementTypes": [
    {
      "measurementType": "counter_a"
    }
  ],
  "networkFunctions": [],
  "subscriptionName": "subs_01"
}
 
 </msg>
<msg time="2026-10-26T06:21:20.270863" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:20.271349" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.246796" elapsed="0.024642"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:20.271606" elapsed="0.000097"/>
</return>
<msg time="2026-10-26T06:21:20.272056" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01</arg>
<status status="PASS" start="2026-10-26T06:21:20.244437" elapsed="0.027691"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['measurementGroupName']}</arg>
<arg>msg_grp_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.272542" elapsed="0.001285"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.274188" elapsed="0.001568"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['administrativeState']}</arg>
<arg>LOCKED</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.276116" elapsed="0.001061"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.278519" level="INFO">Length is 0.</msg>
<msg time="2026-10-26T06:21:20.278774" level="INFO">${nf_length} = 0</msg>
<var>${nf_length}</var>
<arg>${resp.json()['networkFunctions']}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-26T06:21:20.277546" elapsed="0.001295"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.279967" level="INFO">Argument types are:
&lt;class 'int'&gt;
&lt;class 'str'&gt;</msg>
<arg>${nf_length}</arg>
<arg>0</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="PASS" start="2026-10-26T06:21:20.279228" elapsed="0.000946"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:20.280853" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:20.280657" elapsed="0.000539"/>
</kw>
<doc>Verify Measurement Group admin status update from Locking to Locked</doc>
<tag>PMSH_16</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:20:47.162832" elapsed="33.118517"/>
</test>
<test id="s1-s1-t17" name="Verify Update Measurement Group admin status to unlocked" line="205">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.284329" level="INFO">${json_string} = {"administrativeState": "UNLOCKED"}</msg>
<var>${json_string}</var>
<arg>{"administrativeState": "UNLOCKED"}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-26T06:21:20.283456" elapsed="0.000947"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.286143" level="INFO">${json} = {'administrativeState': 'UNLOCKED'}</msg>
<var>${json}</var>
<arg>json.loads('''${json_string}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:21:20.284942" elapsed="0.001274"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.288043" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.287532" elapsed="0.000919"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.289776" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:21:20.288840" elapsed="0.001009"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.428395" level="INFO">PUT Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '35'} 
 body=b'{"administrativeState": "UNLOCKED"}' 
 </msg>
<msg time="2026-10-26T06:21:20.428528" level="INFO">PUT Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '35', 'Server': 'TornadoServer/6.1'} 
 body="Successfully updated admin state"
 
 </msg>
<msg time="2026-10-26T06:21:20.428791" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:20.429136" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.290199" elapsed="0.139016"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:20.429610" elapsed="0.000113"/>
</return>
<msg time="2026-10-26T06:21:20.430113" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01/adminState</arg>
<arg>${json}</arg>
<status status="PASS" start="2026-10-26T06:21:20.286647" elapsed="0.143538"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:20.430627" elapsed="0.001483"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.json()}</arg>
<arg>Successfully updated admin state</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:21:20.432456" elapsed="0.001147"/>
</kw>
<kw name="GetMeasGrpWithNFSCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.435393" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.434863" elapsed="0.000947"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.460444" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:20.460544" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '736', 'Server': 'TornadoServer/6.1'} 
 body={
  "administrativeState": "UNLOCKED",
  "fileBasedGP": 15,
  "fileLocation": "pm.xml",
  "managedObjectDNsBasic": [
    {
      "DN": "string"
    }
  ],
  "measurementGroupName": "msg_grp_01",
  "measurementTypes": [
    {
      "measurementType": "counter_a"
    }
  ],
  "networkFunctions": [
    {
      "ipv4Address": "10.10.10.32",
      "ipv6Address": "2001:0db8:0:0:0:0:1428:57ab",
      "modelInvariantId": "7129e420-d396-4efb-af02-6b83499b12f8",
      "modelName": "PNF102",
      "modelVersionId": "77c1a3d9-422a-4f78-bd8f-f7a357685b25",
      "nfMgStatus": "PENDING_CREATE",
      "nfName": "pnf-existing",
      "sdncModelName": "pm_control",
      "sdncModelVersion": "1.0.0"
    }
  ],
  "subscriptionName": "subs_01"
}
 
 </msg>
<msg time="2026-10-26T06:21:20.460832" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:20.461129" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.436169" elapsed="0.025035"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:20.461384" elapsed="0.000086"/>
</return>
<msg time="2026-10-26T06:21:20.461779" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01</arg>
<status status="PASS" start="2026-10-26T06:21:20.434057" elapsed="0.027792"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.463241" level="INFO">Length is 1.</msg>
<msg time="2026-10-26T06:21:20.463511" level="INFO">${nf_length} = 1</msg>
<var>${nf_length}</var>
<arg>${resp.json()['networkFunctions']}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-26T06:21:20.462202" elapsed="0.001378"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:20.463927" elapsed="0.004865"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.469150" elapsed="0.001194"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['measurementGroupName']}</arg>
<arg>msg_grp_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.470678" elapsed="0.001075"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['administrativeState']}</arg>
<arg>UNLOCKED</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.472112" elapsed="0.001065"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfName']}</arg>
<arg>pnf-existing</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.473533" elapsed="0.001259"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfMgStatus']}</arg>
<arg>PENDING_CREATE</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.475150" elapsed="0.001221"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.477586" level="INFO">Argument types are:
&lt;class 'int'&gt;
&lt;class 'str'&gt;</msg>
<arg>${nf_length}</arg>
<arg>1</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="PASS" start="2026-10-26T06:21:20.476745" elapsed="0.001032"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:20.478345" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:20.478222" elapsed="0.000335"/>
</kw>
<doc>Verify Update Measurement Group admin status to unlocked with no Network Functions in Subscription</doc>
<tag>PMSH_17</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:20.282005" elapsed="0.196630"/>
</test>
<test id="s1-s1-t18" name="Verify Update Measurement Group admin status from Locked to Unlocked with Network function present in subscription" line="224">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.480448" level="INFO">${json_string} = {"administrativeState": "UNLOCKED"}</msg>
<var>${json_string}</var>
<arg>{"administrativeState": "UNLOCKED"}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-26T06:21:20.479901" elapsed="0.000592"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.481601" level="INFO">${json} = {'administrativeState': 'UNLOCKED'}</msg>
<var>${json}</var>
<arg>json.loads('''${json_string}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:21:20.480714" elapsed="0.000932"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.482778" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.482473" elapsed="0.000569"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.483825" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:21:20.483284" elapsed="0.000585"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.620466" level="INFO">PUT Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_02/adminState 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_02/adminState 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '35'} 
 body=b'{"administrativeState": "UNLOCKED"}' 
 </msg>
<msg time="2026-10-26T06:21:20.620599" level="INFO">PUT Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_02/adminState 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '35', 'Server': 'TornadoServer/6.1'} 
 body="Successfully updated admin state"
 
 </msg>
<msg time="2026-10-26T06:21:20.620863" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:20.621211" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.484085" elapsed="0.137309"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:20.621611" elapsed="0.000103"/>
</return>
<msg time="2026-10-26T06:21:20.622115" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_02/adminState</arg>
<arg>${json}</arg>
<status status="PASS" start="2026-10-26T06:21:20.481918" elapsed="0.140269"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:20.622588" elapsed="0.001465"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.json()}</arg>
<arg>Successfully updated admin state</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:21:20.624436" elapsed="0.001160"/>
</kw>
<kw name="GetMeasGrpWithNFSCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.627368" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.626840" elapsed="0.000933"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.655436" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_02 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_02 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:20.655536" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_02 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '736', 'Server': 'TornadoServer/6.1'} 
 body={
  "administrativeState": "UNLOCKED",
  "fileBasedGP": 15,
  "fileLocation": "pm.xml",
  "managedObjectDNsBasic": [
    {
      "DN": "string"
    }
  ],
  "measurementGroupName": "msg_grp_02",
  "measurementTypes": [
    {
      "measurementType": "counter_a"
    }
  ],
  "networkFunctions": [
    {
      "ipv4Address": "10.10.10.32",
      "ipv6Address": "2001:0db8:0:0:0:0:1428:57ab",
      "modelInvariantId": "7129e420-d396-4efb-af02-6b83499b12f8",
      "modelName": "PNF102",
      "modelVersionId": "77c1a3d9-422a-4f78-bd8f-f7a357685b25",
      "nfMgStatus": "PENDING_CREATE",
      "nfName": "pnf-existing",
      "sdncModelName": "pm_control",
      "sdncModelVersion": "1.0.0"
    }
  ],
  "subscriptionName": "subs_01"
}
 
 </msg>
<msg time="2026-10-26T06:21:20.655752" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:20.656000" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.628134" elapsed="0.027960"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:20.656241" elapsed="0.000082"/>
</return>
<msg time="2026-10-26T06:21:20.656629" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_02</arg>
<status status="PASS" start="2026-10-26T06:21:20.626045" elapsed="0.030653"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.658129" level="INFO">Length is 1.</msg>
<msg time="2026-10-26T06:21:20.658391" level="INFO">${nf_length} = 1</msg>
<var>${nf_length}</var>
<arg>${resp.json()['networkFunctions']}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-26T06:21:20.657046" elapsed="0.001413"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:20.658808" elapsed="0.001324"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.660460" elapsed="0.001129"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['measurementGroupName']}</arg>
<arg>msg_grp_02</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.661922" elapsed="0.001150"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['administrativeState']}</arg>
<arg>UNLOCKED</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.663407" elapsed="0.001456"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfName']}</arg>
<arg>pnf-existing</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.665221" elapsed="0.001139"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()['networkFunctions'][0]['nfMgStatus']}</arg>
<arg>PENDING_CREATE</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:20.666694" elapsed="0.001097"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.668972" level="INFO">Argument types are:
&lt;class 'int'&gt;
&lt;class 'str'&gt;</msg>
<arg>${nf_length}</arg>
<arg>1</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="PASS" start="2026-10-26T06:21:20.668213" elapsed="0.000973"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:20.669905" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:20.669699" elapsed="0.000619"/>
</kw>
<doc>Verify Update Measurement Group admin status from Locked to Unlocked with Network function present in subscription</doc>
<tag>PMSH_18</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:20.479077" elapsed="0.191380"/>
</test>
<test id="s1-s1-t19" name="Verify Update Measurement Group admin status with no change" line="243">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.673487" level="INFO">${json_string} = {"administrativeState": "UNLOCKED"}</msg>
<var>${json_string}</var>
<arg>{"administrativeState": "UNLOCKED"}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-26T06:21:20.672471" elapsed="0.001094"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.675072" level="INFO">${json} = {'administrativeState': 'UNLOCKED'}</msg>
<var>${json}</var>
<arg>json.loads('''${json_string}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:21:20.673930" elapsed="0.001214"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.677030" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.676515" elapsed="0.001098"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.678896" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:21:20.678026" elapsed="0.000941"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.702269" level="INFO">PUT Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '35'} 
 body=b'{"administrativeState": "UNLOCKED"}' 
 </msg>
<msg time="2026-10-26T06:21:20.702359" level="INFO">PUT Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_01/adminState 
 status=400, reason=BAD REQUEST 
 headers={'Content-Type': 'application/json', 'Content-Length': '104', 'Server': 'TornadoServer/6.1'} 
 body="Measurement group is already in UNLOCKED state for sub name: subs_01  and meas group name: msg_grp_01"
 
 </msg>
<msg time="2026-10-26T06:21:20.702560" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:20.702796" level="INFO">${resp} = &lt;Response [400]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.679312" elapsed="0.023552"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:20.703050" elapsed="0.000082"/>
</return>
<msg time="2026-10-26T06:21:20.703428" level="INFO">${resp} = &lt;Response [400]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_01/adminState</arg>
<arg>${json}</arg>
<status status="PASS" start="2026-10-26T06:21:20.675630" elapsed="0.027865"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 400</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:20.703831" elapsed="0.001271"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.json()}</arg>
<arg>Measurement group is already in UNLOCKED state for sub name: subs_01</arg>
<arg>and meas group name: msg_grp_01</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:21:20.705501" elapsed="0.001126"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:20.707321" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:20.707122" elapsed="0.000328"/>
</kw>
<doc>Verify Update Measurement Group admin status with no change</doc>
<tag>PMSH_19</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:20.671132" elapsed="0.036431"/>
</test>
<test id="s1-s1-t20" name="Verify Update Measurement Group admin status for invalid measurement group" line="253">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.710148" level="INFO">${json_string} = {"administrativeState": "LOCKED"}</msg>
<var>${json_string}</var>
<arg>{"administrativeState": "LOCKED"}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-26T06:21:20.709257" elapsed="0.000963"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.711744" level="INFO">${json} = {'administrativeState': 'LOCKED'}</msg>
<var>${json}</var>
<arg>json.loads('''${json_string}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:21:20.710636" elapsed="0.001178"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.713702" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.713147" elapsed="0.000955"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.715355" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:21:20.714484" elapsed="0.000943"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.738793" level="INFO">PUT Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_11/adminState 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_11/adminState 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '33'} 
 body=b'{"administrativeState": "LOCKED"}' 
 </msg>
<msg time="2026-10-26T06:21:20.738885" level="INFO">PUT Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_11/adminState 
 status=400, reason=BAD REQUEST 
 headers={'Content-Type': 'application/json', 'Content-Length': '68', 'Server': 'TornadoServer/6.1'} 
 body="Requested measurement group not available for admin status update"
 
 </msg>
<msg time="2026-10-26T06:21:20.739324" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:20.739567" level="INFO">${resp} = &lt;Response [400]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.715751" elapsed="0.023886"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:20.739799" elapsed="0.000076"/>
</return>
<msg time="2026-10-26T06:21:20.740192" level="INFO">${resp} = &lt;Response [400]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_11/adminState</arg>
<arg>${json}</arg>
<status status="PASS" start="2026-10-26T06:21:20.712250" elapsed="0.028010"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 400</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:20.740657" elapsed="0.001412"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.json()}</arg>
<arg>Requested measurement group not available for admin status update</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-26T06:21:20.742412" elapsed="0.001043"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:20.744132" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:20.743917" elapsed="0.000346"/>
</kw>
<doc>Verify Update Measurement Group admin status for invalid measurement group</doc>
<tag>PMSH_20</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:20.708180" elapsed="0.036197"/>
</test>
<test id="s1-s1-t21" name="Verify Get subscriptions with Network Functions" line="263">
<kw name="json_from_file" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:21:20.747474" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_second_subscription_request.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_second_subscription_request.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:21:20.747854" level="INFO">${json_file} = {
  "subscription": {
    "subscriptionName": "subs_02",
    "operationalPolicyName":"pmsh-operational-policy",
    "controlLoopName":"pmsh-control-loop",
    "nfFilter": {
      "nfNames": [
        ...</msg>
<var>${json_file}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:21:20.747030" elapsed="0.000892"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.749534" level="INFO">${json_object} = {'subscription': {'subscriptionName': 'subs_02', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': ['^pnf.*', '^vnf.*'], 'modelInvaria...</msg>
<var>${json_object}</var>
<arg>json.loads('''${json_file}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:21:20.748292" elapsed="0.001321"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-26T06:21:20.749748" elapsed="0.000073"/>
</return>
<msg time="2026-10-26T06:21:20.750186" level="INFO">${json_value} = {'subscription': {'subscriptionName': 'subs_02', 'operationalPolicyName': 'pmsh-operational-policy', 'controlLoopName': 'pmsh-control-loop', 'nfFilter': {'nfNames': ['^pnf.*', '^vnf.*'], 'modelInvaria...</msg>
<var>${json_value}</var>
<arg>${CREATE_SECOND_SUBSCRIPTION_DATA}</arg>
<status status="PASS" start="2026-10-26T06:21:20.746241" elapsed="0.004015"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.752149" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.751640" elapsed="0.000913"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:21:20.754182" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:21:20.752933" elapsed="0.001334"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.966321" level="INFO">POST Request : url=https://172.17.0.5:8443/subscription 
 path_url=/subscription 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '763'} 
 body=b'{"subscription": {"subscriptionName": "subs_02", "operationalPolicyName": "pmsh-operational-policy", "controlLoopName": "pmsh-control-loop", "nfFilter": {"nfNames": ["^pnf.*", "^vnf.*"], "modelInvariantIDs": [], "modelVersionIDs": [], "modelNames": []}, "measurementGroups": [{"measurementGroup": {"measurementGroupName": "msg_grp_03", "fileBasedGP": 15, "fileLocation": "pm.xml", "administrativeState": "UNLOCKED", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}, {"measurementGroup": {"measurementGroupName": "msg_grp_04", "fileBasedGP": 15, "fileLocation": "pm.xml", "administrativeState": "UNLOCKED", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}]}}' 
 </msg>
<msg time="2026-10-26T06:21:20.966478" level="INFO">POST Response : url=https://172.17.0.5:8443/subscription 
 status=201, reason=CREATED 
 headers={'Content-Type': 'application/json', 'Content-Length': '0', 'Server': 'TornadoServer/6.1'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:20.966784" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:20.967172" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.754622" elapsed="0.212679"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:20.967576" elapsed="0.000129"/>
</return>
<msg time="2026-10-26T06:21:20.968109" level="INFO">${resp_post} = &lt;Response [201]&gt;</msg>
<var>${resp_post}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>${json_value}</arg>
<status status="PASS" start="2026-10-26T06:21:20.750637" elapsed="0.217545"/>
</kw>
<kw name="GetSubsCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.970241" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:20.969668" elapsed="0.000973"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:20.997349" level="INFO">GET Request : url=https://172.17.0.5:8443/subscription 
 path_url=/subscription 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '26'} 
 body={"path": {url_path_param}} 
 </msg>
<msg time="2026-10-26T06:21:20.997445" level="INFO">GET Response : url=https://172.17.0.5:8443/subscription 
 status=200, reason=OK 
 headers={'Content-Type': 'application/json', 'Content-Length': '2803', 'Server': 'TornadoServer/6.1'} 
 body=[
  {
    "subscription": {
      "controlLoopName": "pmsh-control-loop",
      "measurementGroups": [
        {
          "measurementGroup": {
            "administrativeState": "UNLOCKED",
            "fileBasedGP": 15,
            "fileLocation": "pm.xml",
            "managedObjectDNsBasic": [
              {
                "DN": "string"
              }
            ],
            "measurementGroupName": "msg_grp_02",
            "measurementTypes": [
              {
                "measurementType": "counter_a"
              }
            ]
          }
        },
        {
          "measurementGroup": {
            "administrativeState": "UNLOCKED",
            "fileBasedGP": 15,
            "fileLocation": "pm.xml",
            "managedObjectDNsBasic": [
              {
                "DN": "string"
              }
            ],
            "measurementGroupName": "msg_grp_01",
            "measurementTypes": [
              {
                "measurementType": "counter_a"
              }
            ]
          }
        }
      ],
      "nfFilter": {
        "modelInvariantIDs": [],
        "modelNames": [],
        "modelVersionIDs": [],
        "nfNames": [
          "^pnf.*",
          "^vnf.*"
        ]
      },
      "nfs": [
        "pnf-existing"
      ],
      "operationalPolicyName": "pmsh-operational-policy",
      "subscriptionName": "subs_01"
    }
  },
  {
    "subscription": {
      "controlLoopName": "pmsh-control-loop",
      "measurementGroups": [
        {
          "measurementGroup": {
            "administrativeState": "UNLOCKED",
            "fileBasedGP": 15,
            "fileLocation": "pm.xml",
            "managedObjectDNsBasic": [
              {
                "DN": "string"
              }
            ],
            "measurementGroupName": "msg_grp_04",
            "measurementTypes": [
              {
                "measurementType": "counter_a"
              }
            ]
          }
        },
        {
          "measurementGroup": {
            "administrativeState": "UNLOCKED",
            "fileBasedGP": 15,
            "fileLocation": "pm.xml",
            "managedObjectDNsBasic": [
              {
                "DN": "string"
              }
            ],
            "measurementGroupName": "msg_grp_03",
            "measurementTypes": [
              {
                "measurementType": "counter_a"
              }
            ]
          }
        }
      ],
      "nfFilter": {
        "modelInvariantIDs": [],
        "modelNames": [],
        "modelVersionIDs": [],
        "nfNames": [
          "^pnf.*",
          "^vnf.*"
        ]
      },
      "nfs": [
        "pnf-existing"
      ],
      "operationalPolicyName": "pmsh-operational-policy",
      "subscriptionName": "subs_02"
    }
  }
]
 
 </msg>
<msg time="2026-10-26T06:21:20.997760" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:20.998031" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<arg>data={"path": {url_path_param}}</arg>
<arg>expected_status=any</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:20.970974" elapsed="0.027130"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:20.998262" elapsed="0.000077"/>
</return>
<msg time="2026-10-26T06:21:20.998638" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>""</arg>
<status status="PASS" start="2026-10-26T06:21:20.968658" elapsed="0.030049"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.000222" level="INFO">Length is 1.</msg>
<msg time="2026-10-26T06:21:21.000498" level="INFO">${nf_length_first} = 1</msg>
<var>${nf_length_first}</var>
<arg>${resp.json()[0]['subscription']['nfs']}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-26T06:21:20.999052" elapsed="0.001513"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.001950" level="INFO">Length is 1.</msg>
<msg time="2026-10-26T06:21:21.002241" level="INFO">${nf_length_second} = 1</msg>
<var>${nf_length_second}</var>
<arg>${resp.json()[1]['subscription']['nfs']}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-26T06:21:21.000894" elapsed="0.001414"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 200</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:21.002655" elapsed="0.001251"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()[0]['subscription']['subscriptionName']}</arg>
<arg>subs_01</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:21.004256" elapsed="0.001215"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()[0]['subscription']['nfs'][0]}</arg>
<arg>pnf-existing</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:21.005813" elapsed="0.001149"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()[0]['subscription']['measurementGroups'][0]['measurementGroup']['measurementGroupName']}</arg>
<arg>msg_grp_02</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:21.007320" elapsed="0.001184"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.009686" level="INFO">Argument types are:
&lt;class 'int'&gt;
&lt;class 'str'&gt;</msg>
<arg>${nf_length_first}</arg>
<arg>1</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="PASS" start="2026-10-26T06:21:21.008873" elapsed="0.001002"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()[1]['subscription']['subscriptionName']}</arg>
<arg>subs_02</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:21.010223" elapsed="0.001123"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()[1]['subscription']['nfs'][0]}</arg>
<arg>pnf-existing</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:21.011678" elapsed="0.001116"/>
</kw>
<kw name="Should Be Equal As Strings" owner="BuiltIn">
<arg>${resp.json()[1]['subscription']['measurementGroups'][0]['measurementGroup']['measurementGroupName']}</arg>
<arg>msg_grp_04</arg>
<doc>Fails if objects are unequal after converting them to strings.</doc>
<status status="PASS" start="2026-10-26T06:21:21.013153" elapsed="0.001174"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.015466" level="INFO">Argument types are:
&lt;class 'int'&gt;
&lt;class 'str'&gt;</msg>
<arg>${nf_length_second}</arg>
<arg>1</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="PASS" start="2026-10-26T06:21:21.014698" elapsed="0.000960"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:21.016367" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:21.016166" elapsed="0.000342"/>
</kw>
<doc>Verify Get subscriptions with Network Functions</doc>
<tag>PMSH_21</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:20.744966" elapsed="0.271661"/>
</test>
<test id="s1-s1-t22" name="Verify Delete Measurement Group with Administrative State unlocked" line="282">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.019610" level="INFO">${json_string} = {"administrativeState": "UNLOCKED"}</msg>
<var>${json_string}</var>
<arg>{"administrativeState": "UNLOCKED"}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-26T06:21:21.018727" elapsed="0.000957"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.021196" level="INFO">${json} = {'administrativeState': 'UNLOCKED'}</msg>
<var>${json}</var>
<arg>json.loads('''${json_string}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:21:21.020073" elapsed="0.001206"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.023120" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:21.022603" elapsed="0.000899"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.024789" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:21:21.023893" elapsed="0.000970"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.047924" level="INFO">PUT Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_02/adminState 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_02/adminState 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '35'} 
 body=b'{"administrativeState": "UNLOCKED"}' 
 </msg>
<msg time="2026-10-26T06:21:21.048040" level="INFO">PUT Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_02/adminState 
 status=400, reason=BAD REQUEST 
 headers={'Content-Type': 'application/json', 'Content-Length': '104', 'Server': 'TornadoServer/6.1'} 
 body="Measurement group is already in UNLOCKED state for sub name: subs_01  and meas group name: msg_grp_02"
 
 </msg>
<msg time="2026-10-26T06:21:21.048275" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:21.048517" level="INFO">${resp} = &lt;Response [400]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:21.025216" elapsed="0.023371"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:21.048754" elapsed="0.000077"/>
</return>
<arg>/subscription/subs_01/measurementGroups/msg_grp_02/adminState</arg>
<arg>${json}</arg>
<status status="PASS" start="2026-10-26T06:21:21.021728" elapsed="0.027343"/>
</kw>
<kw name="DeleteMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.050813" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:21.050318" elapsed="0.000891"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.073061" level="INFO">DELETE Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_02 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_02 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:21.073155" level="INFO">DELETE Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_02 
 status=409, reason=CONFLICT 
 headers={'Content-Type': 'application/json', 'Content-Length': '130', 'Server': 'TornadoServer/6.1'} 
 body={
  "error": "Measurement Group was not deleted because the Administrative State was {measurement_group_administrative_status}"
}
 
 </msg>
<msg time="2026-10-26T06:21:21.073403" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:21.073644" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:21.051530" elapsed="0.022183"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:21.073862" elapsed="0.000074"/>
</return>
<msg time="2026-10-26T06:21:21.074257" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_02</arg>
<status status="PASS" start="2026-10-26T06:21:21.049526" elapsed="0.024798"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 409</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:21.074670" elapsed="0.001267"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:21.076619" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:21.076422" elapsed="0.000540"/>
</kw>
<doc>Verify Delete Measurement Group with Administrative State unlocked</doc>
<tag>PMSH_22</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:21.017365" elapsed="0.059741"/>
</test>
<test id="s1-s1-t23" name="Verify Delete Measurement Group with incorrect Measurement Group name server error" line="292">
<kw name="DeleteMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.080238" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:21.079728" elapsed="0.000885"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.101877" level="INFO">DELETE Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/nonexistent 
 path_url=/subscription/subs_01/measurementGroups/nonexistent 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:21.101970" level="INFO">DELETE Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/nonexistent 
 status=500, reason=INTERNAL SERVER ERROR 
 headers={'Content-Type': 'application/json', 'Content-Length': '150', 'Server': 'TornadoServer/6.1'} 
 body={
  "error": "Try again, measurement group nonexistent was not deleted due to exception: 'NoneType' object has no attribute 'administrative_state'"
}
 
 </msg>
<msg time="2026-10-26T06:21:21.102262" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:21.102498" level="INFO">${resp} = &lt;Response [500]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:21.080934" elapsed="0.021632"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:21.102715" elapsed="0.000076"/>
</return>
<msg time="2026-10-26T06:21:21.103102" level="INFO">${resp} = &lt;Response [500]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/nonexistent</arg>
<status status="PASS" start="2026-10-26T06:21:21.078955" elapsed="0.024216"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 500</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:21.103495" elapsed="0.001243"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:21.105452" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:21.105224" elapsed="0.000361"/>
</kw>
<doc>Verify Delete Measurement Group with incorrect Measurement Group Name</doc>
<tag>PMSH_23</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:21.077756" elapsed="0.027942"/>
</test>
<test id="s1-s1-t24" name="Verify Create Measurement Group successful" line="299">
<kw name="json_from_file" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:21:21.108706" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_msg_grp.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_msg_grp.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:21:21.109096" level="INFO">${json_file} = {
  "measurementGroup": {
    "measurementGroupName": "msg_grp_05",
    "fileBasedGP": 15,
    "fileLocation": "pm.xml",
    "administrativeState": "LOCKED",
    "measurementTypes": [{
      "measurem...</msg>
<var>${json_file}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:21:21.108262" elapsed="0.000903"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.110739" level="INFO">${json_object} = {'measurementGroup': {'measurementGroupName': 'msg_grp_05', 'fileBasedGP': 15, 'fileLocation': 'pm.xml', 'administrativeState': 'LOCKED', 'measurementTypes': [{'measurementType': 'counter_a'}], 'manag...</msg>
<var>${json_object}</var>
<arg>json.loads('''${json_file}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:21:21.109555" elapsed="0.001257"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-26T06:21:21.110953" elapsed="0.000092"/>
</return>
<msg time="2026-10-26T06:21:21.111352" level="INFO">${json_value} = {'measurementGroup': {'measurementGroupName': 'msg_grp_05', 'fileBasedGP': 15, 'fileLocation': 'pm.xml', 'administrativeState': 'LOCKED', 'measurementTypes': [{'measurementType': 'counter_a'}], 'manag...</msg>
<var>${json_value}</var>
<arg>${CREATE_MSG_GRP_DATA}</arg>
<status status="PASS" start="2026-10-26T06:21:21.107468" elapsed="0.003952"/>
</kw>
<kw name="PostMsgGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.113184" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:21.112665" elapsed="0.000922"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.114849" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:21:21.113969" elapsed="0.000950"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.147853" level="INFO">POST Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_05 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_05 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '239'} 
 body=b'{"measurementGroup": {"measurementGroupName": "msg_grp_05", "fileBasedGP": 15, "fileLocation": "pm.xml", "administrativeState": "LOCKED", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}' 
 </msg>
<msg time="2026-10-26T06:21:21.147936" level="INFO">POST Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_05 
 status=201, reason=CREATED 
 headers={'Content-Type': 'application/json', 'Content-Length': '0', 'Server': 'TornadoServer/6.1'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:21.148391" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:21.148632" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:21.115265" elapsed="0.033435"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:21.148866" elapsed="0.000075"/>
</return>
<msg time="2026-10-26T06:21:21.149257" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_05</arg>
<arg>${json_value}</arg>
<status status="PASS" start="2026-10-26T06:21:21.111797" elapsed="0.037556"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 201</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:21.149692" elapsed="0.001259"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:21.151696" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:21.151433" elapsed="0.000397"/>
</kw>
<doc>Verify Create Measurement Group successful</doc>
<tag>PMSH_24</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:21.106309" elapsed="0.045637"/>
</test>
<test id="s1-s1-t25" name="Verify Create Measurement Group unsuccessful" line="307">
<kw name="json_from_file" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-26T06:21:21.155027" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_msg_grp.json"&gt;/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/assets/create_msg_grp.json&lt;/a&gt;'.</msg>
<msg time="2026-10-26T06:21:21.155377" level="INFO">${json_file} = {
  "measurementGroup": {
    "measurementGroupName": "msg_grp_05",
    "fileBasedGP": 15,
    "fileLocation": "pm.xml",
    "administrativeState": "LOCKED",
    "measurementTypes": [{
      "measurem...</msg>
<var>${json_file}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-10-26T06:21:21.154570" elapsed="0.000874"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.156936" level="INFO">${json_object} = {'measurementGroup': {'measurementGroupName': 'msg_grp_05', 'fileBasedGP': 15, 'fileLocation': 'pm.xml', 'administrativeState': 'LOCKED', 'measurementTypes': [{'measurementType': 'counter_a'}], 'manag...</msg>
<var>${json_object}</var>
<arg>json.loads('''${json_file}''')</arg>
<arg>json</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-26T06:21:21.155792" elapsed="0.001235"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-26T06:21:21.157166" elapsed="0.000071"/>
</return>
<msg time="2026-10-26T06:21:21.157575" level="INFO">${json_value} = {'measurementGroup': {'measurementGroupName': 'msg_grp_05', 'fileBasedGP': 15, 'fileLocation': 'pm.xml', 'administrativeState': 'LOCKED', 'measurementTypes': [{'measurementType': 'counter_a'}], 'manag...</msg>
<var>${json_value}</var>
<arg>${CREATE_MSG_GRP_DATA}</arg>
<status status="PASS" start="2026-10-26T06:21:21.153774" elapsed="0.003870"/>
</kw>
<kw name="PostMsgGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.159435" level="INFO">Creating Session using : alias=pmsh_sub_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_sub_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:21.158884" elapsed="0.000925"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-26T06:21:21.161091" level="INFO">${headers} = {'Accept': 'application/json', 'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>Accept=application/json</arg>
<arg>Content-Type=application/json</arg>
<doc>Creates and returns a dictionary based on the given `items`.</doc>
<status status="PASS" start="2026-10-26T06:21:21.160216" elapsed="0.000947"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.189238" level="INFO">POST Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_05 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_05 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '239'} 
 body=b'{"measurementGroup": {"measurementGroupName": "msg_grp_05", "fileBasedGP": 15, "fileLocation": "pm.xml", "administrativeState": "LOCKED", "measurementTypes": [{"measurementType": "counter_a"}], "managedObjectDNsBasic": [{"DN": "string"}]}}' 
 </msg>
<msg time="2026-10-26T06:21:21.189354" level="INFO">POST Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_05 
 status=409, reason=CONFLICT 
 headers={'Content-Type': 'application/json', 'Content-Length': '53', 'Server': 'TornadoServer/6.1'} 
 body="Measurement Group Name: msg_grp_05 already exists."
 
 </msg>
<msg time="2026-10-26T06:21:21.189559" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:21.189794" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_sub_session</arg>
<arg>url=${url}</arg>
<arg>json=${data}</arg>
<arg>headers=${headers}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:21.161515" elapsed="0.028348"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:21.190056" elapsed="0.000076"/>
</return>
<msg time="2026-10-26T06:21:21.190425" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_05</arg>
<arg>${json_value}</arg>
<status status="PASS" start="2026-10-26T06:21:21.158043" elapsed="0.032450"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 409</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:21.190828" elapsed="0.001723"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:21.193239" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:21.193038" elapsed="0.000359"/>
</kw>
<doc>Verify Create Measurement Group successful</doc>
<tag>PMSH_25</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:21.152562" elapsed="0.040954"/>
</test>
<test id="s1-s1-t26" name="Verify Delete Measurement Group successful" line="315">
<kw name="DeleteMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.196572" level="INFO">Creating Session using : alias=pmsh_session, url=https://172.17.0.5:8443, headers={},                     cookies={}, auth=None, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>pmsh_session</arg>
<arg>${PMSH_BASE_URL}</arg>
<arg>verify=false</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-26T06:21:21.196083" elapsed="0.000865"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-26T06:21:21.225218" level="INFO">DELETE Request : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_05 
 path_url=/subscription/subs_01/measurementGroups/msg_grp_05 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:21.225344" level="INFO">DELETE Response : url=https://172.17.0.5:8443/subscription/subs_01/measurementGroups/msg_grp_05 
 status=204, reason=NO CONTENT 
 headers={'Content-Type': 'application/json', 'Content-Length': '0', 'Server': 'TornadoServer/6.1'} 
 body=None 
 </msg>
<msg time="2026-10-26T06:21:21.225781" level="INFO">/tmp/venv-pEwN/lib/python3.10/site-packages/urllib3/connectionpool.py:1064: InsecureRequestWarning: Unverified HTTPS request is being made to host '172.17.0.5'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
  warnings.warn(</msg>
<msg time="2026-10-26T06:21:21.226105" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>pmsh_session</arg>
<arg>url=${url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-26T06:21:21.197291" elapsed="0.028886"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-26T06:21:21.226327" elapsed="0.000075"/>
</return>
<msg time="2026-10-26T06:21:21.226696" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/msg_grp_05</arg>
<status status="PASS" start="2026-10-26T06:21:21.195314" elapsed="0.031449"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${resp.status_code} == 204</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-26T06:21:21.227122" elapsed="0.001248"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-26T06:21:21.229044" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-26T06:21:21.228827" elapsed="0.000350"/>
</kw>
<doc>Verify Delete Measurement Group successful</doc>
<tag>PMSH_26</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-26T06:21:21.194135" elapsed="0.035154"/>
</test>
<doc>Testing PMSH functionality</doc>
<status status="PASS" start="2026-10-26T06:19:21.934609" elapsed="119.295883"/>
</suite>
<doc>PMSH Testcases</doc>
<status status="PASS" start="2026-10-26T06:19:21.898684" elapsed="119.333772"/>
</suite>
<statistics>
<total>
<stat pass="26" fail="0" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="1" fail="0" skip="0">PMSH_01</stat>
<stat pass="1" fail="0" skip="0">PMSH_02</stat>
<stat pass="1" fail="0" skip="0">PMSH_03</stat>
<stat pass="1" fail="0" skip="0">PMSH_04</stat>
<stat pass="1" fail="0" skip="0">PMSH_05</stat>
<stat pass="1" fail="0" skip="0">PMSH_06</stat>
<stat pass="1" fail="0" skip="0">PMSH_07</stat>
<stat pass="1" fail="0" skip="0">PMSH_08</stat>
<stat pass="1" fail="0" skip="0">PMSH_09</stat>
<stat pass="1" fail="0" skip="0">PMSH_10</stat>
<stat pass="1" fail="0" skip="0">PMSH_11</stat>
<stat pass="1" fail="0" skip="0">PMSH_12</stat>
<stat pass="1" fail="0" skip="0">PMSH_13</stat>
<stat pass="1" fail="0" skip="0">PMSH_14</stat>
<stat pass="1" fail="0" skip="0">PMSH_15</stat>
<stat pass="1" fail="0" skip="0">PMSH_16</stat>
<stat pass="1" fail="0" skip="0">PMSH_17</stat>
<stat pass="1" fail="0" skip="0">PMSH_18</stat>
<stat pass="1" fail="0" skip="0">PMSH_19</stat>
<stat pass="1" fail="0" skip="0">PMSH_20</stat>
<stat pass="1" fail="0" skip="0">PMSH_21</stat>
<stat pass="1" fail="0" skip="0">PMSH_22</stat>
<stat pass="1" fail="0" skip="0">PMSH_23</stat>
<stat pass="1" fail="0" skip="0">PMSH_24</stat>
<stat pass="1" fail="0" skip="0">PMSH_25</stat>
<stat pass="1" fail="0" skip="0">PMSH_26</stat>
</tag>
<suite>
<stat name="plans/dcaegen2-services-pmsh/testsuite" id="s1" pass="26" fail="0" skip="0">plans/dcaegen2-services-pmsh/testsuite</stat>
<stat name="Pmsh" id="s1-s1" pass="26" fail="0" skip="0">plans/dcaegen2-services-pmsh/testsuite.Pmsh</stat>
</suite>
</statistics>
<errors>
<msg time="2026-10-26T06:19:21.894265" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/pmsh.robot' on line 372: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:21.894588" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/pmsh.robot' on line 378: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:21.894781" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/pmsh.robot' on line 384: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:21.894962" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/pmsh.robot' on line 390: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:21.895161" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/pmsh.robot' on line 397: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:21.895361" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/pmsh.robot' on line 404: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:21.895561" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/dcaegen2-services-pmsh/testcases/pmsh.robot' on line 411: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:22.043861" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/common.robot' on line 11: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:22.044174" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/common.robot' on line 17: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:22.044342" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/common.robot' on line 24: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
<msg time="2026-10-26T06:19:22.044515" level="WARN">Error in file '/w/workspace/dcaegen2-services-pmsh-master-csit-testsuite/tests/common.robot' on line 29: The '[Return]' setting is deprecated. Use the 'RETURN' statement instead.</msg>
</errors>
</robot>
