<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.10.6 on linux)" generated="2026-10-31T13:28:12.796138" 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-31T13:28:12.958414" 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-31T13:28:12.957755" elapsed="0.000980"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:13.019211" 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-31T13:28:13.019280" 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-31T13:28:13.019419" level="INFO">/tmp/venv-k0id/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-31T13:28:13.019689" 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-31T13:28:12.958939" elapsed="0.060787"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:28:13.019835" elapsed="0.000080"/>
</return>
<msg time="2026-10-31T13:28:13.020099" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>""</arg>
<status status="PASS" start="2026-10-31T13:28:12.956453" elapsed="0.063679"/>
</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-31T13:28:13.020335" elapsed="0.000817"/>
</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-31T13:28:13.021307" elapsed="0.000755"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:28:13.022401" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:28:13.022309" elapsed="0.000159"/>
</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-31T13:28:12.955193" elapsed="0.067343"/>
</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-31T13:28:13.024317" 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-31T13:28:13.024504" 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-31T13:28:13.024089" elapsed="0.000466"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:28:13.025328" 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-31T13:28:13.024745" elapsed="0.000618"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-31T13:28:13.025427" elapsed="0.000032"/>
</return>
<msg time="2026-10-31T13:28:13.025640" 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-31T13:28:13.023696" elapsed="0.001979"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:13.026483" 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-31T13:28:13.026256" elapsed="0.000431"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:28:13.027376" 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-31T13:28:13.026890" elapsed="0.000521"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:13.941813" 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-31T13:28:13.942019" 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-31T13:28:13.942624" level="INFO">/tmp/venv-k0id/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-31T13:28:13.943078" 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-31T13:28:13.027576" elapsed="0.915583"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:28:13.943419" elapsed="0.000168"/>
</return>
<msg time="2026-10-31T13:28:13.944010" 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-31T13:28:13.025860" elapsed="0.918224"/>
</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-31T13:28:13.944639" elapsed="0.001720"/>
</kw>
<kw name="GetSubsCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:13.948439" 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-31T13:28:13.947910" elapsed="0.004197"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:13.977245" 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-31T13:28:13.977346" 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-31T13:28:13.977597" level="INFO">/tmp/venv-k0id/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-31T13:28:13.978069" 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-31T13:28:13.952453" elapsed="0.025691"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:28:13.978306" elapsed="0.000087"/>
</return>
<msg time="2026-10-31T13:28:13.978832" 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-31T13:28:13.946918" elapsed="0.032009"/>
</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-31T13:28:13.979268" elapsed="0.001324"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:28:13.981322" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:28:13.981122" elapsed="0.000582"/>
</kw>
<doc>Verify Create Subscription API</doc>
<tag>PMSH_07</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-31T13:28:13.022976" elapsed="0.958853"/>
</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-31T13:28:13.985755" 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-31T13:28:13.985216" elapsed="0.000931"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:14.009669" 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-31T13:28:14.009764" 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-31T13:28:14.010053" level="INFO">/tmp/venv-k0id/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-31T13:28:14.010379" 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-31T13:28:13.986475" elapsed="0.023979"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:28:14.010634" elapsed="0.000078"/>
</return>
<msg time="2026-10-31T13:28:14.011037" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>""</arg>
<status status="PASS" start="2026-10-31T13:28:13.984169" elapsed="0.026939"/>
</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-31T13:28:14.011447" elapsed="0.001314"/>
</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-31T13:28:14.013120" elapsed="0.001096"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:28:14.014944" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:28:14.014708" elapsed="0.000372"/>
</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-31T13:28:13.982703" elapsed="0.032488"/>
</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-31T13:28:14.018678" 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-31T13:28:14.018140" elapsed="0.000970"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:14.048271" 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-31T13:28:14.048369" 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-31T13:28:14.048623" level="INFO">/tmp/venv-k0id/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-31T13:28:14.048948" 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-31T13:28:14.019433" elapsed="0.029589"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:28:14.049159" elapsed="0.000074"/>
</return>
<msg time="2026-10-31T13:28:14.049545" 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-31T13:28:14.017342" elapsed="0.032275"/>
</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-31T13:28:14.049927" elapsed="0.001157"/>
</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-31T13:28:14.051409" elapsed="0.001074"/>
</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-31T13:28:14.052827" elapsed="0.028947"/>
</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-31T13:28:14.082112" elapsed="0.000769"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:28:14.083349" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:28:14.083223" elapsed="0.000221"/>
</kw>
<doc>Verify PNF detected when administrative state unlocked</doc>
<tag>PMSH_03</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-31T13:28:14.015932" elapsed="0.067699"/>
</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-31T13:28:14.086973" 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-31T13:28:14.087290" 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-31T13:28:14.086641" elapsed="0.000694"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-31T13:28:14.087419" elapsed="0.000062"/>
</return>
<msg time="2026-10-31T13:28:14.087695" 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-31T13:28:14.086100" elapsed="0.001640"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:14.088292" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.3: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-31T13:28:14.087959" elapsed="0.000645"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:14.122724" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:28:14.122896" level="INFO">PUT Response : url=http://172.17.0.3: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.2.0', 'deprecated': '"/clear" is deprecated use "/mockserver/clear" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-31T13:28:14.123321" 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-31T13:28:14.088810" elapsed="0.034588"/>
</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-31T13:28:14.123877" elapsed="0.001503"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-31T13:28:16.126831" level="INFO">Slept 2 seconds.</msg>
<msg time="2026-10-31T13:28:16.126986" 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-31T13:28:14.125722" elapsed="2.001661"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:16.168619" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:28:16.168753" level="INFO">PUT Response : url=http://172.17.0.3: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.2.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-31T13:28:16.169286" 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-31T13:28:16.128011" elapsed="0.041354"/>
</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-31T13:28:16.169829" elapsed="0.001543"/>
</kw>
<status status="PASS" start="2026-10-31T13:28:14.085221" elapsed="2.086375"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-31T13:28:47.173041" level="INFO">Slept 31 seconds.</msg>
<msg time="2026-10-31T13:28:47.173199" 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-31T13:28:16.171884" elapsed="31.001743"/>
</kw>
<kw name="ResetMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-31T13:28:47.176897" 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-31T13:28:47.177408" 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-31T13:28:47.176350" elapsed="0.001134"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-31T13:28:47.177623" elapsed="0.000109"/>
</return>
<msg time="2026-10-31T13:28:47.178041" 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-31T13:28:47.175441" elapsed="0.002670"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:47.179071" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.3: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-31T13:28:47.178489" elapsed="0.001135"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:47.250515" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:28:47.250631" level="INFO">PUT Response : url=http://172.17.0.3: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.2.0', 'deprecated': '"/reset" is deprecated use "/mockserver/reset" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-31T13:28:47.251006" 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-31T13:28:47.179967" elapsed="0.071111"/>
</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-31T13:28:47.251470" elapsed="0.001568"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:47.268679" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:28:47.269115" level="INFO">PUT Response : url=http://172.17.0.3: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.2.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-31T13:28:47.269671" 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-31T13:28:47.253391" elapsed="0.016355"/>
</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-31T13:28:47.270115" elapsed="0.001466"/>
</kw>
<status status="PASS" start="2026-10-31T13:28:47.174416" elapsed="0.097332"/>
</kw>
<kw name="GetMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:47.273428" 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-31T13:28:47.272900" elapsed="0.000912"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:47.301392" 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-31T13:28:47.301496" 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-31T13:28:47.301732" level="INFO">/tmp/venv-k0id/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-31T13:28:47.302391" 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-31T13:28:47.274141" elapsed="0.028328"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:28:47.302612" elapsed="0.000077"/>
</return>
<msg time="2026-10-31T13:28:47.303022" 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-31T13:28:47.272107" elapsed="0.030987"/>
</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-31T13:28:47.303435" elapsed="0.001198"/>
</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-31T13:28:47.304962" elapsed="0.001070"/>
</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-31T13:28:47.306379" elapsed="0.001121"/>
</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-31T13:28:47.307826" elapsed="0.001077"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:28:47.309700" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:28:47.309497" elapsed="0.000530"/>
</kw>
<doc>Verify policy response on MR is handled</doc>
<tag>PMSH_04</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-31T13:28:14.084303" elapsed="33.225847"/>
</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-31T13:28:47.314560" 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-31T13:28:47.314983" 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-31T13:28:47.314083" elapsed="0.000972"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-31T13:28:47.315179" elapsed="0.000073"/>
</return>
<msg time="2026-10-31T13:28:47.315572" 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-31T13:28:47.313293" elapsed="0.002359"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:47.316520" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.3: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-31T13:28:47.316006" elapsed="0.000895"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:47.328145" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:28:47.328252" level="INFO">PUT Response : url=http://172.17.0.3: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.2.0', 'deprecated': '"/clear" is deprecated use "/mockserver/clear" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-31T13:28:47.328924" 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-31T13:28:47.317225" elapsed="0.011777"/>
</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-31T13:28:47.329399" elapsed="0.001260"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-31T13:28:49.332101" level="INFO">Slept 2 seconds.</msg>
<msg time="2026-10-31T13:28:49.332261" 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-31T13:28:47.331002" elapsed="2.001692"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:28:49.353031" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:28:49.353174" level="INFO">PUT Response : url=http://172.17.0.3: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.2.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-31T13:28:49.353797" 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-31T13:28:49.333284" elapsed="0.020590"/>
</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-31T13:28:49.354339" elapsed="0.001577"/>
</kw>
<status status="PASS" start="2026-10-31T13:28:47.312580" elapsed="2.043523"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-31T13:29:14.357499" level="INFO">Slept 25 seconds.</msg>
<msg time="2026-10-31T13:29:14.357627" 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-31T13:28:49.356416" elapsed="25.001568"/>
</kw>
<kw name="ResetMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-31T13:29:14.361111" 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-31T13:29:14.361551" 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-31T13:29:14.360599" elapsed="0.001033"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-31T13:29:14.361768" elapsed="0.000087"/>
</return>
<msg time="2026-10-31T13:29:14.362153" 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-31T13:29:14.359750" elapsed="0.002503"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:14.363215" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.3: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-31T13:29:14.362604" elapsed="0.001548"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:14.380080" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:29:14.380282" level="INFO">PUT Response : url=http://172.17.0.3: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.2.0', 'deprecated': '"/reset" is deprecated use "/mockserver/reset" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-31T13:29:14.380833" 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-31T13:29:14.364513" elapsed="0.016400"/>
</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-31T13:29:14.381450" elapsed="0.001630"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:14.397789" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:29:14.397910" level="INFO">PUT Response : url=http://172.17.0.3: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.2.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-31T13:29:14.398318" 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-31T13:29:14.383434" elapsed="0.014989"/>
</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-31T13:29:14.398850" elapsed="0.001297"/>
</kw>
<status status="PASS" start="2026-10-31T13:29:14.358808" elapsed="0.041548"/>
</kw>
<kw name="GetMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:14.402134" 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-31T13:29:14.401625" elapsed="0.001028"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:14.431115" 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-31T13:29:14.431245" 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-31T13:29:14.431469" level="INFO">/tmp/venv-k0id/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-31T13:29:14.431859" 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-31T13:29:14.403020" elapsed="0.028915"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:14.432083" elapsed="0.000119"/>
</return>
<msg time="2026-10-31T13:29:14.432513" 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-31T13:29:14.400782" elapsed="0.031803"/>
</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-31T13:29:14.432906" elapsed="0.001198"/>
</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-31T13:29:14.434456" elapsed="0.001109"/>
</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-31T13:29:14.435891" elapsed="0.001087"/>
</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-31T13:29:14.437325" elapsed="0.001079"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:14.439134" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:14.438935" elapsed="0.000551"/>
</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-31T13:28:47.311051" elapsed="27.128557"/>
</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-31T13:29:14.444045" 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-31T13:29:14.444490" 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-31T13:29:14.443582" elapsed="0.000981"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-31T13:29:14.444688" elapsed="0.000071"/>
</return>
<msg time="2026-10-31T13:29:14.445051" 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-31T13:29:14.442658" elapsed="0.002465"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:14.445975" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.3: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-31T13:29:14.445486" elapsed="0.000910"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:14.460238" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:29:14.460410" level="INFO">PUT Response : url=http://172.17.0.3: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.2.0', 'deprecated': '"/clear" is deprecated use "/mockserver/clear" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-31T13:29:14.461010" 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-31T13:29:14.446726" elapsed="0.014365"/>
</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-31T13:29:14.461632" elapsed="0.002141"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-31T13:29:16.465128" level="INFO">Slept 2 seconds.</msg>
<msg time="2026-10-31T13:29:16.465395" 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-31T13:29:14.464093" elapsed="2.001670"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:16.485931" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:29:16.486180" level="INFO">PUT Response : url=http://172.17.0.3: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.2.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-31T13:29:16.487082" 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-31T13:29:16.466442" elapsed="0.020748"/>
</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-31T13:29:16.487875" elapsed="0.001889"/>
</kw>
<status status="PASS" start="2026-10-31T13:29:14.441896" elapsed="2.048074"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.491536" level="INFO">Slept 21 seconds.</msg>
<msg time="2026-10-31T13:29:37.491661" 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-31T13:29:16.490317" elapsed="21.001691"/>
</kw>
<kw name="ResetMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-31T13:29:37.494995" 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-31T13:29:37.495446" 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-31T13:29:37.494445" elapsed="0.001074"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-31T13:29:37.495648" elapsed="0.000090"/>
</return>
<msg time="2026-10-31T13:29:37.496029" 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-31T13:29:37.493600" elapsed="0.002521"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.496973" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.3: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-31T13:29:37.496467" elapsed="0.000967"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.512024" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:29:37.512155" level="INFO">PUT Response : url=http://172.17.0.3: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.2.0', 'deprecated': '"/reset" is deprecated use "/mockserver/reset" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-31T13:29:37.512480" 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-31T13:29:37.497758" elapsed="0.014793"/>
</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-31T13:29:37.512989" elapsed="0.001408"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.528248" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:29:37.528368" level="INFO">PUT Response : url=http://172.17.0.3: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.2.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-31T13:29:37.528731" 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-31T13:29:37.514719" elapsed="0.014094"/>
</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-31T13:29:37.529201" elapsed="0.001251"/>
</kw>
<status status="PASS" start="2026-10-31T13:29:37.492686" elapsed="0.037926"/>
</kw>
<kw name="GetMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.532309" 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-31T13:29:37.531796" elapsed="0.000887"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.560721" 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-31T13:29:37.560882" 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-31T13:29:37.561240" level="INFO">/tmp/venv-k0id/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-31T13:29:37.561848" 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-31T13:29:37.533104" elapsed="0.028825"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.562150" elapsed="0.000114"/>
</return>
<msg time="2026-10-31T13:29:37.562624" 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-31T13:29:37.531013" elapsed="0.031683"/>
</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-31T13:29:37.563190" elapsed="0.001661"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:37.565611" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:37.565405" elapsed="0.000557"/>
</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-31T13:29:14.440430" elapsed="23.125751"/>
</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-31T13:29:37.570657" 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-31T13:29:37.571109" 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-31T13:29:37.570184" elapsed="0.000997"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.572954" 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-31T13:29:37.571646" elapsed="0.001387"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-31T13:29:37.573191" elapsed="0.000073"/>
</return>
<msg time="2026-10-31T13:29:37.573592" 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-31T13:29:37.569110" elapsed="0.004552"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.575549" 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-31T13:29:37.575019" elapsed="0.000963"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.577293" 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-31T13:29:37.576390" elapsed="0.000978"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.601837" 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-31T13:29:37.601935" 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-31T13:29:37.602175" level="INFO">/tmp/venv-k0id/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-31T13:29:37.602624" 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-31T13:29:37.577693" elapsed="0.025007"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.602898" elapsed="0.000080"/>
</return>
<msg time="2026-10-31T13:29:37.603304" 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-31T13:29:37.574075" elapsed="0.029299"/>
</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-31T13:29:37.603923" elapsed="0.001340"/>
</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-31T13:29:37.605668" elapsed="0.001154"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:37.607540" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:37.607340" elapsed="0.000345"/>
</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-31T13:29:37.567154" elapsed="0.040640"/>
</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-31T13:29:37.611951" 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-31T13:29:37.612391" 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-31T13:29:37.611490" elapsed="0.000995"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.614227" 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-31T13:29:37.612885" elapsed="0.001499"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-31T13:29:37.614529" elapsed="0.000074"/>
</return>
<msg time="2026-10-31T13:29:37.614967" 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-31T13:29:37.610424" elapsed="0.004639"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.617372" 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-31T13:29:37.616449" elapsed="0.001318"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.619093" 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-31T13:29:37.618176" elapsed="0.000995"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.638443" 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-31T13:29:37.640113" 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-31T13:29:37.640578" level="INFO">/tmp/venv-k0id/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-31T13:29:37.640971" 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-31T13:29:37.619497" elapsed="0.021570"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.641235" elapsed="0.000076"/>
</return>
<msg time="2026-10-31T13:29:37.641604" 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-31T13:29:37.615540" elapsed="0.026134"/>
</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-31T13:29:37.642015" elapsed="0.001518"/>
</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-31T13:29:37.643872" elapsed="0.001104"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:37.645669" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:37.645470" elapsed="0.000333"/>
</kw>
<doc>Verify Create Subscription API</doc>
<tag>PMSH_09</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-31T13:29:37.608691" elapsed="0.037219"/>
</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-31T13:29:37.650003" 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-31T13:29:37.650388" 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-31T13:29:37.649550" elapsed="0.000907"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.652005" 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-31T13:29:37.650835" elapsed="0.001269"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-31T13:29:37.652237" elapsed="0.000070"/>
</return>
<msg time="2026-10-31T13:29:37.652619" 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-31T13:29:37.648535" elapsed="0.004155"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.654470" 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-31T13:29:37.653960" elapsed="0.001001"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.656234" 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-31T13:29:37.655366" elapsed="0.000943"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.678026" 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-31T13:29:37.678145" 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-31T13:29:37.678349" level="INFO">/tmp/venv-k0id/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-31T13:29:37.678726" 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-31T13:29:37.656633" elapsed="0.022207"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.679007" elapsed="0.000102"/>
</return>
<msg time="2026-10-31T13:29:37.679405" 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-31T13:29:37.653084" elapsed="0.026391"/>
</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-31T13:29:37.680021" elapsed="0.001290"/>
</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-31T13:29:37.681647" elapsed="0.001045"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:37.683409" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:37.683211" elapsed="0.000330"/>
</kw>
<doc>Verify Create Subscription API</doc>
<tag>PMSH_10</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-31T13:29:37.646785" elapsed="0.036865"/>
</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-31T13:29:37.688233" 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-31T13:29:37.687303" elapsed="0.001312"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.712600" 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-31T13:29:37.712697" 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-31T13:29:37.713123" level="INFO">/tmp/venv-k0id/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-31T13:29:37.713517" 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-31T13:29:37.688945" elapsed="0.024647"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.713733" elapsed="0.000077"/>
</return>
<msg time="2026-10-31T13:29:37.714118" 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-31T13:29:37.686321" elapsed="0.027869"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.715983" level="INFO">Length is 1.</msg>
<msg time="2026-10-31T13:29:37.716268" 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-31T13:29:37.714505" elapsed="0.001831"/>
</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-31T13:29:37.716683" elapsed="0.001248"/>
</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-31T13:29:37.718274" elapsed="0.001114"/>
</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-31T13:29:37.719780" elapsed="0.001061"/>
</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-31T13:29:37.721186" elapsed="0.001062"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.723392" 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-31T13:29:37.722607" elapsed="0.000980"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:37.724264" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:37.724066" elapsed="0.000331"/>
</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-31T13:29:37.684494" elapsed="0.040010"/>
</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-31T13:29:37.728828" 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-31T13:29:37.728335" elapsed="0.000900"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.763087" 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-31T13:29:37.763184" 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-31T13:29:37.763398" level="INFO">/tmp/venv-k0id/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-31T13:29:37.763773" 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-31T13:29:37.729557" elapsed="0.034296"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.764008" elapsed="0.000097"/>
</return>
<msg time="2026-10-31T13:29:37.764398" 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-31T13:29:37.727195" elapsed="0.037271"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.766059" level="INFO">Length is 1.</msg>
<msg time="2026-10-31T13:29:37.766323" 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-31T13:29:37.764962" elapsed="0.001428"/>
</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-31T13:29:37.766723" elapsed="0.001257"/>
</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-31T13:29:37.768320" elapsed="0.001097"/>
</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-31T13:29:37.769740" elapsed="0.001113"/>
</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-31T13:29:37.771198" elapsed="0.001100"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.773414" 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-31T13:29:37.772669" elapsed="0.000931"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:37.774281" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:37.774085" elapsed="0.000326"/>
</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-31T13:29:37.725360" elapsed="0.049160"/>
</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-31T13:29:37.779362" 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-31T13:29:37.778837" elapsed="0.000909"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.803813" 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-31T13:29:37.803913" 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-31T13:29:37.804408" level="INFO">/tmp/venv-k0id/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-31T13:29:37.804822" 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-31T13:29:37.780150" elapsed="0.024749"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.805084" elapsed="0.000087"/>
</return>
<msg time="2026-10-31T13:29:37.805466" 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-31T13:29:37.777672" elapsed="0.027863"/>
</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-31T13:29:37.806109" elapsed="0.001333"/>
</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-31T13:29:37.807763" elapsed="0.001042"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:37.809489" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:37.809294" 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-31T13:29:37.775404" elapsed="0.034328"/>
</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-31T13:29:37.813177" 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-31T13:29:37.812092" elapsed="0.001163"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.814710" 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-31T13:29:37.813608" elapsed="0.001207"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.816603" 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-31T13:29:37.816114" elapsed="0.000871"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.818251" 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-31T13:29:37.817385" elapsed="0.000941"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.893780" 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-31T13:29:37.893934" 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-31T13:29:37.894229" level="INFO">/tmp/venv-k0id/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-31T13:29:37.894814" 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-31T13:29:37.818646" elapsed="0.076252"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.895127" elapsed="0.000103"/>
</return>
<msg time="2026-10-31T13:29:37.895565" 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-31T13:29:37.815255" elapsed="0.080382"/>
</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-31T13:29:37.896302" elapsed="0.001505"/>
</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-31T13:29:37.898170" elapsed="0.001192"/>
</kw>
<kw name="GetMeasGrpWithNFSCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.901126" 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-31T13:29:37.900612" elapsed="0.001330"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.927112" 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-31T13:29:37.927213" 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-31T13:29:37.927493" level="INFO">/tmp/venv-k0id/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-31T13:29:37.927901" 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-31T13:29:37.902326" elapsed="0.025653"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.928144" elapsed="0.000084"/>
</return>
<msg time="2026-10-31T13:29:37.928538" 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-31T13:29:37.899789" elapsed="0.028819"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.930181" level="INFO">Length is 1.</msg>
<msg time="2026-10-31T13:29:37.930439" 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-31T13:29:37.928923" elapsed="0.001583"/>
</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-31T13:29:37.930878" elapsed="0.001233"/>
</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-31T13:29:37.932430" elapsed="0.001066"/>
</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-31T13:29:37.933820" elapsed="0.001078"/>
</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-31T13:29:37.935249" elapsed="0.001045"/>
</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-31T13:29:37.936617" elapsed="0.001046"/>
</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-31T13:29:37.937983" elapsed="0.001114"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.940206" 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-31T13:29:37.939459" elapsed="0.000934"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:37.941085" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:37.940869" elapsed="0.000580"/>
</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-31T13:29:37.810579" elapsed="0.130991"/>
</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-31T13:29:37.944435" 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-31T13:29:37.943571" elapsed="0.000938"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.945954" 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-31T13:29:37.944859" elapsed="0.001168"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.947862" 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-31T13:29:37.947379" elapsed="0.000898"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:29:37.949532" 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-31T13:29:37.948660" elapsed="0.000946"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.971191" 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-31T13:29:37.971286" 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-31T13:29:37.971488" level="INFO">/tmp/venv-k0id/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-31T13:29:37.971858" 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-31T13:29:37.949922" elapsed="0.022011"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:29:37.972116" elapsed="0.000079"/>
</return>
<msg time="2026-10-31T13:29:37.972483" 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-31T13:29:37.946474" elapsed="0.026078"/>
</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-31T13:29:37.972885" elapsed="0.001257"/>
</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-31T13:29:37.974476" elapsed="0.001156"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:29:37.976319" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:29:37.976121" 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-31T13:29:37.942371" elapsed="0.034191"/>
</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-31T13:29:37.981188" 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-31T13:29:37.981587" 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-31T13:29:37.980360" elapsed="0.001297"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-31T13:29:37.981783" elapsed="0.000070"/>
</return>
<msg time="2026-10-31T13:29:37.982170" 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-31T13:29:37.979583" elapsed="0.002657"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.983122" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.3: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-31T13:29:37.982582" elapsed="0.000914"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:37.995196" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:29:37.995301" level="INFO">PUT Response : url=http://172.17.0.3: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.2.0', 'deprecated': '"/clear" is deprecated use "/mockserver/clear" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-31T13:29:37.995823" 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-31T13:29:37.983820" elapsed="0.012072"/>
</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-31T13:29:37.996277" elapsed="0.001244"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-31T13:29:39.998864" level="INFO">Slept 2 seconds.</msg>
<msg time="2026-10-31T13:29:39.998970" 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-31T13:29:37.997825" elapsed="2.001468"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:29:40.015475" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:29:40.015599" level="INFO">PUT Response : url=http://172.17.0.3: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.2.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-31T13:29:40.016109" 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-31T13:29:39.999768" elapsed="0.016417"/>
</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-31T13:29:40.016566" elapsed="0.001419"/>
</kw>
<status status="PASS" start="2026-10-31T13:29:37.978831" elapsed="2.039358"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.019610" level="INFO">Slept 31 seconds.</msg>
<msg time="2026-10-31T13:30:11.019728" 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-31T13:29:40.018469" elapsed="31.001601"/>
</kw>
<kw name="ResetMrSim">
<kw name="Get Data From File" owner="common">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-31T13:30:11.022997" 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-31T13:30:11.023413" 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-31T13:30:11.022425" elapsed="0.001059"/>
</kw>
<return>
<value>${data}</value>
<status status="PASS" start="2026-10-31T13:30:11.023613" elapsed="0.000088"/>
</return>
<msg time="2026-10-31T13:30:11.024015" 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-31T13:30:11.021567" elapsed="0.002517"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.024958" level="INFO">Creating Session using : alias=mr_sim_session, url=http://172.17.0.3: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-31T13:30:11.024427" elapsed="0.000971"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.038518" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:30:11.038631" level="INFO">PUT Response : url=http://172.17.0.3: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.2.0', 'deprecated': '"/reset" is deprecated use "/mockserver/reset" instead', 'connection': 'keep-alive', 'content-length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-31T13:30:11.039156" 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-31T13:30:11.025724" elapsed="0.013506"/>
</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-31T13:30:11.039613" elapsed="0.001457"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.055321" level="INFO">PUT Request : url=http://172.17.0.3: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-31T13:30:11.055513" level="INFO">PUT Response : url=http://172.17.0.3: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.2.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-31T13:30:11.056125" 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-31T13:30:11.041398" elapsed="0.014808"/>
</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-31T13:30:11.056758" elapsed="0.001670"/>
</kw>
<status status="PASS" start="2026-10-31T13:30:11.020691" elapsed="0.037931"/>
</kw>
<kw name="GetMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.060914" 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-31T13:30:11.059953" elapsed="0.001404"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.085762" 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-31T13:30:11.085879" 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-31T13:30:11.086106" level="INFO">/tmp/venv-k0id/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-31T13:30:11.086500" 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-31T13:30:11.061692" elapsed="0.024879"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.086721" elapsed="0.000120"/>
</return>
<msg time="2026-10-31T13:30:11.087177" 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-31T13:30:11.059104" elapsed="0.028141"/>
</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-31T13:30:11.087614" elapsed="0.001183"/>
</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-31T13:30:11.089146" elapsed="0.001052"/>
</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-31T13:30:11.090519" elapsed="0.001076"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.092926" level="INFO">Length is 0.</msg>
<msg time="2026-10-31T13:30:11.093180" 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-31T13:30:11.091940" elapsed="0.001306"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.094361" 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-31T13:30:11.093607" elapsed="0.000942"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:11.095279" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:11.095083" elapsed="0.001225"/>
</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-31T13:29:37.977306" elapsed="33.119133"/>
</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-31T13:30:11.099659" 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-31T13:30:11.098751" elapsed="0.000987"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.101223" 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-31T13:30:11.100113" elapsed="0.001181"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.103120" 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-31T13:30:11.102578" elapsed="0.000942"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.104813" 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-31T13:30:11.103939" elapsed="0.000966"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.255408" 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-31T13:30:11.255524" 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-31T13:30:11.255756" level="INFO">/tmp/venv-k0id/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-31T13:30:11.256154" 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-31T13:30:11.105225" elapsed="0.151004"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.256422" elapsed="0.000103"/>
</return>
<msg time="2026-10-31T13:30:11.256846" 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-31T13:30:11.101718" elapsed="0.155218"/>
</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-31T13:30:11.257359" elapsed="0.001384"/>
</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-31T13:30:11.259126" elapsed="0.001091"/>
</kw>
<kw name="GetMeasGrpWithNFSCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.261998" 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-31T13:30:11.261470" elapsed="0.000955"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.288366" 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-31T13:30:11.288467" 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-31T13:30:11.288757" level="INFO">/tmp/venv-k0id/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-31T13:30:11.289126" 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-31T13:30:11.262798" elapsed="0.026406"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.289352" elapsed="0.000095"/>
</return>
<msg time="2026-10-31T13:30:11.289760" 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-31T13:30:11.260645" elapsed="0.029181"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.291291" level="INFO">Length is 1.</msg>
<msg time="2026-10-31T13:30:11.291553" 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-31T13:30:11.290180" elapsed="0.001437"/>
</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-31T13:30:11.291975" elapsed="0.007160"/>
</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-31T13:30:11.299494" elapsed="0.001170"/>
</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-31T13:30:11.301037" elapsed="0.001116"/>
</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-31T13:30:11.302497" elapsed="0.001147"/>
</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-31T13:30:11.304004" elapsed="0.001118"/>
</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-31T13:30:11.305460" elapsed="0.001106"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.307792" 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-31T13:30:11.307004" elapsed="0.001013"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:11.308741" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:11.308530" elapsed="0.000586"/>
</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-31T13:30:11.097253" elapsed="0.211993"/>
</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-31T13:30:11.312606" 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-31T13:30:11.311651" elapsed="0.001032"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.314230" 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-31T13:30:11.313079" elapsed="0.001226"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.316272" 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-31T13:30:11.315730" elapsed="0.000974"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.318078" 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-31T13:30:11.317139" elapsed="0.001015"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.463191" 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-31T13:30:11.463333" 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-31T13:30:11.463615" level="INFO">/tmp/venv-k0id/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-31T13:30:11.464074" 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-31T13:30:11.318505" elapsed="0.145724"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.464437" elapsed="0.000102"/>
</return>
<msg time="2026-10-31T13:30:11.464888" 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-31T13:30:11.314798" elapsed="0.150167"/>
</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-31T13:30:11.465362" elapsed="0.001455"/>
</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-31T13:30:11.467175" elapsed="0.001089"/>
</kw>
<kw name="GetMeasGrpWithNFSCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.469991" 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-31T13:30:11.469480" elapsed="0.000924"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.498731" 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-31T13:30:11.498892" 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-31T13:30:11.499118" level="INFO">/tmp/venv-k0id/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-31T13:30:11.499483" 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-31T13:30:11.470725" elapsed="0.028846"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.499715" elapsed="0.000082"/>
</return>
<msg time="2026-10-31T13:30:11.500119" 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-31T13:30:11.468680" elapsed="0.031506"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.501532" level="INFO">Length is 1.</msg>
<msg time="2026-10-31T13:30:11.501784" 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-31T13:30:11.500500" elapsed="0.001348"/>
</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-31T13:30:11.502210" elapsed="0.001279"/>
</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-31T13:30:11.503803" elapsed="0.001085"/>
</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-31T13:30:11.505214" elapsed="0.001042"/>
</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-31T13:30:11.506577" elapsed="0.001514"/>
</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-31T13:30:11.508414" elapsed="0.001071"/>
</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-31T13:30:11.509809" elapsed="0.001123"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.512049" 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-31T13:30:11.511293" elapsed="0.000941"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:11.512921" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:11.512708" elapsed="0.000574"/>
</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-31T13:30:11.310130" elapsed="0.203278"/>
</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-31T13:30:11.516464" 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-31T13:30:11.515589" elapsed="0.000947"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.517992" 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-31T13:30:11.516909" elapsed="0.001153"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.519952" 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-31T13:30:11.519444" elapsed="0.000891"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.521594" 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-31T13:30:11.520713" elapsed="0.000952"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.543467" 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-31T13:30:11.543557" 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-31T13:30:11.543752" level="INFO">/tmp/venv-k0id/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-31T13:30:11.544084" 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-31T13:30:11.522006" elapsed="0.022154"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.544323" elapsed="0.000076"/>
</return>
<msg time="2026-10-31T13:30:11.544685" 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-31T13:30:11.518552" elapsed="0.026198"/>
</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-31T13:30:11.545097" elapsed="0.001222"/>
</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-31T13:30:11.546648" elapsed="0.001128"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:11.548459" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:11.548266" elapsed="0.000321"/>
</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-31T13:30:11.514211" elapsed="0.034482"/>
</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-31T13:30:11.551456" 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-31T13:30:11.550562" elapsed="0.000965"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.553020" 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-31T13:30:11.551938" elapsed="0.001151"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.554837" 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-31T13:30:11.554331" elapsed="0.000908"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.556462" 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-31T13:30:11.555610" elapsed="0.000923"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.578262" 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-31T13:30:11.578353" 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-31T13:30:11.578754" level="INFO">/tmp/venv-k0id/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-31T13:30:11.579132" 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-31T13:30:11.556850" elapsed="0.022360"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.579372" elapsed="0.000076"/>
</return>
<msg time="2026-10-31T13:30:11.579733" 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-31T13:30:11.553486" elapsed="0.026314"/>
</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-31T13:30:11.580219" elapsed="0.001246"/>
</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-31T13:30:11.581795" elapsed="0.001052"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:11.583523" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:11.583331" elapsed="0.000321"/>
</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-31T13:30:11.549427" elapsed="0.034333"/>
</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-31T13:30:11.587084" 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-31T13:30:11.587473" 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-31T13:30:11.586563" elapsed="0.000977"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.589087" 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-31T13:30:11.587906" elapsed="0.001255"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-31T13:30:11.589293" elapsed="0.000071"/>
</return>
<msg time="2026-10-31T13:30:11.589689" 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-31T13:30:11.585767" elapsed="0.003989"/>
</kw>
<kw name="PostSubscriptionCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.591547" 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-31T13:30:11.591063" elapsed="0.000874"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.593186" 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-31T13:30:11.592319" elapsed="0.000939"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.824119" 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-31T13:30:11.824256" 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-31T13:30:11.824544" level="INFO">/tmp/venv-k0id/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-31T13:30:11.825141" 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-31T13:30:11.593578" elapsed="0.231647"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.825447" elapsed="0.000107"/>
</return>
<msg time="2026-10-31T13:30:11.825919" 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-31T13:30:11.590152" elapsed="0.235838"/>
</kw>
<kw name="GetSubsCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.828096" 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-31T13:30:11.827506" elapsed="0.001015"/>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.854577" 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-31T13:30:11.854678" 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-31T13:30:11.855049" level="INFO">/tmp/venv-k0id/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-31T13:30:11.855406" 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-31T13:30:11.828846" elapsed="0.026636"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.855654" elapsed="0.000086"/>
</return>
<msg time="2026-10-31T13:30:11.856078" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${SUBSCRIPTION_ENDPOINT}</arg>
<arg>""</arg>
<status status="PASS" start="2026-10-31T13:30:11.826473" elapsed="0.029677"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.857763" level="INFO">Length is 1.</msg>
<msg time="2026-10-31T13:30:11.858060" 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-31T13:30:11.856498" elapsed="0.001630"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.859563" level="INFO">Length is 1.</msg>
<msg time="2026-10-31T13:30:11.859830" 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-31T13:30:11.858471" elapsed="0.001448"/>
</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-31T13:30:11.860279" elapsed="0.001312"/>
</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-31T13:30:11.861951" elapsed="0.001869"/>
</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-31T13:30:11.864194" elapsed="0.001173"/>
</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-31T13:30:11.865724" elapsed="0.001240"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.868149" 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-31T13:30:11.867349" elapsed="0.000995"/>
</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-31T13:30:11.868679" elapsed="0.001161"/>
</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-31T13:30:11.870205" elapsed="0.001181"/>
</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-31T13:30:11.871731" elapsed="0.001209"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.874119" 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-31T13:30:11.873325" elapsed="0.000986"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:11.875072" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:11.874842" elapsed="0.000372"/>
</kw>
<doc>Verify Get subscriptions with Network Functions</doc>
<tag>PMSH_21</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-31T13:30:11.584488" elapsed="0.290845"/>
</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-31T13:30:11.878641" 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-31T13:30:11.877727" elapsed="0.000990"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.880336" 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-31T13:30:11.879181" elapsed="0.001230"/>
</kw>
<kw name="PutMsgGrpStatusCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.882277" 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-31T13:30:11.881769" elapsed="0.000907"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.883982" 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-31T13:30:11.883104" elapsed="0.000950"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.906798" 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-31T13:30:11.906915" 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-31T13:30:11.907115" level="INFO">/tmp/venv-k0id/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-31T13:30:11.907425" 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-31T13:30:11.884404" elapsed="0.023091"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.907656" elapsed="0.000079"/>
</return>
<arg>/subscription/subs_01/measurementGroups/msg_grp_02/adminState</arg>
<arg>${json}</arg>
<status status="PASS" start="2026-10-31T13:30:11.880849" elapsed="0.027123"/>
</kw>
<kw name="DeleteMeasGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.909617" 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-31T13:30:11.909134" elapsed="0.000873"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.931139" 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-31T13:30:11.931230" 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-31T13:30:11.931438" level="INFO">/tmp/venv-k0id/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-31T13:30:11.931746" 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-31T13:30:11.910322" elapsed="0.021494"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.931988" elapsed="0.000075"/>
</return>
<msg time="2026-10-31T13:30:11.932347" 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-31T13:30:11.908354" elapsed="0.024060"/>
</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-31T13:30:11.932738" elapsed="0.001250"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:11.934628" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:11.934436" elapsed="0.000580"/>
</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-31T13:30:11.876214" elapsed="0.058920"/>
</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-31T13:30:11.938393" 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-31T13:30:11.937907" elapsed="0.000896"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.959485" 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-31T13:30:11.959576" 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-31T13:30:11.959838" level="INFO">/tmp/venv-k0id/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-31T13:30:11.960175" 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-31T13:30:11.939145" elapsed="0.021100"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:11.960390" elapsed="0.000075"/>
</return>
<msg time="2026-10-31T13:30:11.960747" level="INFO">${resp} = &lt;Response [500]&gt;</msg>
<var>${resp}</var>
<arg>/subscription/subs_01/measurementGroups/nonexistent</arg>
<status status="PASS" start="2026-10-31T13:30:11.937124" elapsed="0.023689"/>
</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-31T13:30:11.961161" elapsed="0.001228"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:11.963095" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:11.962896" elapsed="0.000327"/>
</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-31T13:30:11.935848" elapsed="0.027482"/>
</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-31T13:30:11.966518" 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-31T13:30:11.966960" 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-31T13:30:11.966069" elapsed="0.000960"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.968627" 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-31T13:30:11.967374" elapsed="0.001326"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-31T13:30:11.968832" elapsed="0.000091"/>
</return>
<msg time="2026-10-31T13:30:11.969225" 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-31T13:30:11.965285" elapsed="0.004006"/>
</kw>
<kw name="PostMsgGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:11.971077" 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-31T13:30:11.970508" elapsed="0.000947"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:30:11.972685" 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-31T13:30:11.971830" elapsed="0.000926"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:12.005122" 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-31T13:30:12.005207" 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-31T13:30:12.005595" level="INFO">/tmp/venv-k0id/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-31T13:30:12.005931" 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-31T13:30:11.973096" elapsed="0.032907"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:12.006165" elapsed="0.000074"/>
</return>
<msg time="2026-10-31T13:30:12.006524" 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-31T13:30:11.969666" elapsed="0.036923"/>
</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-31T13:30:12.006977" elapsed="0.001240"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:12.008946" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:12.008665" elapsed="0.000412"/>
</kw>
<doc>Verify Create Measurement Group successful</doc>
<tag>PMSH_24</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-31T13:30:11.964052" elapsed="0.045135"/>
</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-31T13:30:12.012416" 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-31T13:30:12.012757" 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-31T13:30:12.011981" elapsed="0.000842"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-31T13:30:12.014304" 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-31T13:30:12.013189" elapsed="0.001188"/>
</kw>
<return>
<value>${json_object}</value>
<status status="PASS" start="2026-10-31T13:30:12.014509" elapsed="0.000069"/>
</return>
<msg time="2026-10-31T13:30:12.014930" 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-31T13:30:12.011197" elapsed="0.003803"/>
</kw>
<kw name="PostMsgGrpCall">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:12.016703" 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-31T13:30:12.016225" elapsed="0.000868"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-31T13:30:12.018319" 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-31T13:30:12.017468" elapsed="0.000923"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:12.045668" 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-31T13:30:12.045758" 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-31T13:30:12.045988" level="INFO">/tmp/venv-k0id/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-31T13:30:12.046302" 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-31T13:30:12.018708" elapsed="0.027664"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:12.046534" elapsed="0.000075"/>
</return>
<msg time="2026-10-31T13:30:12.046946" 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-31T13:30:12.015377" elapsed="0.031637"/>
</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-31T13:30:12.047361" elapsed="0.001225"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:12.049246" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:12.049053" elapsed="0.000321"/>
</kw>
<doc>Verify Create Measurement Group successful</doc>
<tag>PMSH_25</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-31T13:30:12.009932" elapsed="0.039550"/>
</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-31T13:30:12.052730" 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-31T13:30:12.052249" elapsed="0.000885"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-31T13:30:12.081416" 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-31T13:30:12.081496" 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-31T13:30:12.081906" level="INFO">/tmp/venv-k0id/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-31T13:30:12.082277" 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-31T13:30:12.053452" elapsed="0.028896"/>
</kw>
<return>
<value>${resp}</value>
<status status="PASS" start="2026-10-31T13:30:12.082496" elapsed="0.000074"/>
</return>
<msg time="2026-10-31T13:30:12.082910" 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-31T13:30:12.051474" elapsed="0.031506"/>
</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-31T13:30:12.083302" elapsed="0.001225"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-31T13:30:12.085188" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-31T13:30:12.084994" elapsed="0.000323"/>
</kw>
<doc>Verify Delete Measurement Group successful</doc>
<tag>PMSH_26</tag>
<timeout value="1 minute"/>
<status status="PASS" start="2026-10-31T13:30:12.050227" elapsed="0.035197"/>
</test>
<doc>Testing PMSH functionality</doc>
<status status="PASS" start="2026-10-31T13:28:12.834004" elapsed="119.252695"/>
</suite>
<doc>PMSH Testcases</doc>
<status status="PASS" start="2026-10-31T13:28:12.797657" elapsed="119.291188"/>
</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-31T13:28:12.791819" 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-31T13:28:12.792224" 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-31T13:28:12.792414" 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-31T13:28:12.792631" 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-31T13:28:12.792839" 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-31T13:28:12.793041" 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-31T13:28:12.793243" 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-31T13:28:12.952352" 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-31T13:28:12.952769" 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-31T13:28:12.952944" 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-31T13:28:12.953119" 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>
