<?xml version="1.0" encoding="UTF-8" ?>
<testsuites>
  <testsuite errors="0" failures="1" id="0" name="" package="" skipped="3" tests="7" time="51.530">
    <testcase classname="serial_scripts.rbac.test_rbac.TestRbac" name="test_perms2_global_share[ci_sanity,sanity]" time="10.006">
      <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: Forbidden
Python 3.9.25: /usr/bin/python3
Thu Jun 18 18:34:03 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=0x7f63a6b880a0&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=0x7f63a6b880a0&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=0x7f63a6b880a0&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=0x7f63a6b880a0&gt;
self.create_vm = &lt;bound method BaseRbac.create_vm of &lt;serial_scri...lobal_share[ci_sanity,sanity] id=0x7f63a6b880a0&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=0x7f63a6b880a0&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=0x7f63a6b880a0&gt;
self.create_fixture = &lt;bound method BaseRbac.create_fixture of &lt;serial...lobal_share[ci_sanity,sanity] id=0x7f63a6b880a0&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;ad5a18c4-19e6-4668-a640-373b...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=0x7f63a6b880a0&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;ad5a18c4-19e6-4668-a640-373b...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=0x7f63a6b880a0&gt;
self.useFixture = &lt;bound method TestCase.useFixture of &lt;serial_scr...lobal_share[ci_sanity,sanity] id=0x7f63a6b880a0&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;ad5a18c4-19e6-4668-a640-373b...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=0x7f63a6b880a0&gt;, fixture=&lt;VMFixture: ctest-TestRbac-75101271-39441383&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;novaclient.exceptions.Forbidden&apos;&gt;, Forbidden(), &lt;traceback object&gt;)

 /usr/local/lib/python3.9/site-packages/testtools/_compat3x.py in reraise(exc_class=&lt;class &apos;novaclient.exceptions.Forbidden&apos;&gt;, exc_obj=Forbidden(), 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 = Forbidden()
exc_obj.with_traceback = &lt;built-in method with_traceback of Forbidden 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=0x7f63a6b880a0&gt;, fixture=&lt;VMFixture: ctest-TestRbac-75101271-39441383&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-75101271-39441383&gt;
fixture.setUp = &lt;bound method VMFixture.setUp of &lt;VMFixture: ctest-TestRbac-75101271-39441383&gt;&gt;

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

 /contrail-test/fixtures/vm_test.py in create(self=&lt;VMFixture: ctest-TestRbac-75101271-39441383&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-75101271-39441383&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;d5abf362-9e9a-445c-a76b-5086faf28ddf&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-75101271-39441383&apos;
vn_objs undefined
self.vn_objs = [{&apos;network&apos;: {&apos;id&apos;: &apos;ad5a18c4-19e6-4668-a640-373b...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-75101271-39441383&apos;, image_name=&apos;cirros&apos;, vn_objs=[{&apos;network&apos;: {&apos;id&apos;: &apos;ad5a18c4-19e6-4668-a640-373b...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;d5abf362-9e9a-445c-a76b-5086faf28ddf&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-75101271-39441383&apos;
image_name = &apos;cirros&apos;
vn_ids = [&apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&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;d5abf362-9e9a-445c-a76b-5086faf28ddf&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;d5abf362-9e9a-445c-a76b-5086faf28ddf&apos;, image_name=&apos;cirros&apos;, vm_name=&apos;ctest-TestRbac-75101271-39441383&apos;, vn_ids=[&apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;], node_name=None, sg_ids=[], count=1, userdata=None, flavor=&lt;Flavor: contrail_flavor_tiny&gt;, port_ids=[], fixed_ips=[], zone=None)
  604 
  605         zone = zone + &quot;:&quot; + node_name if node_name else zone
  606         self.obj.servers.create(name=vm_name, image=image,
  607                                 security_groups=sg_ids,
  608                                 flavor=flavor, nics=nics_list,
self = &lt;nova_test.NovaHelper object&gt;
self.obj = &lt;novaclient.v2.client.Client object&gt;
self.obj.servers = &lt;novaclient.v2.servers.ServerManager object&gt;
self.obj.servers.create = &lt;bound method ServerManager.create of &lt;novaclient.v2.servers.ServerManager object&gt;&gt;
name undefined
vm_name = &apos;ctest-TestRbac-75101271-39441383&apos;
image = &lt;RequestIdProxy at 0x7f63a59ee700 for image&gt;
security_groups undefined
sg_ids = []
flavor = &lt;Flavor: contrail_flavor_tiny&gt;
nics undefined
nics_list = [{&apos;net-id&apos;: &apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;}]
config_drive = False
key_name undefined
self.key = &apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;
availability_zone undefined
zone = None
min_count undefined
count = 1
max_count undefined
userdata = None

 /usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in create(self=&lt;novaclient.v2.servers.ServerManager object&gt;, name=&apos;ctest-TestRbac-75101271-39441383&apos;, image=&lt;RequestIdProxy at 0x7f63a59ee700 for image&gt;, flavor=&lt;Flavor: contrail_flavor_tiny&gt;, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata=None, key_name=&apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;, availability_zone=None, block_device_mapping=None, block_device_mapping_v2=None, nics=[{&apos;net-id&apos;: &apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;}], scheduler_hints=None, config_drive=False, disk_config=None, admin_pass=None, access_ip_v4=None, access_ip_v6=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
 1479 
 1480         response_key = &quot;server&quot; if not reservation_id else &quot;reservation_id&quot;
 1481         return self._boot(response_key, *boot_args, **boot_kwargs)
 1482 
 1483     @api_versions.wraps(&quot;2.0&quot;, &quot;2.18&quot;)
self = &lt;novaclient.v2.servers.ServerManager object&gt;
self._boot = &lt;bound method ServerManager._boot of &lt;novaclient.v2.servers.ServerManager object&gt;&gt;
response_key = &apos;server&apos;
boot_args = [&apos;ctest-TestRbac-75101271-39441383&apos;, &lt;RequestIdProxy at 0x7f63a59ee700 for image&gt;, &lt;Flavor: contrail_flavor_tiny&gt;]
boot_kwargs = {&apos;access_ip_v4&apos;: None, &apos;access_ip_v6&apos;: None, &apos;admin_pass&apos;: None, &apos;availability_zone&apos;: None, &apos;config_drive&apos;: False, &apos;disk_config&apos;: None, &apos;files&apos;: None, &apos;host&apos;: None, &apos;hypervisor_hostname&apos;: None, &apos;key_name&apos;: &apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;, ...}

 /usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in _boot(self=&lt;novaclient.v2.servers.ServerManager object&gt;, response_key=&apos;server&apos;, name=&apos;ctest-TestRbac-75101271-39441383&apos;, image=&lt;RequestIdProxy at 0x7f63a59ee700 for image&gt;, flavor=&lt;Flavor: contrail_flavor_tiny&gt;, meta=None, files=None, userdata=None, reservation_id=False, return_raw=False, min_count=1, max_count=1, security_groups=[], key_name=&apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;, availability_zone=None, block_device_mapping=None, block_device_mapping_v2=None, nics=[{&apos;net-id&apos;: &apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
  843             body[&apos;server&apos;][&apos;hypervisor_hostname&apos;] = hypervisor_hostname
  844 
  845         return self._create(&apos;/servers&apos;, body, response_key,
  846                             return_raw=return_raw, **kwargs)
  847 
self = &lt;novaclient.v2.servers.ServerManager object&gt;
self._create = &lt;bound method Manager._create of &lt;novaclient.v2.servers.ServerManager object&gt;&gt;
body = {&apos;server&apos;: {&apos;flavorRef&apos;: &apos;29941a6d-3b9b-4feb-877d-af91ada8d806&apos;, &apos;imageRef&apos;: &apos;1c13c5c7-f74e-41b3-bdd4-27a222f4de05&apos;, &apos;key_name&apos;: &apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;, &apos;max_count&apos;: 1, &apos;min_count&apos;: 1, &apos;name&apos;: &apos;ctest-TestRbac-75101271-39441383&apos;, &apos;networks&apos;: [{&apos;uuid&apos;: &apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;}]}}
response_key = &apos;server&apos;
return_raw = False
kwargs = {}

 /usr/local/lib/python3.9/site-packages/novaclient/base.py in _create(self=&lt;novaclient.v2.servers.ServerManager object&gt;, url=&apos;/servers&apos;, body={&apos;server&apos;: {&apos;flavorRef&apos;: &apos;29941a6d-3b9b-4feb-877d-af91ada8d806&apos;, &apos;imageRef&apos;: &apos;1c13c5c7-f74e-41b3-bdd4-27a222f4de05&apos;, &apos;key_name&apos;: &apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;, &apos;max_count&apos;: 1, &apos;min_count&apos;: 1, &apos;name&apos;: &apos;ctest-TestRbac-75101271-39441383&apos;, &apos;networks&apos;: [{&apos;uuid&apos;: &apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;}]}}, response_key=&apos;server&apos;, return_raw=False, obj_class=None, **kwargs={})
  362                 obj_class=None, **kwargs):
  363         self.run_hooks(&apos;modify_body_for_create&apos;, body, **kwargs)
  364         resp, body = self.api.client.post(url, body=body)
  365         if return_raw:
  366             return self.convert_into_with_meta(body[response_key], resp)
resp undefined
body = {&apos;server&apos;: {&apos;flavorRef&apos;: &apos;29941a6d-3b9b-4feb-877d-af91ada8d806&apos;, &apos;imageRef&apos;: &apos;1c13c5c7-f74e-41b3-bdd4-27a222f4de05&apos;, &apos;key_name&apos;: &apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;, &apos;max_count&apos;: 1, &apos;min_count&apos;: 1, &apos;name&apos;: &apos;ctest-TestRbac-75101271-39441383&apos;, &apos;networks&apos;: [{&apos;uuid&apos;: &apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;}]}}
self = &lt;novaclient.v2.servers.ServerManager object&gt;
self.api = &lt;novaclient.v2.client.Client object&gt;
self.api.client = &lt;novaclient.client.SessionClient object&gt;
self.api.client.post = &lt;bound method Adapter.post of &lt;novaclient.client.SessionClient object&gt;&gt;
url = &apos;/servers&apos;

 /usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py in post(self=&lt;novaclient.client.SessionClient object&gt;, url=&apos;/servers&apos;, **kwargs={&apos;body&apos;: {&apos;server&apos;: {&apos;flavorRef&apos;: &apos;29941a6d-3b9b-4feb-877d-af91ada8d806&apos;, &apos;imageRef&apos;: &apos;1c13c5c7-f74e-41b3-bdd4-27a222f4de05&apos;, &apos;key_name&apos;: &apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;, &apos;max_count&apos;: 1, &apos;min_count&apos;: 1, &apos;name&apos;: &apos;ctest-TestRbac-75101271-39441383&apos;, &apos;networks&apos;: [{&apos;uuid&apos;: &apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;}]}}})
  390 
  391     def post(self, url, **kwargs):
  392         return self.request(url, &apos;POST&apos;, **kwargs)
  393 
  394     def put(self, url, **kwargs):
self = &lt;novaclient.client.SessionClient object&gt;
self.request = &lt;bound method SessionClient.request of &lt;novaclient.client.SessionClient object&gt;&gt;
url = &apos;/servers&apos;
kwargs = {&apos;body&apos;: {&apos;server&apos;: {&apos;flavorRef&apos;: &apos;29941a6d-3b9b-4feb-877d-af91ada8d806&apos;, &apos;imageRef&apos;: &apos;1c13c5c7-f74e-41b3-bdd4-27a222f4de05&apos;, &apos;key_name&apos;: &apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;, &apos;max_count&apos;: 1, &apos;min_count&apos;: 1, &apos;name&apos;: &apos;ctest-TestRbac-75101271-39441383&apos;, &apos;networks&apos;: [{&apos;uuid&apos;: &apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;}]}}}

 /usr/local/lib/python3.9/site-packages/novaclient/client.py in request(self=&lt;novaclient.client.SessionClient object&gt;, url=&apos;/servers&apos;, method=&apos;POST&apos;, **kwargs={&apos;body&apos;: {&apos;server&apos;: {&apos;flavorRef&apos;: &apos;29941a6d-3b9b-4feb-877d-af91ada8d806&apos;, &apos;imageRef&apos;: &apos;1c13c5c7-f74e-41b3-bdd4-27a222f4de05&apos;, &apos;key_name&apos;: &apos;ctest_ctest-TestRbac-75101271ctest-TestRbac-96769790key1&apos;, &apos;max_count&apos;: 1, &apos;min_count&apos;: 1, &apos;name&apos;: &apos;ctest-TestRbac-75101271-39441383&apos;, &apos;networks&apos;: [{&apos;uuid&apos;: &apos;ad5a18c4-19e6-4668-a640-373b3d911ef2&apos;}]}}, &apos;headers&apos;: {&apos;Accept&apos;: &apos;application/json&apos;, &apos;Content-Type&apos;: &apos;application/json&apos;, &apos;User-Agent&apos;: &apos;python-novaclient&apos;, &apos;X-Auth-Token&apos;: &apos;gAAAAABqNDoWXgxbZ552o48k-EhwrahOyTLSTueqWYlVlKRk...rsPRaTCVo0xQEM1OqbIyFUGGQSU6RceEuStC-NEPWPnya3zS8&apos;}})
   76         # api_versions.check_headers(resp, self.api_version)
   77         if raise_exc and resp.status_code &gt;= 400:
   78             raise exceptions.from_response(resp, body, url, method)
   79 
   80         return resp, body
global exceptions = &lt;module &apos;novaclient.exceptions&apos; from &apos;/usr/local...ython3.9/site-packages/novaclient/exceptions.py&apos;&gt;
exceptions.from_response = &lt;function from_response&gt;
resp = &lt;Response [403]&gt;
body = {&apos;forbidden&apos;: {&apos;code&apos;: 403, &apos;message&apos;: &quot;Policy doesn&apos;t allow os_compute_api:servers:create to be performed.&quot;}}
url = &apos;/servers&apos;
method = &apos;POST&apos;
Forbidden: Policy doesn&apos;t allow os_compute_api:servers:create to be performed. (HTTP 403) (Request-ID: req-a27bb0c0-03bd-4562-b1c8-d4ce683c7502)
    __cause__ = None
    __class__ = &lt;class &apos;novaclient.exceptions.Forbidden&apos;&gt;
    __context__ = None
    __delattr__ = &lt;method-wrapper &apos;__delattr__&apos; of Forbidden object&gt;
    __dict__ = {&apos;code&apos;: 403, &apos;details&apos;: None, &apos;message&apos;: &quot;Policy doesn&apos;t allow os_compute_api:servers:create to be performed.&quot;, &apos;method&apos;: &apos;POST&apos;, &apos;request_id&apos;: &apos;req-a27bb0c0-03bd-4562-b1c8-d4ce683c7502&apos;, &apos;url&apos;: &apos;/servers&apos;}
    __dir__ = &lt;built-in method __dir__ of Forbidden object&gt;
    __doc__ = &quot;\n    HTTP 403 - Forbidden: your credentials don&apos;t give you access to this\n    resource.\n    &quot;
    __eq__ = &lt;method-wrapper &apos;__eq__&apos; of Forbidden object&gt;
    __format__ = &lt;built-in method __format__ of Forbidden object&gt;
    __ge__ = &lt;method-wrapper &apos;__ge__&apos; of Forbidden object&gt;
    __getattribute__ = &lt;method-wrapper &apos;__getattribute__&apos; of Forbidden object&gt;
    __gt__ = &lt;method-wrapper &apos;__gt__&apos; of Forbidden object&gt;
    __hash__ = &lt;method-wrapper &apos;__hash__&apos; of Forbidden object&gt;
    __init__ = &lt;bound method ClientException.__init__ of Forbidden()&gt;
    __init_subclass__ = &lt;built-in method __init_subclass__ of type object&gt;
    __le__ = &lt;method-wrapper &apos;__le__&apos; of Forbidden object&gt;
    __lt__ = &lt;method-wrapper &apos;__lt__&apos; of Forbidden object&gt;
    __module__ = &apos;novaclient.exceptions&apos;
    __ne__ = &lt;method-wrapper &apos;__ne__&apos; of Forbidden object&gt;
    __new__ = &lt;built-in method __new__ of type object&gt;
    __reduce__ = &lt;built-in method __reduce__ of Forbidden object&gt;
    __reduce_ex__ = &lt;built-in method __reduce_ex__ of Forbidden object&gt;
    __repr__ = &lt;method-wrapper &apos;__repr__&apos; of Forbidden object&gt;
    __setattr__ = &lt;method-wrapper &apos;__setattr__&apos; of Forbidden object&gt;
    __setstate__ = &lt;built-in method __setstate__ of Forbidden object&gt;
    __sizeof__ = &lt;built-in method __sizeof__ of Forbidden object&gt;
    __str__ = &lt;bound method ClientException.__str__ of Forbidden()&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 = None
    http_status = 403
    message = &quot;Policy doesn&apos;t allow os_compute_api:servers:create to be performed.&quot;
    method = &apos;POST&apos;
    request_id = &apos;req-a27bb0c0-03bd-4562-b1c8-d4ce683c7502&apos;
    url = &apos;/servers&apos;
    with_traceback = &lt;built-in method with_traceback of Forbidden 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 606, in create_vm
    self.obj.servers.create(name=vm_name, image=image,
  File &quot;/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py&quot;, line 1481, in create
    return self._boot(response_key, *boot_args, **boot_kwargs)
  File &quot;/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py&quot;, line 845, in _boot
    return self._create(&apos;/servers&apos;, body, response_key,
  File &quot;/usr/local/lib/python3.9/site-packages/novaclient/base.py&quot;, line 364, in _create
    resp, body = self.api.client.post(url, body=body)
  File &quot;/usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py&quot;, line 392, in post
    return self.request(url, &apos;POST&apos;, **kwargs)
  File &quot;/usr/local/lib/python3.9/site-packages/novaclient/client.py&quot;, line 78, in request
    raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.Forbidden: Policy doesn&apos;t allow os_compute_api:servers:create to be performed. (HTTP 403) (Request-ID: req-a27bb0c0-03bd-4562-b1c8-d4ce683c7502)

</failure>

    </testcase>

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

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

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

    <testcase classname="serial_scripts.sriov.test_sriov.TestSriov" name="test_communication_between_two_sriov_vm[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_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="0" id="1" name="" package="" skipped="1" tests="22" time="544.703">
    <testcase classname="scripts.analytics.test_analytics.AnalyticsTestSanity" name="test_contrail_status[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]" time="0.511" />

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

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

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

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

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

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

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

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

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

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

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

    <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="4.777">
      <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.191" />

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

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

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

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

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

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

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

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

  </testsuite>
</testsuites>
