<?xml version="1.0" encoding="UTF-8" ?>
<testsuites>
  <testsuite errors="0" failures="3" id="0" name="" package="" skipped="3" tests="7" time="171.495">
    <testcase classname="serial_scripts.rbac.test_rbac.TestRbac" name="test_perms2_global_share[ci_sanity,sanity]" time="11.071">
      <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: HTTPForbidden
Python 3.9.25: /usr/bin/python3
Thu Jun 18 15:09:38 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;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&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 TestRbac.test_perms2_global_share&gt;
self = &lt;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;
args = ()
kwargs = {}

 /contrail-test/serial_scripts/rbac/test_rbac.py in test_perms2_global_share(self=&lt;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;)
   60             assert self.get_vn_from_analytics(u1_p2_conn, vn.vn_fq_name)
   61             assert vn.vn_fq_name in self.list_vn_from_analytics(u1_p2_conn)
   62         vm = self.create_vm(connections=u1_p2_conn, vn_fixture=vn)
   63         assert vm, &apos;VM creation failed on shared VN&apos;
   64 
vm undefined
self = &lt;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;
self.create_vm = &lt;bound method BaseRbac.create_vm of &lt;serial_scri...lobal_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;&gt;
connections undefined
u1_p2_conn = &lt;common.connections.ContrailConnections object&gt;
vn_fixture undefined
vn = &lt;vn_test.VNFixture object&gt;

 /contrail-test/serial_scripts/rbac/base.py in create_vm(self=&lt;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;, vn_fixture=&lt;vn_test.VNFixture object&gt;, connections=&lt;common.connections.ContrailConnections object&gt;, verify=True)
  227     def create_vm(self, vn_fixture, connections=None, verify=True):
  228         connections = connections or self.connections
  229         vm_fixture = self.create_fixture(VMFixture, connections=connections,
  230                                          vn_obj=vn_fixture.obj,
  231                                          image_name=&apos;cirros&apos;,
vm_fixture undefined
self = &lt;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;
self.create_fixture = &lt;bound method BaseRbac.create_fixture of &lt;serial...lobal_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;&gt;
global VMFixture = &lt;class &apos;vm_test.VMFixture&apos;&gt;
connections = &lt;common.connections.ContrailConnections object&gt;
vn_obj undefined
vn_fixture = &lt;vn_test.VNFixture object&gt;
vn_fixture.obj = {&apos;network&apos;: {&apos;id&apos;: &apos;7191e445-eabd-4d94-b88b-898c...network-ipam&apos;]}], &apos;port_security_enabled&apos;: True}}
image_name undefined
admin_connections undefined
self.connections = &lt;common.connections.ContrailConnections object&gt;

 /contrail-test/serial_scripts/rbac/base.py in create_fixture(self=&lt;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;, fixturecls=&lt;class &apos;vm_test.VMFixture&apos;&gt;, **kwargs={&apos;admin_connections&apos;: &lt;common.connections.ContrailConnections object&gt;, &apos;connections&apos;: &lt;common.connections.ContrailConnections object&gt;, &apos;image_name&apos;: &apos;cirros&apos;, &apos;vn_obj&apos;: {&apos;network&apos;: {&apos;id&apos;: &apos;7191e445-eabd-4d94-b88b-898c...network-ipam&apos;]}], &apos;port_security_enabled&apos;: True}}})
  352     def create_fixture(self, fixturecls, **kwargs):
  353         try:
  354             return self.useFixture(fixturecls(**kwargs))
  355         except (PermissionDenied, neutron_forbidden):
  356             return None
self = &lt;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;
self.useFixture = &lt;bound method TestCase.useFixture of &lt;serial_scr...lobal_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;&gt;
fixturecls = &lt;class &apos;vm_test.VMFixture&apos;&gt;
kwargs = {&apos;admin_connections&apos;: &lt;common.connections.ContrailConnections object&gt;, &apos;connections&apos;: &lt;common.connections.ContrailConnections object&gt;, &apos;image_name&apos;: &apos;cirros&apos;, &apos;vn_obj&apos;: {&apos;network&apos;: {&apos;id&apos;: &apos;7191e445-eabd-4d94-b88b-898c...network-ipam&apos;]}], &apos;port_security_enabled&apos;: True}}}

 /usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=&lt;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;, fixture=&lt;VMFixture: ctest-TestRbac-92332116-34483730&gt;)
  754                 # Gather_details worked, so raise the exception setUp
  755                 # encountered.
  756                 reraise(*exc_info)
  757         else:
  758             self.addCleanup(fixture.cleanUp)
global reraise = &lt;function reraise&gt;
exc_info = (&lt;class &apos;glanceclient.exc.HTTPForbidden&apos;&gt;, HTTPForbidden(), &lt;traceback object&gt;)

 /usr/local/lib/python3.9/site-packages/testtools/_compat3x.py in reraise(exc_class=&lt;class &apos;glanceclient.exc.HTTPForbidden&apos;&gt;, exc_obj=HTTPForbidden(), exc_tb=&lt;traceback object&gt;, _marker=&lt;object object&gt;)
   13 
   14 def reraise(exc_class, exc_obj, exc_tb, _marker=object()):
   15     &quot;&quot;&quot;Re-raise an exception received from sys.exc_info() or similar.&quot;&quot;&quot;
   16     raise exc_obj.with_traceback(exc_tb)
   17 
exc_obj = HTTPForbidden()
exc_obj.with_traceback = &lt;built-in method with_traceback of HTTPForbidden object&gt;
exc_tb = &lt;traceback object&gt;

 /usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=&lt;serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fea4af890a0&gt;, fixture=&lt;VMFixture: ctest-TestRbac-92332116-34483730&gt;)
  729         &quot;&quot;&quot;
  730         try:
  731             fixture.setUp()
  732         except MultipleExceptions as e:
  733             if (fixtures is not None and
fixture = &lt;VMFixture: ctest-TestRbac-92332116-34483730&gt;
fixture.setUp = &lt;bound method VMFixture.setUp of &lt;VMFixture: ctest-TestRbac-92332116-34483730&gt;&gt;

 /contrail-test/fixtures/vm_test.py in setUp(self=&lt;VMFixture: ctest-TestRbac-92332116-34483730&gt;)
  191     def setUp(self):
  192         super(VMFixture, self).setUp()
  193         self.create()
  194 
  195     def create(self):
self = &lt;VMFixture: ctest-TestRbac-92332116-34483730&gt;
self.create = &lt;bound method VMFixture.create of &lt;VMFixture: ctest-TestRbac-92332116-34483730&gt;&gt;

 /contrail-test/fixtures/vm_test.py in create(self=&lt;VMFixture: ctest-TestRbac-92332116-34483730&gt;)
  231                         self.port_ids = port_ids
  232 
  233             objs = self.orch.create_vm(
  234                 project_uuid=self.project_id,
  235                 image_name=self.image_name,
objs undefined
self = &lt;VMFixture: ctest-TestRbac-92332116-34483730&gt;
self.orch = &lt;openstack.OpenstackOrchestrator object&gt;
self.orch.create_vm = &lt;bound method OpenstackOrchestrator.create_vm of &lt;openstack.OpenstackOrchestrator object&gt;&gt;
project_uuid undefined
self.project_id = &apos;6e51f31b-9fc7-4402-b9c8-5363db249e5a&apos;
image_name undefined
self.image_name = &apos;cirros&apos;
flavor undefined
self.flavor = &apos;contrail_flavor_tiny&apos;
vm_name undefined
self.vm_name = &apos;ctest-TestRbac-92332116-34483730&apos;
vn_objs undefined
self.vn_objs = [{&apos;network&apos;: {&apos;id&apos;: &apos;7191e445-eabd-4d94-b88b-898c...network-ipam&apos;]}], &apos;port_security_enabled&apos;: True}}]
node_name undefined
self.node_name = None
zone undefined
self.zone = None
sg_ids undefined
self.sg_ids = []
count undefined
self.count = 1
userdata undefined
self.userdata = None
port_ids undefined
self.port_ids = []
fixed_ips undefined
self.fixed_ips = []

 /contrail-test/fixtures/openstack.py in create_vm(self=&lt;openstack.OpenstackOrchestrator object&gt;, vm_name=&apos;ctest-TestRbac-92332116-34483730&apos;, image_name=&apos;cirros&apos;, vn_objs=[{&apos;network&apos;: {&apos;id&apos;: &apos;7191e445-eabd-4d94-b88b-898c...network-ipam&apos;]}], &apos;port_security_enabled&apos;: True}}], **kwargs={&apos;count&apos;: 1, &apos;fixed_ips&apos;: [], &apos;flavor&apos;: &apos;contrail_flavor_tiny&apos;, &apos;node_name&apos;: None, &apos;port_ids&apos;: [], &apos;project_uuid&apos;: &apos;6e51f31b-9fc7-4402-b9c8-5363db249e5a&apos;, &apos;sg_ids&apos;: [], &apos;userdata&apos;: None, &apos;zone&apos;: None})
  116            except Exception as e:
  117                vn_ids.append(vn.uuid) #For the case of VcenterVN obnect in vrouter gw case
  118        return self.nova_h.create_vm(vm_name=vm_name, image_name=image_name, vn_ids=vn_ids, **kwargs)
  119 
  120    def delete_vm(self, vm_obj, **kwargs):
self = &lt;openstack.OpenstackOrchestrator object&gt;
self.nova_h = &lt;nova_test.NovaHelper object&gt;
self.nova_h.create_vm = &lt;bound method NovaHelper.create_vm of &lt;nova_test.NovaHelper object&gt;&gt;
vm_name = &apos;ctest-TestRbac-92332116-34483730&apos;
image_name = &apos;cirros&apos;
vn_ids = [&apos;7191e445-eabd-4d94-b88b-898c7162b732&apos;]
kwargs = {&apos;count&apos;: 1, &apos;fixed_ips&apos;: [], &apos;flavor&apos;: &apos;contrail_flavor_tiny&apos;, &apos;node_name&apos;: None, &apos;port_ids&apos;: [], &apos;project_uuid&apos;: &apos;6e51f31b-9fc7-4402-b9c8-5363db249e5a&apos;, &apos;sg_ids&apos;: [], &apos;userdata&apos;: None, &apos;zone&apos;: None}

 /contrail-test/fixtures/nova_test.py in create_vm(self=&lt;nova_test.NovaHelper object&gt;, project_uuid=&apos;6e51f31b-9fc7-4402-b9c8-5363db249e5a&apos;, image_name=&apos;cirros&apos;, vm_name=&apos;ctest-TestRbac-92332116-34483730&apos;, vn_ids=[&apos;7191e445-eabd-4d94-b88b-898c7162b732&apos;], node_name=None, sg_ids=[], count=1, userdata=None, flavor=&apos;contrail_flavor_tiny&apos;, port_ids=[], fixed_ips=[], zone=None)
  580             zone, node_name = self.lb_node_zone(zone)
  581 
  582         image = self.get_image(image_name=image_name)
  583         if not flavor:
  584             flavor = self.get_default_image_flavor(image_name=image_name)
image undefined
self = &lt;nova_test.NovaHelper object&gt;
self.get_image = &lt;bound method NovaHelper.get_image of &lt;nova_test.NovaHelper object&gt;&gt;
image_name = &apos;cirros&apos;

 /contrail-test/fixtures/nova_test.py in get_image(self=&lt;nova_test.NovaHelper object&gt;, image_name=&apos;cirros&apos;)
  195         try:
  196             lock.acquire()
  197             got_image = self.find_image(image_name)
  198             if not got_image:
  199                 self._install_image(image_name=image_name)
got_image undefined
self = &lt;nova_test.NovaHelper object&gt;
self.find_image = &lt;bound method NovaHelper.find_image of &lt;nova_test.NovaHelper object&gt;&gt;
image_name = &apos;cirros&apos;

 /contrail-test/fixtures/nova_test.py in find_image(self=&lt;nova_test.NovaHelper object&gt;, image_name=&apos;cirros&apos;)
  182 
  183     def find_image(self, image_name):
  184         return self.glance_h.get_image(image_name=image_name)
  185     # end find_image
  186 
self = &lt;nova_test.NovaHelper object&gt;
self.glance_h = &lt;glance_test.GlanceHelper object&gt;
self.glance_h.get_image = &lt;bound method GlanceHelper.get_image of &lt;glance_test.GlanceHelper object&gt;&gt;
image_name = &apos;cirros&apos;

 /contrail-test/fixtures/glance_test.py in get_image(self=&lt;glance_test.GlanceHelper object&gt;, image_id=None, image_name=&apos;cirros&apos;, check_active=True)
   56     def get_image(self, image_id=None, image_name=None, check_active=True):
   57         if not image_id:
   58             for image in self.obj.images.list():
   59                 if image.name == image_name:
   60                     image_id = image.id
image undefined
self = &lt;glance_test.GlanceHelper object&gt;
self.obj = &lt;glanceclient.v2.client.Client object&gt;
self.obj.images = &lt;glanceclient.v2.images.Controller object&gt;
self.obj.images.list = &lt;BoundFunctionWrapper at 0x7fea49d3f280 for method&gt;

 /usr/local/lib/python3.9/site-packages/glanceclient/common/utils.py in __next__(self=&lt;GeneratorProxy at 0x7fea49defb40 for generator&gt;)
  579     # For Python 3 compatibility
  580     def __next__(self):
  581         return self._next()
  582 
  583     def __iter__(self):
self = &lt;GeneratorProxy at 0x7fea49defb40 for generator&gt;
self._next = &lt;bound method GeneratorProxy._next of &lt;GeneratorProxy at 0x7fea49defb40 for generator&gt;&gt;

 /usr/local/lib/python3.9/site-packages/glanceclient/common/utils.py in _next(self=&lt;GeneratorProxy at 0x7fea49defb40 for generator&gt;)
  568 
  569     def _next(self):
  570         obj, resp = next(self._self_wrapped)
  571         self._set_request_ids(resp)
  572         return obj
obj undefined
resp undefined
builtinnext = &lt;built-in function next&gt;
self = &lt;GeneratorProxy at 0x7fea49defb40 for generator&gt;
self._self_wrapped = &lt;generator object Controller.list&gt;

 /usr/local/lib/python3.9/site-packages/glanceclient/v2/images.py in list(self=&lt;glanceclient.v2.images.Controller object&gt;, **kwargs={})
  182             url = &apos;%s&amp;marker=%s&apos; % (url, kwargs[&apos;marker&apos;])
  183 
  184         for image, resp in paginate(url, page_size, limit):
  185             yield image, resp
  186 
image undefined
resp undefined
paginate = &lt;function Controller.list.&lt;locals&gt;.paginate&gt;
url = &apos;/v2/images?limit=20&apos;
page_size = 20
limit = None

 /usr/local/lib/python3.9/site-packages/glanceclient/v2/images.py in paginate(url=&apos;/v2/images?limit=20&apos;, page_size=20, limit=None)
  109                                                 &quot;limit=%s&quot; % limit)
  110 
  111                 resp, body = self.http_client.get(next_url, headers=req_id_hdr)
  112                 # NOTE(rsjethani): Store curent request id so that it can be
  113                 # used in subsequent requests. Refer bug #1525259
resp undefined
body undefined
self = &lt;glanceclient.v2.images.Controller object&gt;
self.http_client = &lt;glanceclient.common.http.SessionClient object&gt;
self.http_client.get = &lt;bound method Adapter.get of &lt;glanceclient.common.http.SessionClient object&gt;&gt;
next_url = &apos;/v2/images?limit=20&apos;
headers undefined
req_id_hdr = {&apos;Content-Type&apos;: &apos;application/octet-stream&apos;}

 /usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py in get(self=&lt;glanceclient.common.http.SessionClient object&gt;, url=&apos;/v2/images?limit=20&apos;, **kwargs={&apos;headers&apos;: {&apos;Content-Type&apos;: &apos;application/octet-stream&apos;}})
  384 
  385     def get(self, url, **kwargs):
  386         return self.request(url, &apos;GET&apos;, **kwargs)
  387 
  388     def head(self, url, **kwargs):
self = &lt;glanceclient.common.http.SessionClient object&gt;
self.request = &lt;bound method SessionClient.request of &lt;glanceclient.common.http.SessionClient object&gt;&gt;
url = &apos;/v2/images?limit=20&apos;
kwargs = {&apos;headers&apos;: {&apos;Content-Type&apos;: &apos;application/octet-stream&apos;}}

 /usr/local/lib/python3.9/site-packages/glanceclient/common/http.py in request(self=&lt;glanceclient.common.http.SessionClient object&gt;, url=&apos;/v2/images?limit=20&apos;, method=&apos;GET&apos;, **kwargs={&apos;raise_exc&apos;: False, &apos;stream&apos;: True})
  376             raise exc.CommunicationError(message=message)
  377 
  378         return self._handle_response(resp)
  379 
  380 
self = &lt;glanceclient.common.http.SessionClient object&gt;
self._handle_response = &lt;bound method _BaseHTTPClient._handle_response of &lt;glanceclient.common.http.SessionClient object&gt;&gt;
resp = &lt;Response [403]&gt;

 /usr/local/lib/python3.9/site-packages/glanceclient/common/http.py in _handle_response(self=&lt;glanceclient.common.http.SessionClient object&gt;, resp=&lt;Response [403]&gt;)
  124         if not resp.ok:
  125             LOG.debug(&quot;Request returned failure status %s.&quot;, resp.status_code)
  126             raise exc.from_response(resp, resp.content)
  127         elif (resp.status_code == requests.codes.MULTIPLE_CHOICES and
  128               resp.request.path_url != &apos;/versions&apos;):
global exc = &lt;module &apos;glanceclient.exc&apos; from &apos;/usr/local/lib/python3.9/site-packages/glanceclient/exc.py&apos;&gt;
exc.from_response = &lt;function from_response&gt;
resp = &lt;Response [403]&gt;
resp.content = b&apos;&lt;html&gt;\n &lt;head&gt;\n  &lt;title&gt;403 Forbidden&lt;/title...ges action.&lt;br /&gt;&lt;br /&gt;\n\n\n\n &lt;/body&gt;\n&lt;/html&gt;&apos;
HTTPForbidden: HTTP 403 Forbidden: You are not authorized to complete get_images action.
    __cause__ = None
    __class__ = &lt;class &apos;glanceclient.exc.HTTPForbidden&apos;&gt;
    __context__ = None
    __delattr__ = &lt;method-wrapper &apos;__delattr__&apos; of HTTPForbidden object&gt;
    __dict__ = {&apos;details&apos;: &apos;403 Forbidden: You are not authorized to complete get_images action.&apos;}
    __dir__ = &lt;built-in method __dir__ of HTTPForbidden object&gt;
    __doc__ = None
    __eq__ = &lt;method-wrapper &apos;__eq__&apos; of HTTPForbidden object&gt;
    __format__ = &lt;built-in method __format__ of HTTPForbidden object&gt;
    __ge__ = &lt;method-wrapper &apos;__ge__&apos; of HTTPForbidden object&gt;
    __getattribute__ = &lt;method-wrapper &apos;__getattribute__&apos; of HTTPForbidden object&gt;
    __gt__ = &lt;method-wrapper &apos;__gt__&apos; of HTTPForbidden object&gt;
    __hash__ = &lt;method-wrapper &apos;__hash__&apos; of HTTPForbidden object&gt;
    __init__ = &lt;bound method HTTPException.__init__ of HTTPForbidden()&gt;
    __init_subclass__ = &lt;built-in method __init_subclass__ of type object&gt;
    __le__ = &lt;method-wrapper &apos;__le__&apos; of HTTPForbidden object&gt;
    __lt__ = &lt;method-wrapper &apos;__lt__&apos; of HTTPForbidden object&gt;
    __module__ = &apos;glanceclient.exc&apos;
    __ne__ = &lt;method-wrapper &apos;__ne__&apos; of HTTPForbidden object&gt;
    __new__ = &lt;built-in method __new__ of type object&gt;
    __reduce__ = &lt;built-in method __reduce__ of HTTPForbidden object&gt;
    __reduce_ex__ = &lt;built-in method __reduce_ex__ of HTTPForbidden object&gt;
    __repr__ = &lt;method-wrapper &apos;__repr__&apos; of HTTPForbidden object&gt;
    __setattr__ = &lt;method-wrapper &apos;__setattr__&apos; of HTTPForbidden object&gt;
    __setstate__ = &lt;built-in method __setstate__ of HTTPForbidden object&gt;
    __sizeof__ = &lt;built-in method __sizeof__ of HTTPForbidden object&gt;
    __str__ = &lt;bound method HTTPException.__str__ of HTTPForbidden()&gt;
    __subclasshook__ = &lt;built-in method __subclasshook__ of type object&gt;
    __suppress_context__ = False
    __traceback__ = &lt;traceback object&gt;
    __weakref__ = None
    args = ()
    code = 403
    details = &apos;403 Forbidden: You are not authorized to complete get_images action.&apos;
    with_traceback = &lt;built-in method with_traceback of HTTPForbidden 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/serial_scripts/rbac/test_rbac.py&quot;, line 62, in test_perms2_global_share
    vm = self.create_vm(connections=u1_p2_conn, vn_fixture=vn)
  File &quot;/contrail-test/serial_scripts/rbac/base.py&quot;, line 229, in create_vm
    vm_fixture = self.create_fixture(VMFixture, connections=connections,
  File &quot;/contrail-test/serial_scripts/rbac/base.py&quot;, line 354, in create_fixture
    return self.useFixture(fixturecls(**kwargs))
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/testcase.py&quot;, line 756, in useFixture
    reraise(*exc_info)
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/_compat3x.py&quot;, line 16, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/testcase.py&quot;, line 731, in useFixture
    fixture.setUp()
  File &quot;/contrail-test/fixtures/vm_test.py&quot;, line 193, in setUp
    self.create()
  File &quot;/contrail-test/fixtures/vm_test.py&quot;, line 233, in create
    objs = self.orch.create_vm(
  File &quot;/contrail-test/fixtures/openstack.py&quot;, line 118, in create_vm
    return self.nova_h.create_vm(vm_name=vm_name, image_name=image_name, vn_ids=vn_ids, **kwargs)
  File &quot;/contrail-test/fixtures/nova_test.py&quot;, line 582, in create_vm
    image = self.get_image(image_name=image_name)
  File &quot;/contrail-test/fixtures/nova_test.py&quot;, line 197, in get_image
    got_image = self.find_image(image_name)
  File &quot;/contrail-test/fixtures/nova_test.py&quot;, line 184, in find_image
    return self.glance_h.get_image(image_name=image_name)
  File &quot;/contrail-test/fixtures/glance_test.py&quot;, line 58, in get_image
    for image in self.obj.images.list():
  File &quot;/usr/local/lib/python3.9/site-packages/glanceclient/common/utils.py&quot;, line 581, in __next__
    return self._next()
  File &quot;/usr/local/lib/python3.9/site-packages/glanceclient/common/utils.py&quot;, line 570, in _next
    obj, resp = next(self._self_wrapped)
  File &quot;/usr/local/lib/python3.9/site-packages/glanceclient/v2/images.py&quot;, line 184, in list
    for image, resp in paginate(url, page_size, limit):
  File &quot;/usr/local/lib/python3.9/site-packages/glanceclient/v2/images.py&quot;, line 111, in paginate
    resp, body = self.http_client.get(next_url, headers=req_id_hdr)
  File &quot;/usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py&quot;, line 386, in get
    return self.request(url, &apos;GET&apos;, **kwargs)
  File &quot;/usr/local/lib/python3.9/site-packages/glanceclient/common/http.py&quot;, line 378, in request
    return self._handle_response(resp)
  File &quot;/usr/local/lib/python3.9/site-packages/glanceclient/common/http.py&quot;, line 126, in _handle_response
    raise exc.from_response(resp, resp.content)
glanceclient.exc.HTTPForbidden: HTTP 403 Forbidden: You are not authorized to complete get_images action.

</failure>

    </testcase>

    <testcase classname="serial_scripts.rbac.test_rbac_basic.TestRbacBasic" name="test_perms2_owner[ci_sanity,sanity,suite1]" time="70.463">
      <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: ValueError
Python 3.9.25: /usr/bin/python3
Thu Jun 18 15:09:52 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;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&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 TestRbacBasic.test_perms2_owner&gt;
self = &lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;
args = ()
kwargs = {}

 /contrail-test/serial_scripts/rbac/test_rbac_basic.py in test_perms2_owner(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;)
  223                     ]
  224         domain_rbac = self.create_rbac_acl(rules=vn_rules, parent_type=&apos;domain&apos;)
  225         vn = self.create_vn(connections=u1_p1_conn, verify=False)
  226         assert vn, &apos;VN creation failed&apos;
  227         vn2 = self.create_vn(connections=u1_p2_conn, verify=False)
vn undefined
self = &lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;
self.create_vn = &lt;bound method BaseRbac.create_vn of &lt;serial_scri...wner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;&gt;
connections undefined
u1_p1_conn = &lt;common.connections.ContrailConnections object&gt;
verify undefined

 /contrail-test/serial_scripts/rbac/base.py in create_vn(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;, connections=&lt;common.connections.ContrailConnections object&gt;, verify=False, option=&apos;contrail&apos;, **kwargs={})
  214     def create_vn(self, connections=None, verify=True, option=&apos;contrail&apos;, **kwargs):
  215         connections = connections or self.connections
  216         vn_fixture = self.create_fixture(VNFixture, connections=connections,
  217                                          option=option, **kwargs)
  218         if vn_fixture and verify:
vn_fixture undefined
self = &lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;
self.create_fixture = &lt;bound method BaseRbac.create_fixture of &lt;serial...wner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;&gt;
global VNFixture = &lt;class &apos;vn_test.VNFixture&apos;&gt;
connections = &lt;common.connections.ContrailConnections object&gt;
option = &apos;contrail&apos;
kwargs = {}

 /contrail-test/serial_scripts/rbac/base.py in create_fixture(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;, fixturecls=&lt;class &apos;vn_test.VNFixture&apos;&gt;, **kwargs={&apos;connections&apos;: &lt;common.connections.ContrailConnections object&gt;, &apos;option&apos;: &apos;contrail&apos;})
  352     def create_fixture(self, fixturecls, **kwargs):
  353         try:
  354             return self.useFixture(fixturecls(**kwargs))
  355         except (PermissionDenied, neutron_forbidden):
  356             return None
self = &lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;
self.useFixture = &lt;bound method TestCase.useFixture of &lt;serial_scr...wner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;&gt;
fixturecls = &lt;class &apos;vn_test.VNFixture&apos;&gt;
kwargs = {&apos;connections&apos;: &lt;common.connections.ContrailConnections object&gt;, &apos;option&apos;: &apos;contrail&apos;}

 /usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;, fixture=&lt;vn_test.VNFixture object&gt;)
  754                 # Gather_details worked, so raise the exception setUp
  755                 # encountered.
  756                 reraise(*exc_info)
  757         else:
  758             self.addCleanup(fixture.cleanUp)
global reraise = &lt;function reraise&gt;
exc_info = (&lt;class &apos;ValueError&apos;&gt;, ValueError(&apos;could not find ctest-TestRbacBasic-55758903-66469524 in orchestrator&apos;), &lt;traceback object&gt;)

 /usr/local/lib/python3.9/site-packages/testtools/_compat3x.py in reraise(exc_class=&lt;class &apos;ValueError&apos;&gt;, exc_obj=ValueError(&apos;could not find ctest-TestRbacBasic-55758903-66469524 in orchestrator&apos;), exc_tb=&lt;traceback object&gt;, _marker=&lt;object object&gt;)
   13 
   14 def reraise(exc_class, exc_obj, exc_tb, _marker=object()):
   15     &quot;&quot;&quot;Re-raise an exception received from sys.exc_info() or similar.&quot;&quot;&quot;
   16     raise exc_obj.with_traceback(exc_tb)
   17 
exc_obj = ValueError(&apos;could not find ctest-TestRbacBasic-55758903-66469524 in orchestrator&apos;)
exc_obj.with_traceback = &lt;built-in method with_traceback of ValueError object&gt;
exc_tb = &lt;traceback object&gt;

 /usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fea4af89910&gt;, fixture=&lt;vn_test.VNFixture object&gt;)
  729         &quot;&quot;&quot;
  730         try:
  731             fixture.setUp()
  732         except MultipleExceptions as e:
  733             if (fixtures is not None and
fixture = &lt;vn_test.VNFixture object&gt;
fixture.setUp = &lt;bound method VNFixture.setUp of &lt;vn_test.VNFixture object&gt;&gt;

 /contrail-test/fixtures/vn_test.py in setUp(self=&lt;vn_test.VNFixture object&gt;)
  437     def setUp(self):
  438         super(VNFixture, self).setUp()
  439         self.create()
  440 
  441     def create(self):
self = &lt;vn_test.VNFixture object&gt;
self.create = &lt;bound method VNFixture.create of &lt;vn_test.VNFixture object&gt;&gt;

 /contrail-test/fixtures/vn_test.py in create(self=&lt;vn_test.VNFixture object&gt;)
  448             self.webui.create_vn(self)
  449         elif (self.option == &apos;contrail&apos;):
  450             self._create_vn_api(self.vn_name, self.project_obj)
  451         else:
  452             self._create_vn_orch()
self = &lt;vn_test.VNFixture object&gt;
self._create_vn_api = &lt;bound method VNFixture._create_vn_api of &lt;vn_test.VNFixture object&gt;&gt;
self.vn_name = &apos;ctest-TestRbacBasic-55758903-66469524&apos;
self.project_obj = &lt;vnc_api.gen.resource_client.Project object&gt;

 /contrail-test/fixtures/vn_test.py in _create_vn_api(self=&lt;vn_test.VNFixture object&gt;, vn_name=&apos;ctest-TestRbacBasic-55758903-66469524&apos;, project_obj=&lt;vnc_api.gen.resource_client.Project object&gt;)
  427         self.obj = self._orch_call(&apos;get_vn_obj_from_id&apos;, self.uuid)
  428         if self.obj is None:
  429             raise ValueError(&apos;could not find %s in orchestrator&apos; % (self.vn_name))
  430 
  431     def get_api_obj(self):
builtinValueError = &lt;class &apos;ValueError&apos;&gt;
self = &lt;vn_test.VNFixture object&gt;
self.vn_name = &apos;ctest-TestRbacBasic-55758903-66469524&apos;
ValueError: could not find ctest-TestRbacBasic-55758903-66469524 in orchestrator
    __cause__ = None
    __class__ = &lt;class &apos;ValueError&apos;&gt;
    __context__ = None
    __delattr__ = &lt;method-wrapper &apos;__delattr__&apos; of ValueError object&gt;
    __dict__ = {}
    __dir__ = &lt;built-in method __dir__ of ValueError object&gt;
    __doc__ = &apos;Inappropriate argument value (of correct type).&apos;
    __eq__ = &lt;method-wrapper &apos;__eq__&apos; of ValueError object&gt;
    __format__ = &lt;built-in method __format__ of ValueError object&gt;
    __ge__ = &lt;method-wrapper &apos;__ge__&apos; of ValueError object&gt;
    __getattribute__ = &lt;method-wrapper &apos;__getattribute__&apos; of ValueError object&gt;
    __gt__ = &lt;method-wrapper &apos;__gt__&apos; of ValueError object&gt;
    __hash__ = &lt;method-wrapper &apos;__hash__&apos; of ValueError object&gt;
    __init__ = &lt;method-wrapper &apos;__init__&apos; of ValueError object&gt;
    __init_subclass__ = &lt;built-in method __init_subclass__ of type object&gt;
    __le__ = &lt;method-wrapper &apos;__le__&apos; of ValueError object&gt;
    __lt__ = &lt;method-wrapper &apos;__lt__&apos; of ValueError object&gt;
    __ne__ = &lt;method-wrapper &apos;__ne__&apos; of ValueError object&gt;
    __new__ = &lt;built-in method __new__ of type object&gt;
    __reduce__ = &lt;built-in method __reduce__ of ValueError object&gt;
    __reduce_ex__ = &lt;built-in method __reduce_ex__ of ValueError object&gt;
    __repr__ = &lt;method-wrapper &apos;__repr__&apos; of ValueError object&gt;
    __setattr__ = &lt;method-wrapper &apos;__setattr__&apos; of ValueError object&gt;
    __setstate__ = &lt;built-in method __setstate__ of ValueError object&gt;
    __sizeof__ = &lt;built-in method __sizeof__ of ValueError object&gt;
    __str__ = &lt;method-wrapper &apos;__str__&apos; of ValueError object&gt;
    __subclasshook__ = &lt;built-in method __subclasshook__ of type object&gt;
    __suppress_context__ = False
    __traceback__ = &lt;traceback object&gt;
    args = (&apos;could not find ctest-TestRbacBasic-55758903-66469524 in orchestrator&apos;,)
    with_traceback = &lt;built-in method with_traceback of ValueError 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/serial_scripts/rbac/test_rbac_basic.py&quot;, line 225, in test_perms2_owner
    vn = self.create_vn(connections=u1_p1_conn, verify=False)
  File &quot;/contrail-test/serial_scripts/rbac/base.py&quot;, line 216, in create_vn
    vn_fixture = self.create_fixture(VNFixture, connections=connections,
  File &quot;/contrail-test/serial_scripts/rbac/base.py&quot;, line 354, in create_fixture
    return self.useFixture(fixturecls(**kwargs))
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/testcase.py&quot;, line 756, in useFixture
    reraise(*exc_info)
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/_compat3x.py&quot;, line 16, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/testcase.py&quot;, line 731, in useFixture
    fixture.setUp()
  File &quot;/contrail-test/fixtures/vn_test.py&quot;, line 439, in setUp
    self.create()
  File &quot;/contrail-test/fixtures/vn_test.py&quot;, line 450, in create
    self._create_vn_api(self.vn_name, self.project_obj)
  File &quot;/contrail-test/fixtures/vn_test.py&quot;, line 429, in _create_vn_api
    raise ValueError(&apos;could not find %s in orchestrator&apos; % (self.vn_name))
ValueError: could not find ctest-TestRbacBasic-55758903-66469524 in orchestrator

</failure>

    </testcase>

    <testcase classname="serial_scripts.rbac.test_rbac_basic.TestRbacBasic" name="test_rbac_acl_different_roles[ci_sanity,sanity,suite1]" time="3.795">
      <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: ValueError
Python 3.9.25: /usr/bin/python3
Thu Jun 18 15:11:01 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;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&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 TestRbacBasic.test_rbac_acl_different_roles&gt;
self = &lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;
args = ()
kwargs = {}

 /contrail-test/serial_scripts/rbac/test_rbac_basic.py in test_rbac_acl_different_roles(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;)
   45                     ]
   46         proj_rbac = self.create_rbac_acl(rules=vn_rules)
   47         vn = self.create_vn(connections=user1_conn)
   48         assert vn, &apos;VN creation failed&apos;
   49         assert not self.create_st(connections=user1_conn), &apos;ST creation should have failed&apos;
vn undefined
self = &lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;
self.create_vn = &lt;bound method BaseRbac.create_vn of &lt;serial_scri...oles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;&gt;
connections undefined
user1_conn = &lt;common.connections.ContrailConnections object&gt;

 /contrail-test/serial_scripts/rbac/base.py in create_vn(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;, connections=&lt;common.connections.ContrailConnections object&gt;, verify=True, option=&apos;contrail&apos;, **kwargs={})
  214     def create_vn(self, connections=None, verify=True, option=&apos;contrail&apos;, **kwargs):
  215         connections = connections or self.connections
  216         vn_fixture = self.create_fixture(VNFixture, connections=connections,
  217                                          option=option, **kwargs)
  218         if vn_fixture and verify:
vn_fixture undefined
self = &lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;
self.create_fixture = &lt;bound method BaseRbac.create_fixture of &lt;serial...oles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;&gt;
global VNFixture = &lt;class &apos;vn_test.VNFixture&apos;&gt;
connections = &lt;common.connections.ContrailConnections object&gt;
option = &apos;contrail&apos;
kwargs = {}

 /contrail-test/serial_scripts/rbac/base.py in create_fixture(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;, fixturecls=&lt;class &apos;vn_test.VNFixture&apos;&gt;, **kwargs={&apos;connections&apos;: &lt;common.connections.ContrailConnections object&gt;, &apos;option&apos;: &apos;contrail&apos;})
  352     def create_fixture(self, fixturecls, **kwargs):
  353         try:
  354             return self.useFixture(fixturecls(**kwargs))
  355         except (PermissionDenied, neutron_forbidden):
  356             return None
self = &lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;
self.useFixture = &lt;bound method TestCase.useFixture of &lt;serial_scr...oles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;&gt;
fixturecls = &lt;class &apos;vn_test.VNFixture&apos;&gt;
kwargs = {&apos;connections&apos;: &lt;common.connections.ContrailConnections object&gt;, &apos;option&apos;: &apos;contrail&apos;}

 /usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;, fixture=&lt;vn_test.VNFixture object&gt;)
  754                 # Gather_details worked, so raise the exception setUp
  755                 # encountered.
  756                 reraise(*exc_info)
  757         else:
  758             self.addCleanup(fixture.cleanUp)
global reraise = &lt;function reraise&gt;
exc_info = (&lt;class &apos;ValueError&apos;&gt;, ValueError(&apos;could not find ctest-TestRbacBasic-46288346-09478129 in orchestrator&apos;), &lt;traceback object&gt;)

 /usr/local/lib/python3.9/site-packages/testtools/_compat3x.py in reraise(exc_class=&lt;class &apos;ValueError&apos;&gt;, exc_obj=ValueError(&apos;could not find ctest-TestRbacBasic-46288346-09478129 in orchestrator&apos;), exc_tb=&lt;traceback object&gt;, _marker=&lt;object object&gt;)
   13 
   14 def reraise(exc_class, exc_obj, exc_tb, _marker=object()):
   15     &quot;&quot;&quot;Re-raise an exception received from sys.exc_info() or similar.&quot;&quot;&quot;
   16     raise exc_obj.with_traceback(exc_tb)
   17 
exc_obj = ValueError(&apos;could not find ctest-TestRbacBasic-46288346-09478129 in orchestrator&apos;)
exc_obj.with_traceback = &lt;built-in method with_traceback of ValueError object&gt;
exc_tb = &lt;traceback object&gt;

 /usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=&lt;serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fea4af89a60&gt;, fixture=&lt;vn_test.VNFixture object&gt;)
  729         &quot;&quot;&quot;
  730         try:
  731             fixture.setUp()
  732         except MultipleExceptions as e:
  733             if (fixtures is not None and
fixture = &lt;vn_test.VNFixture object&gt;
fixture.setUp = &lt;bound method VNFixture.setUp of &lt;vn_test.VNFixture object&gt;&gt;

 /contrail-test/fixtures/vn_test.py in setUp(self=&lt;vn_test.VNFixture object&gt;)
  437     def setUp(self):
  438         super(VNFixture, self).setUp()
  439         self.create()
  440 
  441     def create(self):
self = &lt;vn_test.VNFixture object&gt;
self.create = &lt;bound method VNFixture.create of &lt;vn_test.VNFixture object&gt;&gt;

 /contrail-test/fixtures/vn_test.py in create(self=&lt;vn_test.VNFixture object&gt;)
  448             self.webui.create_vn(self)
  449         elif (self.option == &apos;contrail&apos;):
  450             self._create_vn_api(self.vn_name, self.project_obj)
  451         else:
  452             self._create_vn_orch()
self = &lt;vn_test.VNFixture object&gt;
self._create_vn_api = &lt;bound method VNFixture._create_vn_api of &lt;vn_test.VNFixture object&gt;&gt;
self.vn_name = &apos;ctest-TestRbacBasic-46288346-09478129&apos;
self.project_obj = &lt;vnc_api.gen.resource_client.Project object&gt;

 /contrail-test/fixtures/vn_test.py in _create_vn_api(self=&lt;vn_test.VNFixture object&gt;, vn_name=&apos;ctest-TestRbacBasic-46288346-09478129&apos;, project_obj=&lt;vnc_api.gen.resource_client.Project object&gt;)
  427         self.obj = self._orch_call(&apos;get_vn_obj_from_id&apos;, self.uuid)
  428         if self.obj is None:
  429             raise ValueError(&apos;could not find %s in orchestrator&apos; % (self.vn_name))
  430 
  431     def get_api_obj(self):
builtinValueError = &lt;class &apos;ValueError&apos;&gt;
self = &lt;vn_test.VNFixture object&gt;
self.vn_name = &apos;ctest-TestRbacBasic-46288346-09478129&apos;
ValueError: could not find ctest-TestRbacBasic-46288346-09478129 in orchestrator
    __cause__ = None
    __class__ = &lt;class &apos;ValueError&apos;&gt;
    __context__ = None
    __delattr__ = &lt;method-wrapper &apos;__delattr__&apos; of ValueError object&gt;
    __dict__ = {}
    __dir__ = &lt;built-in method __dir__ of ValueError object&gt;
    __doc__ = &apos;Inappropriate argument value (of correct type).&apos;
    __eq__ = &lt;method-wrapper &apos;__eq__&apos; of ValueError object&gt;
    __format__ = &lt;built-in method __format__ of ValueError object&gt;
    __ge__ = &lt;method-wrapper &apos;__ge__&apos; of ValueError object&gt;
    __getattribute__ = &lt;method-wrapper &apos;__getattribute__&apos; of ValueError object&gt;
    __gt__ = &lt;method-wrapper &apos;__gt__&apos; of ValueError object&gt;
    __hash__ = &lt;method-wrapper &apos;__hash__&apos; of ValueError object&gt;
    __init__ = &lt;method-wrapper &apos;__init__&apos; of ValueError object&gt;
    __init_subclass__ = &lt;built-in method __init_subclass__ of type object&gt;
    __le__ = &lt;method-wrapper &apos;__le__&apos; of ValueError object&gt;
    __lt__ = &lt;method-wrapper &apos;__lt__&apos; of ValueError object&gt;
    __ne__ = &lt;method-wrapper &apos;__ne__&apos; of ValueError object&gt;
    __new__ = &lt;built-in method __new__ of type object&gt;
    __reduce__ = &lt;built-in method __reduce__ of ValueError object&gt;
    __reduce_ex__ = &lt;built-in method __reduce_ex__ of ValueError object&gt;
    __repr__ = &lt;method-wrapper &apos;__repr__&apos; of ValueError object&gt;
    __setattr__ = &lt;method-wrapper &apos;__setattr__&apos; of ValueError object&gt;
    __setstate__ = &lt;built-in method __setstate__ of ValueError object&gt;
    __sizeof__ = &lt;built-in method __sizeof__ of ValueError object&gt;
    __str__ = &lt;method-wrapper &apos;__str__&apos; of ValueError object&gt;
    __subclasshook__ = &lt;built-in method __subclasshook__ of type object&gt;
    __suppress_context__ = False
    __traceback__ = &lt;traceback object&gt;
    args = (&apos;could not find ctest-TestRbacBasic-46288346-09478129 in orchestrator&apos;,)
    with_traceback = &lt;built-in method with_traceback of ValueError 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/serial_scripts/rbac/test_rbac_basic.py&quot;, line 47, in test_rbac_acl_different_roles
    vn = self.create_vn(connections=user1_conn)
  File &quot;/contrail-test/serial_scripts/rbac/base.py&quot;, line 216, in create_vn
    vn_fixture = self.create_fixture(VNFixture, connections=connections,
  File &quot;/contrail-test/serial_scripts/rbac/base.py&quot;, line 354, in create_fixture
    return self.useFixture(fixturecls(**kwargs))
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/testcase.py&quot;, line 756, in useFixture
    reraise(*exc_info)
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/_compat3x.py&quot;, line 16, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/testcase.py&quot;, line 731, in useFixture
    fixture.setUp()
  File &quot;/contrail-test/fixtures/vn_test.py&quot;, line 439, in setUp
    self.create()
  File &quot;/contrail-test/fixtures/vn_test.py&quot;, line 450, in create
    self._create_vn_api(self.vn_name, self.project_obj)
  File &quot;/contrail-test/fixtures/vn_test.py&quot;, line 429, in _create_vn_api
    raise ValueError(&apos;could not find %s in orchestrator&apos; % (self.vn_name))
ValueError: could not find ctest-TestRbacBasic-46288346-09478129 in orchestrator

</failure>

    </testcase>

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

    <testcase classname="serial_scripts.sriov.test_sriov.TestSriov" name="test_communication_between_two_sriov_vm[ci_sanity]" time="0.004">
      <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.002">
      <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.002">
      <skipped>Skipped as test is not supported if sriov_cluster=False </skipped>

    </testcase>

  </testsuite>
  <testsuite errors="0" failures="1" id="1" name="" package="" skipped="1" tests="22" time="574.331">
    <testcase classname="scripts.analytics.test_analytics.AnalyticsTestSanity" name="test_contrail_status[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]" time="0.576" />

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

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

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

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

    <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="34.759" />

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

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

    <testcase classname="scripts.neutron.test_ports.TestPorts" name="test_ports_bindings[ci_sanity,dev_sanity_dpdk,sanity]" time="1.698">
      <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: TypeError
Python 3.9.25: /usr/bin/python3
Thu Jun 18 15:01:25 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_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7f807b27f070&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 TestPorts.test_ports_bindings&gt;
self = &lt;scripts.neutron.test_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7f807b27f070&gt;
args = ()
kwargs = {}

 /contrail-test/scripts/neutron/test_ports.py in test_ports_bindings(self=&lt;scripts.neutron.test_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7f807b27f070&gt;)
 1202         bind_dict = {&apos;foo&apos;: &apos;bar&apos;}
 1203         vn = self.create_vn()
 1204         port = self.useFixture(PortFixture(vn.uuid, connections=self.connections,
 1205                                binding_profile=bind_dict))
 1206         assert port.verify_on_setup(), &apos;VMI %s verification has failed&apos;%port.uuid
port undefined
self = &lt;scripts.neutron.test_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7f807b27f070&gt;
self.useFixture = &lt;bound method TestCase.useFixture of &lt;scripts.ne...anity,dev_sanity_dpdk,sanity] id=0x7f807b27f070&gt;&gt;
global PortFixture = &lt;class &apos;port_fixture.PortFixture&apos;&gt;
vn = &lt;vn_test.VNFixture object&gt;
vn.uuid = &apos;a8ec7dc0-3ec2-425c-b1de-565bb6c15b55&apos;
connections undefined
self.connections = &lt;common.connections.ContrailConnections object&gt;
binding_profile undefined
bind_dict = {&apos;foo&apos;: &apos;bar&apos;}

 /usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=&lt;scripts.neutron.test_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7f807b27f070&gt;, fixture=&lt;port_fixture.PortFixture object&gt;)
  754                 # Gather_details worked, so raise the exception setUp
  755                 # encountered.
  756                 reraise(*exc_info)
  757         else:
  758             self.addCleanup(fixture.cleanUp)
global reraise = &lt;function reraise&gt;
exc_info = (&lt;class &apos;TypeError&apos;&gt;, TypeError(&quot;&apos;NoneType&apos; object is not subscriptable&quot;), &lt;traceback object&gt;)

 /usr/local/lib/python3.9/site-packages/testtools/_compat3x.py in reraise(exc_class=&lt;class &apos;TypeError&apos;&gt;, exc_obj=TypeError(&quot;&apos;NoneType&apos; object is not subscriptable&quot;), exc_tb=&lt;traceback object&gt;, _marker=&lt;object object&gt;)
   13 
   14 def reraise(exc_class, exc_obj, exc_tb, _marker=object()):
   15     &quot;&quot;&quot;Re-raise an exception received from sys.exc_info() or similar.&quot;&quot;&quot;
   16     raise exc_obj.with_traceback(exc_tb)
   17 
exc_obj = TypeError(&quot;&apos;NoneType&apos; object is not subscriptable&quot;)
exc_obj.with_traceback = &lt;built-in method with_traceback of TypeError object&gt;
exc_tb = &lt;traceback object&gt;

 /usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=&lt;scripts.neutron.test_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7f807b27f070&gt;, fixture=&lt;port_fixture.PortFixture object&gt;)
  729         &quot;&quot;&quot;
  730         try:
  731             fixture.setUp()
  732         except MultipleExceptions as e:
  733             if (fixtures is not None and
fixture = &lt;port_fixture.PortFixture object&gt;
fixture.setUp = &lt;bound method PortFixture.setUp of &lt;port_fixture.PortFixture object&gt;&gt;

 /contrail-test/fixtures/port_fixture.py in setUp(self=&lt;port_fixture.PortFixture object&gt;)
   88                 self.vn_obj = self.vnc_api_h.virtual_network_read(id=self.vn_id)
   89                 if self.api_type == &apos;neutron&apos;:
   90                     self._neutron_create_port()
   91                 else:
   92                     self._contrail_create_port()
self = &lt;port_fixture.PortFixture object&gt;
self._neutron_create_port = &lt;bound method PortFixture._neutron_create_port of &lt;port_fixture.PortFixture object&gt;&gt;

 /contrail-test/fixtures/port_fixture.py in _neutron_create_port(self=&lt;port_fixture.PortFixture object&gt;)
  108             binding_profile=self.binding_profile)
  109         self.neutron_obj = neutron_obj
  110         self.uuid = neutron_obj[&apos;id&apos;]
  111 
  112     def _contrail_create_port(self):
self = &lt;port_fixture.PortFixture object&gt;
self.uuid = None
neutron_obj = None
TypeError: &apos;NoneType&apos; object is not subscriptable
    __cause__ = None
    __class__ = &lt;class &apos;TypeError&apos;&gt;
    __context__ = NoIdError(&apos;Error: oper 1 url /fqname-to-id body ...s-20621707\&apos;, \&apos;ctest-vmi-89121018\&apos;] not found&apos;)
    __delattr__ = &lt;method-wrapper &apos;__delattr__&apos; of TypeError object&gt;
    __dict__ = {}
    __dir__ = &lt;built-in method __dir__ of TypeError object&gt;
    __doc__ = &apos;Inappropriate argument type.&apos;
    __eq__ = &lt;method-wrapper &apos;__eq__&apos; of TypeError object&gt;
    __format__ = &lt;built-in method __format__ of TypeError object&gt;
    __ge__ = &lt;method-wrapper &apos;__ge__&apos; of TypeError object&gt;
    __getattribute__ = &lt;method-wrapper &apos;__getattribute__&apos; of TypeError object&gt;
    __gt__ = &lt;method-wrapper &apos;__gt__&apos; of TypeError object&gt;
    __hash__ = &lt;method-wrapper &apos;__hash__&apos; of TypeError object&gt;
    __init__ = &lt;method-wrapper &apos;__init__&apos; of TypeError object&gt;
    __init_subclass__ = &lt;built-in method __init_subclass__ of type object&gt;
    __le__ = &lt;method-wrapper &apos;__le__&apos; of TypeError object&gt;
    __lt__ = &lt;method-wrapper &apos;__lt__&apos; of TypeError object&gt;
    __ne__ = &lt;method-wrapper &apos;__ne__&apos; of TypeError object&gt;
    __new__ = &lt;built-in method __new__ of type object&gt;
    __reduce__ = &lt;built-in method __reduce__ of TypeError object&gt;
    __reduce_ex__ = &lt;built-in method __reduce_ex__ of TypeError object&gt;
    __repr__ = &lt;method-wrapper &apos;__repr__&apos; of TypeError object&gt;
    __setattr__ = &lt;method-wrapper &apos;__setattr__&apos; of TypeError object&gt;
    __setstate__ = &lt;built-in method __setstate__ of TypeError object&gt;
    __sizeof__ = &lt;built-in method __sizeof__ of TypeError object&gt;
    __str__ = &lt;method-wrapper &apos;__str__&apos; of TypeError object&gt;
    __subclasshook__ = &lt;built-in method __subclasshook__ of type object&gt;
    __suppress_context__ = False
    __traceback__ = &lt;traceback object&gt;
    args = (&quot;&apos;NoneType&apos; object is not subscriptable&quot;,)
    with_traceback = &lt;built-in method with_traceback of TypeError 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/fixtures/port_fixture.py&quot;, line 85, in setUp
    obj = self.vnc_h.read_virtual_machine_interface(fq_name=self.fq_name)
  File &quot;/contrail-test/fixtures/contrailapi.py&quot;, line 3169, in read_virtual_machine_interface
    return self._vnc.virtual_machine_interface_read(**kwargs)
  File &quot;/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py&quot;, line 52, in wrapper
    return func(self, *args, **kwargs)
  File &quot;/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py&quot;, line 700, in _object_read
    (args_ok, result) = self._read_args_to_id(
  File &quot;/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py&quot;, line 1114, in _read_args_to_id
    return (True, self.fq_name_to_id(res_type, fq_name))
  File &quot;/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py&quot;, line 52, in wrapper
    return func(self, *args, **kwargs)
  File &quot;/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py&quot;, line 1395, in fq_name_to_id
    content = self._request_server(OP_POST, uri, data=json_body)
  File &quot;/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py&quot;, line 1126, in _request_server
    return self._request(
  File &quot;/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py&quot;, line 1180, in _request
    raise NoIdError(&apos;Error: oper %s url %s body %s response %s&apos;
vnc_api.exceptions.NoIdError: Unknown id: Error: oper 1 url /fqname-to-id body {&quot;type&quot;: &quot;virtual-machine-interface&quot;, &quot;fq_name&quot;: [&quot;default-domain&quot;, &quot;ctest-TestPorts-20621707&quot;, &quot;ctest-vmi-89121018&quot;]} response Name [&apos;default-domain&apos;, &apos;ctest-TestPorts-20621707&apos;, &apos;ctest-vmi-89121018&apos;] not found

During handling of the above exception, another exception occurred:

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_ports.py&quot;, line 1204, in test_ports_bindings
    port = self.useFixture(PortFixture(vn.uuid, connections=self.connections,
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/testcase.py&quot;, line 756, in useFixture
    reraise(*exc_info)
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/_compat3x.py&quot;, line 16, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File &quot;/usr/local/lib/python3.9/site-packages/testtools/testcase.py&quot;, line 731, in useFixture
    fixture.setUp()
  File &quot;/contrail-test/fixtures/port_fixture.py&quot;, line 90, in setUp
    self._neutron_create_port()
  File &quot;/contrail-test/fixtures/port_fixture.py&quot;, line 110, in _neutron_create_port
    self.uuid = neutron_obj[&apos;id&apos;]
TypeError: &apos;NoneType&apos; object is not subscriptable

</failure>

    </testcase>

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

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

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

    <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="5.514">
      <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="4.537" />

    <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="39.825" />

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

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

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

    <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="35.571" />

    <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="24.354" />

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

    <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="43.041" />

  </testsuite>
</testsuites>
