<?xml version="1.0" encoding="UTF-8" ?>
<testsuites>
  <testsuite errors="0" failures="1" id="0" name="" package="" skipped="1" tests="23" time="1037.384">
    <testcase classname="scripts.analytics.test_analytics.AnalyticsTestSanity" name="test_contrail_status[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]" time="0.615" />

    <testcase classname="scripts.analytics.test_analytics_basic.AnalyticsBasicTestSanity" name="test_verify_object_logs[ci_sanity,dev_sanity_dpdk,sanity,suite1]" time="47.533" />

    <testcase classname="scripts.db_manage.test_db_manage.DbManageTest" name="test_db_manage[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]" time="4.899" />

    <testcase classname="scripts.documentation.test_docs.DocumentationTest" name="test_analytics_docs[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]" time="0.322" />

    <testcase classname="scripts.documentation.test_docs.DocumentationTest" name="test_config_docs[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]" time="0.346" />

    <testcase classname="scripts.floatingip.test_floatingip_basic.FloatingipBasicTestSanity" name="test_floating_ip[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity,quick_sanity,sanity,suite1,vrouter_gw]" time="65.179" />

    <testcase classname="scripts.heat.test_heat.TestHeat" name="test_heat_stacks_list[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity]" time="1.177" />

    <testcase classname="scripts.neutron.test_crud.TestCRUD" name="test_network_tags_crud[ci_sanity,sanity]" time="5.760">
      <failure type="testtools.testresult.real._StringException">Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
  File &quot;/contrail-test/tcutils/wrappers.py&quot;, line 176, in wrapper
    raise TestFailed(&quot;\n &quot;.join(errmsg))
tcutils.cores.TestFailed: Test failed: KeyError
Python 3.9.25: /usr/bin/python3
Fri Aug 14 17:20:17 2026

A problem occurred in a Python script.  Here is the sequence of
function calls leading up to the error, in the order they occurred.

 /contrail-test/tcutils/wrappers.py in wrapper(self=&lt;scripts.neutron.test_crud.TestCRUD.test_network_tags_crud[ci_sanity,sanity] id=0x7f7cc8a88d30&gt;, *args=(), **kwargs={})
   78             log.info(&apos;Initial checks done. Running the testcase now&apos;)
   79             log.info(&apos;&apos;)
   80             result = function(self, *args, **kwargs)
   81             if self.inputs.upgrade:
   82                 pid = os.getpid()
result = None
function = &lt;function TestCRUD.test_network_tags_crud&gt;
self = &lt;scripts.neutron.test_crud.TestCRUD.test_network_tags_crud[ci_sanity,sanity] id=0x7f7cc8a88d30&gt;
args = ()
kwargs = {}

 /contrail-test/scripts/neutron/test_crud.py in test_network_tags_crud(self=&lt;scripts.neutron.test_crud.TestCRUD.test_network_tags_crud[ci_sanity,sanity] id=0x7f7cc8a88d30&gt;)
  626         # delete all
  627         c.remove_tag_all(&apos;networks&apos;, net_id)
  628         assert tags() == set(), &apos;remove_tag_all left tags behind&apos;
  629         self.log.info(&apos;neutron tag CRUD passed for %s&apos; % net_id)
  630     # end test_network_tags_crud
tags = &lt;function TestCRUD.test_network_tags_crud.&lt;locals&gt;.tags&gt;
builtinset = &lt;class &apos;set&apos;&gt;

 /contrail-test/scripts/neutron/test_crud.py in tags()
  598 
  599         def tags():
  600             return set(c.show_network(net_id)[&apos;network&apos;][&apos;tags&apos;])
  601 
  602         # set (replace-all)
builtinset = &lt;class &apos;set&apos;&gt;
c = &lt;neutronclient.v2_0.client.Client object&gt;
c.show_network = &lt;bound method Client.show_network of &lt;neutronclient.v2_0.client.Client object&gt;&gt;
net_id = &apos;d6410706-b676-41b9-87a6-dd66496ded84&apos;
KeyError: &apos;tags&apos;
    __cause__ = None
    __class__ = &lt;class &apos;KeyError&apos;&gt;
    __context__ = None
    __delattr__ = &lt;method-wrapper &apos;__delattr__&apos; of KeyError object&gt;
    __dict__ = {}
    __dir__ = &lt;built-in method __dir__ of KeyError object&gt;
    __doc__ = &apos;Mapping key not found.&apos;
    __eq__ = &lt;method-wrapper &apos;__eq__&apos; of KeyError object&gt;
    __format__ = &lt;built-in method __format__ of KeyError object&gt;
    __ge__ = &lt;method-wrapper &apos;__ge__&apos; of KeyError object&gt;
    __getattribute__ = &lt;method-wrapper &apos;__getattribute__&apos; of KeyError object&gt;
    __gt__ = &lt;method-wrapper &apos;__gt__&apos; of KeyError object&gt;
    __hash__ = &lt;method-wrapper &apos;__hash__&apos; of KeyError object&gt;
    __init__ = &lt;method-wrapper &apos;__init__&apos; of KeyError object&gt;
    __init_subclass__ = &lt;built-in method __init_subclass__ of type object&gt;
    __le__ = &lt;method-wrapper &apos;__le__&apos; of KeyError object&gt;
    __lt__ = &lt;method-wrapper &apos;__lt__&apos; of KeyError object&gt;
    __ne__ = &lt;method-wrapper &apos;__ne__&apos; of KeyError object&gt;
    __new__ = &lt;built-in method __new__ of type object&gt;
    __reduce__ = &lt;built-in method __reduce__ of KeyError object&gt;
    __reduce_ex__ = &lt;built-in method __reduce_ex__ of KeyError object&gt;
    __repr__ = &lt;method-wrapper &apos;__repr__&apos; of KeyError object&gt;
    __setattr__ = &lt;method-wrapper &apos;__setattr__&apos; of KeyError object&gt;
    __setstate__ = &lt;built-in method __setstate__ of KeyError object&gt;
    __sizeof__ = &lt;built-in method __sizeof__ of KeyError object&gt;
    __str__ = &lt;method-wrapper &apos;__str__&apos; of KeyError object&gt;
    __subclasshook__ = &lt;built-in method __subclasshook__ of type object&gt;
    __suppress_context__ = False
    __traceback__ = &lt;traceback object&gt;
    args = (&apos;tags&apos;,)
    with_traceback = &lt;built-in method with_traceback of KeyError object&gt;

The above is a description of an error in a Python program.  Here is
the original traceback:

Traceback (most recent call last):
  File &quot;/contrail-test/tcutils/wrappers.py&quot;, line 80, in wrapper
    result = function(self, *args, **kwargs)
  File &quot;/contrail-test/scripts/neutron/test_crud.py&quot;, line 628, in test_network_tags_crud
    assert tags() == set(), &apos;remove_tag_all left tags behind&apos;
  File &quot;/contrail-test/scripts/neutron/test_crud.py&quot;, line 600, in tags
    return set(c.show_network(net_id)[&apos;network&apos;][&apos;tags&apos;])
KeyError: &apos;tags&apos;

</failure>

    </testcase>

    <testcase classname="scripts.neutron.test_crud.TestCRUD" name="test_router_crud[ci_sanity,dev_sanity_dpdk,sanity]" time="6.683" />

    <testcase classname="scripts.neutron.test_ports.TestPorts" name="test_ports_bindings[ci_sanity,dev_sanity_dpdk,sanity]" time="2.816" />

    <testcase classname="scripts.neutron.test_ports.TestPorts" name="test_ports_specific_subnet_ip[ci_sanity,dev_sanity_dpdk,sanity]" time="57.916" />

    <testcase classname="scripts.neutron.test_routers.TestRouters" name="test_basic_router_behavior[ci_sanity,dev_sanity_dpdk,sanity]" time="77.902" />

    <testcase classname="scripts.neutron.test_routers_basic.TestRoutersBasic" name="test_basic_snat_behavior_without_external_connectivity[ci_sanity,dev_sanity_dpdk,sanity,suite1]" time="65.377" />

    <testcase classname="scripts.policy.test_policy.TestBasicPolicyIpv4v6" name="test_basic_policy_allow_deny[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity,quick_sanity,sanity,suite1]" time="6.687">
      <skipped>Disabling v6 tests for CI</skipped>

    </testcase>

    <testcase classname="scripts.policy.test_policy.TestBasicPolicyNegativeIpv4v6" name="test_remove_policy_with_ref[ci_sanity,sanity]" time="5.093" />

    <testcase classname="scripts.policy.test_policy_basic.TestBasicPolicy" name="test_basic_policy_allow_deny[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity,quick_sanity,sanity,suite1]" time="72.136" />

    <testcase classname="scripts.routing_policy.test_routing_policy.TestRP" name="test_rp_interface[ci_sanity,sanity]" time="66.927" />

    <testcase classname="scripts.svc_firewall.test_svc_fw.TestSvcRegr" name="test_svc_in_network_datapath[ci_sanity]" time="128.563" />

    <testcase classname="scripts.vdns.test_vdns_basic.TestvDNSBasic0" name="test_vdns_ping_same_vn[ci_sanity,sanity,suite1]" time="104.446" />

    <testcase classname="scripts.vm_regression.test_vm.TestBasicVMVNx" name="test_vm_file_trf_scp_tests[ci_contrail_go_kolla_ocata_sanity,ci_sanity,quick_sanity,vrouter_gw]" time="64.627" />

    <testcase classname="scripts.vm_regression.test_vm_basic.TestBasicVMVN" name="test_generic_link_local_service[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity,dev_sanity_dpdk,sanity,suite1]" time="45.568" />

    <testcase classname="scripts.vm_regression.test_vm_basic.TestBasicVMVN" name="test_metadata_service[cb_sanity,ci_sanity,sanity,suite1]" time="44.679" />

    <testcase classname="scripts.vm_regression.test_vm_basic.TestBasicVMVN" name="test_ping_within_vn_two_vms_two_different_subnets[ci_contrail_go_kolla_ocata_sanity,ci_sanity,sanity,suite1]" time="96.339" />

  </testsuite>
  <testsuite errors="0" failures="0" id="1" name="" package="" skipped="3" tests="7" time="155.203">
    <testcase classname="serial_scripts.rbac.test_rbac.TestRbac" name="test_perms2_global_share[ci_sanity,sanity]" time="101.839" />

    <testcase classname="serial_scripts.rbac.test_rbac_basic.TestRbacBasic" name="test_perms2_owner[ci_sanity,sanity,suite1]" time="13.569" />

    <testcase classname="serial_scripts.rbac.test_rbac_basic.TestRbacBasic" name="test_rbac_acl_different_roles[ci_sanity,sanity,suite1]" time="13.436" />

    <testcase classname="scripts.analytics.test_analytics.AnalyticsTestSanity" name="test_contrail_status[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]" time="0.495" />

    <testcase classname="serial_scripts.sriov.test_sriov.TestSriov" name="test_communication_between_two_sriov_vm[ci_sanity]" time="0.005">
      <skipped>Skipped as test is not supported if sriov_cluster=False </skipped>

    </testcase>

    <testcase classname="serial_scripts.sriov.test_sriov.TestSriov" name="test_communication_between_two_sriov_vm_with_large_mtu[ci_sanity]" time="0.003">
      <skipped>Skipped as test is not supported if sriov_cluster=False </skipped>

    </testcase>

    <testcase classname="serial_scripts.sriov.test_sriov.TestSriov" name="test_virtual_function_exhaustion_and_resue[ci_sanity]" time="0.003">
      <skipped>Skipped as test is not supported if sriov_cluster=False </skipped>

    </testcase>

  </testsuite>
</testsuites>
