Test Results

Designed for use with JUnit and Ant.

Properties


Summary

TestsFailuresErrorsSkippedSuccess rateTime
27180325.00%335.751
Note: failures are anticipated and checked for with assertions while errors are unanticipated.

Packages

Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.
NameTestsErrorsFailuresSkippedTime(s)
270183335.751

Package

NameTestsErrorsFailuresSkippedTime(s)
200150104.328
7033231.423
Back to top


TestCase

NameStatusTypeTime(s)LogFile
test_contrail_status[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]Success0.614
test_verify_object_logs[ci_sanity,dev_sanity_dpdk,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: KeyError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:22:52 2025

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=<scripts.analytics.test_analytics_basic.Analytic...dev_sanity_dpdk,sanity,suite1] id=0x7f8e1361ee48>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function AnalyticsBasicTestSanity.test_verify_object_logs>
self = <scripts.analytics.test_analytics_basic.Analytic...dev_sanity_dpdk,sanity,suite1] id=0x7f8e1361ee48>
args = ()
kwargs = {}

/contrail-test/scripts/analytics/test_analytics_basic.py in test_verify_object_logs(self=<scripts.analytics.test_analytics_basic.Analytic...dev_sanity_dpdk,sanity,suite1] id=0x7f8e1361ee48>)
30 vn_fixture= self.useFixture(VNFixture(connections=self.connections,
31 vn_name=vn_name, subnets=vn_subnets))
32 vn_fixture.verify_on_setup()
33 vm1_fixture = self.create_vm(vn_fixture=vn_fixture, image_name='cirros')
34 assert vm1_fixture.wait_till_vm_is_active()
vn_fixture = <vn_test.VNFixture object>
vn_fixture.verify_on_setup = <bound method VNFixture.verify_on_setup of <vn_test.VNFixture object>>

/contrail-test/fixtures/vn_test.py in verify_on_setup(self=<vn_test.VNFixture object>)
574 def verify_on_setup(self):
575 result = True
576 if not self.verify_vn_in_api_server():
577 result = result and False
578 self.logger.error(
self = <vn_test.VNFixture object>
self.verify_vn_in_api_server = <bound method retry.<locals>.deco_retry.<locals>.f_retry of <vn_test.VNFixture object>>

/contrail-test/tcutils/util.py in f_retry(*args=(<vn_test.VNFixture object>,), **kwargs={})
82 mtries, mdelay = tries, delay # make mutable
83
84 result = f(*args, **kwargs) # first attempt
85 rv = result
86 final = False
result undefined
f = <function VNFixture.verify_vn_in_api_server>
args = (<vn_test.VNFixture object>,)
kwargs = {}

/contrail-test/fixtures/vn_test.py in verify_vn_in_api_server(self=<vn_test.VNFixture object>)
638
639 subnets = list()
640 for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
641 subnets.extend(ipam['attr']['ipam_subnets'])
642 for vn_subnet in self.vn_subnets:
ipam undefined
self = <vn_test.VNFixture object>
self.api_s_vn_obj = {'virtual-network': {'uuid': '42b07aa5-8a44-4d29...2/project/7f7ea21d-e5f8-437e-bffb-9afae46c8365'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/analytics/test_analytics_basic.py", line 32, in test_verify_object_logs
vn_fixture.verify_on_setup()
File "/contrail-test/fixtures/vn_test.py", line 576, in verify_on_setup
if not self.verify_vn_in_api_server():
File "/contrail-test/tcutils/util.py", line 84, in f_retry
result = f(*args, **kwargs) # first attempt
File "/contrail-test/fixtures/vn_test.py", line 640, in verify_vn_in_api_server
for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
KeyError: 'network_ipam_refs'

1.960 Log File
test_db_manage[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]Success4.496
test_floating_ip[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity,quick_sanity,sanity,suite1,vrouter_gw]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: KeyError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:03 2025

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=<scripts.floatingip.test_floatingip_basic.Floati...nity,sanity,suite1,vrouter_gw] id=0x7f8e133fb198>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function FloatingipBasicTestSanity.test_floating_ip>
self = <scripts.floatingip.test_floatingip_basic.Floati...nity,sanity,suite1,vrouter_gw] id=0x7f8e133fb198>
args = ()
kwargs = {}

/contrail-test/scripts/floatingip/test_floatingip_basic.py in test_floating_ip(self=<scripts.floatingip.test_floatingip_basic.Floati...nity,sanity,suite1,vrouter_gw] id=0x7f8e133fb198>)
56 subnets=fvn_subnets))
57
58 assert fvn_fixture.verify_on_setup()
59
60 vn1_fixture = self.useFixture(
fvn_fixture = <vn_test.VNFixture object>
fvn_fixture.verify_on_setup = <bound method VNFixture.verify_on_setup of <vn_test.VNFixture object>>

/contrail-test/fixtures/vn_test.py in verify_on_setup(self=<vn_test.VNFixture object>)
574 def verify_on_setup(self):
575 result = True
576 if not self.verify_vn_in_api_server():
577 result = result and False
578 self.logger.error(
self = <vn_test.VNFixture object>
self.verify_vn_in_api_server = <bound method retry.<locals>.deco_retry.<locals>.f_retry of <vn_test.VNFixture object>>

/contrail-test/tcutils/util.py in f_retry(*args=(<vn_test.VNFixture object>,), **kwargs={})
82 mtries, mdelay = tries, delay # make mutable
83
84 result = f(*args, **kwargs) # first attempt
85 rv = result
86 final = False
result undefined
f = <function VNFixture.verify_vn_in_api_server>
args = (<vn_test.VNFixture object>,)
kwargs = {}

/contrail-test/fixtures/vn_test.py in verify_vn_in_api_server(self=<vn_test.VNFixture object>)
638
639 subnets = list()
640 for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
641 subnets.extend(ipam['attr']['ipam_subnets'])
642 for vn_subnet in self.vn_subnets:
ipam undefined
self = <vn_test.VNFixture object>
self.api_s_vn_obj = {'virtual-network': {'uuid': 'fe373805-3212-40b1...2/project/89325069-f037-4b01-9ede-7f894ea69c10'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/floatingip/test_floatingip_basic.py", line 58, in test_floating_ip
assert fvn_fixture.verify_on_setup()
File "/contrail-test/fixtures/vn_test.py", line 576, in verify_on_setup
if not self.verify_vn_in_api_server():
File "/contrail-test/tcutils/util.py", line 84, in f_retry
result = f(*args, **kwargs) # first attempt
File "/contrail-test/fixtures/vn_test.py", line 640, in verify_vn_in_api_server
for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
KeyError: 'network_ipam_refs'

2.374 Log File
test_heat_stacks_list[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity]Success0.416
test_router_crud[ci_sanity,dev_sanity_dpdk,sanity]Success6.448
test_ports_bindings[ci_sanity,dev_sanity_dpdk,sanity]Success2.004
test_ports_specific_subnet_ip[ci_sanity,dev_sanity_dpdk,sanity]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: IndexError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:22 2025

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=<scripts.neutron.test_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7f8e13057c18>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestPorts.test_ports_specific_subnet_ip>
self = <scripts.neutron.test_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7f8e13057c18>
args = ()
kwargs = {}

/contrail-test/scripts/neutron/test_ports.py in test_ports_specific_subnet_ip(self=<scripts.neutron.test_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7f8e13057c18>)
157 vn1_vm2_name = get_random_name('vn1-vm2')
158 vn1_fixture = self.create_vn(vn1_name, [vn1_subnet_1, vn1_subnet_2])
159 vn1_subnet1_id = vn1_fixture.vn_subnet_objs[0]['id']
160 vn1_subnet2_id = vn1_fixture.vn_subnet_objs[1]['id']
161 vn1_subnet1_ip = get_an_ip(vn1_fixture.vn_subnet_objs[0]['cidr'], 5)
vn1_subnet1_id undefined
vn1_fixture = <vn_test.VNFixture object>
vn1_fixture.vn_subnet_objs = []
IndexError: list index out of range
__cause__ = None
__class__ = <class 'IndexError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of IndexError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of IndexError object>
__doc__ = 'Sequence index out of range.'
__eq__ = <method-wrapper '__eq__' of IndexError object>
__format__ = <built-in method __format__ of IndexError object>
__ge__ = <method-wrapper '__ge__' of IndexError object>
__getattribute__ = <method-wrapper '__getattribute__' of IndexError object>
__gt__ = <method-wrapper '__gt__' of IndexError object>
__hash__ = <method-wrapper '__hash__' of IndexError object>
__init__ = <method-wrapper '__init__' of IndexError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of IndexError object>
__lt__ = <method-wrapper '__lt__' of IndexError object>
__ne__ = <method-wrapper '__ne__' of IndexError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of IndexError object>
__reduce_ex__ = <built-in method __reduce_ex__ of IndexError object>
__repr__ = <method-wrapper '__repr__' of IndexError object>
__setattr__ = <method-wrapper '__setattr__' of IndexError object>
__setstate__ = <built-in method __setstate__ of IndexError object>
__sizeof__ = <built-in method __sizeof__ of IndexError object>
__str__ = <method-wrapper '__str__' of IndexError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('list index out of range',)
with_traceback = <built-in method with_traceback of IndexError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/neutron/test_ports.py", line 159, in test_ports_specific_subnet_ip
vn1_subnet1_id = vn1_fixture.vn_subnet_objs[0]['id']
IndexError: list index out of range

1.088 Log File
test_basic_router_behavior[ci_sanity,dev_sanity_dpdk,sanity]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: stdout: {{{
[localhost] local: mkdir -p /contrail-test/images
[localhost] local: wget -nv http://nexus.opensdn.io/repository///images/converts//cirros-0.3.0-x86_64-disk.vmdk.gz -O /contrail-test/images/cirros-0.3.0-x86_64-disk.vmdk.gz
[localhost] local: gunzip -f /contrail-test/images/cirros-0.3.0-x86_64-disk.vmdk.gz
[localhost] local: rm -f /contrail-test/images/cirros-0.3.0-x86_64-disk.vmdk
}}}

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: BadRequest
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:29 2025

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=<scripts.neutron.test_routers.TestRouters.test_b...sanity,dev_sanity_dpdk,sanity] id=0x7f8e13071940>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestRouters.test_basic_router_behavior>
self = <scripts.neutron.test_routers.TestRouters.test_b...sanity,dev_sanity_dpdk,sanity] id=0x7f8e13071940>
args = ()
kwargs = {}

/contrail-test/scripts/neutron/test_routers.py in test_basic_router_behavior(self=<scripts.neutron.test_routers.TestRouters.test_b...sanity,dev_sanity_dpdk,sanity] id=0x7f8e13071940>)
50 vn2_fixture = self.create_vn(vn2_name, vn2_subnets)
51 vn1_vm1_fixture = self.create_vm(vn1_fixture, vn1_vm1_name,
52 image_name='cirros')
53 vn2_vm1_fixture = self.create_vm(vn2_fixture, vn2_vm1_name,
54 image_name='cirros')
image_name undefined

/contrail-test/common/base.py in create_vm(self=<scripts.neutron.test_routers.TestRouters.test_b...sanity,dev_sanity_dpdk,sanity] id=0x7f8e13071940>, vn_fixture=<vn_test.VNFixture object>, vm_name='ctest-vn1-vm1-17589628', image_name='cirros', port_ids=None, **kwargs={})
279 image_name=image_name,
280 port_ids=port_ids,
281 **kwargs)
282 if cleanup:
283 self.addCleanup(vm_fixture.cleanUp)
kwargs = {}

/contrail-test/common/base.py in create_only_vm(cls=<class 'scripts.neutron.test_routers.TestRouters'>, vn_fixture=<vn_test.VNFixture object>, vm_name='ctest-vn1-vm1-17589628', image_name='cirros', **kwargs={'port_ids': None})
252 image_name=image_name,
253 **kwargs)
254 vm_obj.setUp()
255 return vm_obj
256 # end create_only_vm
vm_obj = <VMFixture: ctest-vn1-vm1-17589628>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-vn1-vm1-17589628>>

/contrail-test/fixtures/vm_test.py in setUp(self=<VMFixture: ctest-vn1-vm1-17589628>)
191 def setUp(self):
192 super(VMFixture, self).setUp()
193 self.create()
194
195 def create(self):
self = <VMFixture: ctest-vn1-vm1-17589628>
self.create = <bound method VMFixture.create of <VMFixture: ctest-vn1-vm1-17589628>>

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-vn1-vm1-17589628>)
243 userdata=self.userdata,
244 port_ids=self.port_ids,
245 fixed_ips=self.fixed_ips)
246 self.created = True
247 self.vm_obj = objs[0]
fixed_ips undefined
self = <VMFixture: ctest-vn1-vm1-17589628>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-vn1-vm1-17589628', image_name='cirros', vn_objs=[{'network': {'id': 'fba5d949-35d0-4185-83b0-ae52...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '351fd960-29a8-48bc-a511-b97b35614126', 'sg_ids': [], 'userdata': None, 'zone': 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 = <openstack.OpenstackOrchestrator object>
self.nova_h = <nova_test.NovaHelper object>
self.nova_h.create_vm = <bound method NovaHelper.create_vm of <nova_test.NovaHelper object>>
vm_name = 'ctest-vn1-vm1-17589628'
image_name = 'cirros'
vn_ids = ['fba5d949-35d0-4185-83b0-ae52e8321532']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '351fd960-29a8-48bc-a511-b97b35614126', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='351fd960-29a8-48bc-a511-b97b35614126', image_name='cirros', vm_name='ctest-vn1-vm1-17589628', vn_ids=['fba5d949-35d0-4185-83b0-ae52e8321532'], node_name='cn-jenkins-deploy-platform-ansible-os-3927-1', sg_ids=[], count=1, userdata=None, flavor=<Flavor: contrail_flavor_tiny>, port_ids=None, fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1')
609 config_drive=config_drive,
610 key_name=self.key, availability_zone=zone,
611 min_count=count, max_count=count, userdata=userdata)
612 vm_objs = self.get_vm_list(name_pattern=vm_name,
613 project_id=project_uuid)
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-vn1-vm1-17589628', image=<RequestIdProxy at 0x7f8e10dfad08 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata=None, key_name='ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'fba5d949-35d0-4185-83b0-ae52e8321532'}], 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 = "server" if not reservation_id else "reservation_id"
1481 return self._boot(response_key, *boot_args, **boot_kwargs)
1482
1483 @api_versions.wraps("2.0", "2.18")
self = <novaclient.v2.servers.ServerManager object>
self._boot = <bound method ServerManager._boot of <novaclient.v2.servers.ServerManager object>>
response_key = 'server'
boot_args = ['ctest-vn1-vm1-17589628', <RequestIdProxy at 0x7f8e10dfad08 for image>, <Flavor: contrail_flavor_tiny>]
boot_kwargs = {'access_ip_v4': None, 'access_ip_v6': None, 'admin_pass': None, 'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', ...}

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-vn1-vm1-17589628', image=<RequestIdProxy at 0x7f8e10dfad08 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, userdata=None, reservation_id=False, return_raw=False, min_count=1, max_count=1, security_groups=[], key_name='ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'fba5d949-35d0-4185-83b0-ae52e8321532'}], 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={})
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
848 def get(self, server):
return_raw = False
kwargs = {}

/usr/local/lib/python3.6/site-packages/novaclient/base.py in _create(self=<novaclient.v2.servers.ServerManager object>, url='/servers', body={'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}, response_key='server', return_raw=False, obj_class=None, **kwargs={})
362 obj_class=None, **kwargs):
363 self.run_hooks('modify_body_for_create', 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 = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}
self = <novaclient.v2.servers.ServerManager object>
self.api = <novaclient.v2.client.Client object>
self.api.client = <novaclient.client.SessionClient object>
self.api.client.post = <bound method Adapter.post of <novaclient.client.SessionClient object>>
url = '/servers'

/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py in post(self=<novaclient.client.SessionClient object>, url='/servers', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}})
390
391 def post(self, url, **kwargs):
392 return self.request(url, 'POST', **kwargs)
393
394 def put(self, url, **kwargs):
self = <novaclient.client.SessionClient object>
self.request = <bound method SessionClient.request of <novaclient.client.SessionClient object>>
url = '/servers'
kwargs = {'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}}

/usr/local/lib/python3.6/site-packages/novaclient/client.py in request(self=<novaclient.client.SessionClient object>, url='/servers', method='POST', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorMY9jqQ9yEX99CERuUfAbyQMfZVqCDO2tU7GlP4P...ZWhkuKLFQA6eQAZjaBltozzHNpnPxWLHkE7OUas-MOkpDqy_s'}})
76 # api_versions.check_headers(resp, self.api_version)
77 if raise_exc and resp.status_code >= 400:
78 raise exceptions.from_response(resp, body, url, method)
79
80 return resp, body
global exceptions = <module 'novaclient.exceptions' from '/usr/local...ython3.6/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-9bfb5945-e8a6-489f-8965-65ceff9fdfc2)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-9bfb5945-e8a6-489f-8965-65ceff9fdfc2', 'url': '/servers'}
__dir__ = <built-in method __dir__ of BadRequest object>
__doc__ = '\n HTTP 400 - Bad request: you sent some malformed data.\n '
__eq__ = <method-wrapper '__eq__' of BadRequest object>
__format__ = <built-in method __format__ of BadRequest object>
__ge__ = <method-wrapper '__ge__' of BadRequest object>
__getattribute__ = <method-wrapper '__getattribute__' of BadRequest object>
__gt__ = <method-wrapper '__gt__' of BadRequest object>
__hash__ = <method-wrapper '__hash__' of BadRequest object>
__init__ = <bound method ClientException.__init__ of BadRequest()>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of BadRequest object>
__lt__ = <method-wrapper '__lt__' of BadRequest object>
__module__ = 'novaclient.exceptions'
__ne__ = <method-wrapper '__ne__' of BadRequest object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of BadRequest object>
__reduce_ex__ = <built-in method __reduce_ex__ of BadRequest object>
__repr__ = <method-wrapper '__repr__' of BadRequest object>
__setattr__ = <method-wrapper '__setattr__' of BadRequest object>
__setstate__ = <built-in method __setstate__ of BadRequest object>
__sizeof__ = <built-in method __sizeof__ of BadRequest object>
__str__ = <bound method ClientException.__str__ of BadRequest()>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = ()
code = 400
details = None
http_status = 400
message = 'Network fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-9bfb5945-e8a6-489f-8965-65ceff9fdfc2'
url = '/servers'
with_traceback = <built-in method with_traceback of BadRequest object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/neutron/test_routers.py", line 52, in test_basic_router_behavior
image_name='cirros')
File "/contrail-test/common/base.py", line 281, in create_vm
**kwargs)
File "/contrail-test/common/base.py", line 254, in create_only_vm
vm_obj.setUp()
File "/contrail-test/fixtures/vm_test.py", line 193, in setUp
self.create()
File "/contrail-test/fixtures/vm_test.py", line 245, in create
fixed_ips=self.fixed_ips)
File "/contrail-test/fixtures/openstack.py", 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 "/contrail-test/fixtures/nova_test.py", line 611, in create_vm
min_count=count, max_count=count, userdata=userdata)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 846, in _boot
return_raw=return_raw, **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-9bfb5945-e8a6-489f-8965-65ceff9fdfc2)

3.555 Log File
test_basic_snat_behavior_without_external_connectivity[ci_sanity,dev_sanity_dpdk,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: BadRequest
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:35 2025

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=<scripts.neutron.test_routers_basic.TestRoutersB...dev_sanity_dpdk,sanity,suite1] id=0x7f8e13071e48>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestRoutersBasic.test_basic_snat_behavior_without_external_connectivity>
self = <scripts.neutron.test_routers_basic.TestRoutersB...dev_sanity_dpdk,sanity,suite1] id=0x7f8e13071e48>
args = ()
kwargs = {}

/contrail-test/scripts/neutron/test_routers_basic.py in test_basic_snat_behavior_without_external_connectivity(self=<scripts.neutron.test_routers_basic.TestRoutersB...dev_sanity_dpdk,sanity,suite1] id=0x7f8e13071e48>)
38 router_external=True)
39
40 vm1_fixture = self.create_vm(vn1_fixture, image_name='cirros')
41 vm2_fixture = self.create_vm(ext_vn_fixture, image_name='cirros')
42 router_name = get_random_name('router1')
vm1_fixture undefined
self = <scripts.neutron.test_routers_basic.TestRoutersB...dev_sanity_dpdk,sanity,suite1] id=0x7f8e13071e48>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...ev_sanity_dpdk,sanity,suite1] id=0x7f8e13071e48>>
vn1_fixture = <vn_test.VNFixture object>
image_name undefined

/contrail-test/common/base.py in create_vm(self=<scripts.neutron.test_routers_basic.TestRoutersB...dev_sanity_dpdk,sanity,suite1] id=0x7f8e13071e48>, vn_fixture=<vn_test.VNFixture object>, vm_name=None, image_name='cirros', port_ids=None, **kwargs={})
279 image_name=image_name,
280 port_ids=port_ids,
281 **kwargs)
282 if cleanup:
283 self.addCleanup(vm_fixture.cleanUp)
kwargs = {}

/contrail-test/common/base.py in create_only_vm(cls=<class 'scripts.neutron.test_routers_basic.TestRoutersBasic'>, vn_fixture=<vn_test.VNFixture object>, vm_name=None, image_name='cirros', **kwargs={'port_ids': None})
252 image_name=image_name,
253 **kwargs)
254 vm_obj.setUp()
255 return vm_obj
256 # end create_only_vm
vm_obj = <VMFixture: ctest-TestRoutersBasic-18381255-01290401>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestRoutersBasic-18381255-01290401>>

/contrail-test/fixtures/vm_test.py in setUp(self=<VMFixture: ctest-TestRoutersBasic-18381255-01290401>)
191 def setUp(self):
192 super(VMFixture, self).setUp()
193 self.create()
194
195 def create(self):
self = <VMFixture: ctest-TestRoutersBasic-18381255-01290401>
self.create = <bound method VMFixture.create of <VMFixture: ctest-TestRoutersBasic-18381255-01290401>>

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestRoutersBasic-18381255-01290401>)
243 userdata=self.userdata,
244 port_ids=self.port_ids,
245 fixed_ips=self.fixed_ips)
246 self.created = True
247 self.vm_obj = objs[0]
fixed_ips undefined
self = <VMFixture: ctest-TestRoutersBasic-18381255-01290401>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestRoutersBasic-18381255-01290401', image_name='cirros', vn_objs=[{'network': {'id': 'e442bf90-18d6-4812-90bf-9da7...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '50a9aceb-e1fb-408f-9b1f-9e7eee779a06', 'sg_ids': [], 'userdata': None, 'zone': 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 = <openstack.OpenstackOrchestrator object>
self.nova_h = <nova_test.NovaHelper object>
self.nova_h.create_vm = <bound method NovaHelper.create_vm of <nova_test.NovaHelper object>>
vm_name = 'ctest-TestRoutersBasic-18381255-01290401'
image_name = 'cirros'
vn_ids = ['e442bf90-18d6-4812-90bf-9da7d6994f52']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '50a9aceb-e1fb-408f-9b1f-9e7eee779a06', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='50a9aceb-e1fb-408f-9b1f-9e7eee779a06', image_name='cirros', vm_name='ctest-TestRoutersBasic-18381255-01290401', vn_ids=['e442bf90-18d6-4812-90bf-9da7d6994f52'], node_name='cn-jenkins-deploy-platform-ansible-os-3927-1', sg_ids=[], count=1, userdata=None, flavor=<Flavor: contrail_flavor_tiny>, port_ids=None, fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1')
609 config_drive=config_drive,
610 key_name=self.key, availability_zone=zone,
611 min_count=count, max_count=count, userdata=userdata)
612 vm_objs = self.get_vm_list(name_pattern=vm_name,
613 project_id=project_uuid)
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-TestRoutersBasic-18381255-01290401', image=<RequestIdProxy at 0x7f8e10c310c8 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata=None, key_name='ctest_ctest-TestRoutersBasic-18381255ctest-TestRoutersBasic-18381255key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'e442bf90-18d6-4812-90bf-9da7d6994f52'}], 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 = "server" if not reservation_id else "reservation_id"
1481 return self._boot(response_key, *boot_args, **boot_kwargs)
1482
1483 @api_versions.wraps("2.0", "2.18")
self = <novaclient.v2.servers.ServerManager object>
self._boot = <bound method ServerManager._boot of <novaclient.v2.servers.ServerManager object>>
response_key = 'server'
boot_args = ['ctest-TestRoutersBasic-18381255-01290401', <RequestIdProxy at 0x7f8e10c310c8 for image>, <Flavor: contrail_flavor_tiny>]
boot_kwargs = {'access_ip_v4': None, 'access_ip_v6': None, 'admin_pass': None, 'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRoutersBasic-18381255ctest-TestRoutersBasic-18381255key1', ...}

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-TestRoutersBasic-18381255-01290401', image=<RequestIdProxy at 0x7f8e10c310c8 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, userdata=None, reservation_id=False, return_raw=False, min_count=1, max_count=1, security_groups=[], key_name='ctest_ctest-TestRoutersBasic-18381255ctest-TestRoutersBasic-18381255key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'e442bf90-18d6-4812-90bf-9da7d6994f52'}], 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={})
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
848 def get(self, server):
return_raw = False
kwargs = {}

/usr/local/lib/python3.6/site-packages/novaclient/base.py in _create(self=<novaclient.v2.servers.ServerManager object>, url='/servers', body={'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRoutersBasic-18381255ctest-TestRoutersBasic-18381255key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-18381255-01290401', 'networks': [{'uuid': 'e442bf90-18d6-4812-90bf-9da7d6994f52'}]}}, response_key='server', return_raw=False, obj_class=None, **kwargs={})
362 obj_class=None, **kwargs):
363 self.run_hooks('modify_body_for_create', 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 = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRoutersBasic-18381255ctest-TestRoutersBasic-18381255key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-18381255-01290401', 'networks': [{'uuid': 'e442bf90-18d6-4812-90bf-9da7d6994f52'}]}}
self = <novaclient.v2.servers.ServerManager object>
self.api = <novaclient.v2.client.Client object>
self.api.client = <novaclient.client.SessionClient object>
self.api.client.post = <bound method Adapter.post of <novaclient.client.SessionClient object>>
url = '/servers'

/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py in post(self=<novaclient.client.SessionClient object>, url='/servers', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRoutersBasic-18381255ctest-TestRoutersBasic-18381255key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-18381255-01290401', 'networks': [{'uuid': 'e442bf90-18d6-4812-90bf-9da7d6994f52'}]}}})
390
391 def post(self, url, **kwargs):
392 return self.request(url, 'POST', **kwargs)
393
394 def put(self, url, **kwargs):
self = <novaclient.client.SessionClient object>
self.request = <bound method SessionClient.request of <novaclient.client.SessionClient object>>
url = '/servers'
kwargs = {'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRoutersBasic-18381255ctest-TestRoutersBasic-18381255key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-18381255-01290401', 'networks': [{'uuid': 'e442bf90-18d6-4812-90bf-9da7d6994f52'}]}}}

/usr/local/lib/python3.6/site-packages/novaclient/client.py in request(self=<novaclient.client.SessionClient object>, url='/servers', method='POST', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRoutersBasic-18381255ctest-TestRoutersBasic-18381255key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-18381255-01290401', 'networks': [{'uuid': 'e442bf90-18d6-4812-90bf-9da7d6994f52'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorMZEYcp76LMuji5e4sA7p9bfIgx4DB-j6BmzbjRm...60GeK6mQCtGeiiurjcq0f6AevS5gPEU-iVKuMSko6ScQar0ig'}})
76 # api_versions.check_headers(resp, self.api_version)
77 if raise_exc and resp.status_code >= 400:
78 raise exceptions.from_response(resp, body, url, method)
79
80 return resp, body
global exceptions = <module 'novaclient.exceptions' from '/usr/local...ython3.6/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network e442bf90-18d6-4812-90bf-9da7d6994f52 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network e442bf90-18d6-4812-90bf-9da7d6994f52 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-4c9a4778-c88f-4473-8ab0-4593f072329c)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network e442bf90-18d6-4812-90bf-9da7d6994f52 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-4c9a4778-c88f-4473-8ab0-4593f072329c', 'url': '/servers'}
__dir__ = <built-in method __dir__ of BadRequest object>
__doc__ = '\n HTTP 400 - Bad request: you sent some malformed data.\n '
__eq__ = <method-wrapper '__eq__' of BadRequest object>
__format__ = <built-in method __format__ of BadRequest object>
__ge__ = <method-wrapper '__ge__' of BadRequest object>
__getattribute__ = <method-wrapper '__getattribute__' of BadRequest object>
__gt__ = <method-wrapper '__gt__' of BadRequest object>
__hash__ = <method-wrapper '__hash__' of BadRequest object>
__init__ = <bound method ClientException.__init__ of BadRequest()>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of BadRequest object>
__lt__ = <method-wrapper '__lt__' of BadRequest object>
__module__ = 'novaclient.exceptions'
__ne__ = <method-wrapper '__ne__' of BadRequest object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of BadRequest object>
__reduce_ex__ = <built-in method __reduce_ex__ of BadRequest object>
__repr__ = <method-wrapper '__repr__' of BadRequest object>
__setattr__ = <method-wrapper '__setattr__' of BadRequest object>
__setstate__ = <built-in method __setstate__ of BadRequest object>
__sizeof__ = <built-in method __sizeof__ of BadRequest object>
__str__ = <bound method ClientException.__str__ of BadRequest()>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = ()
code = 400
details = None
http_status = 400
message = 'Network e442bf90-18d6-4812-90bf-9da7d6994f52 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-4c9a4778-c88f-4473-8ab0-4593f072329c'
url = '/servers'
with_traceback = <built-in method with_traceback of BadRequest object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/neutron/test_routers_basic.py", line 40, in test_basic_snat_behavior_without_external_connectivity
vm1_fixture = self.create_vm(vn1_fixture, image_name='cirros')
File "/contrail-test/common/base.py", line 281, in create_vm
**kwargs)
File "/contrail-test/common/base.py", line 254, in create_only_vm
vm_obj.setUp()
File "/contrail-test/fixtures/vm_test.py", line 193, in setUp
self.create()
File "/contrail-test/fixtures/vm_test.py", line 245, in create
fixed_ips=self.fixed_ips)
File "/contrail-test/fixtures/openstack.py", 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 "/contrail-test/fixtures/nova_test.py", line 611, in create_vm
min_count=count, max_count=count, userdata=userdata)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 846, in _boot
return_raw=return_raw, **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network e442bf90-18d6-4812-90bf-9da7d6994f52 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-4c9a4778-c88f-4473-8ab0-4593f072329c)

3.117 Log File
test_basic_policy_allow_deny[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity,quick_sanity,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: KeyError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:42 2025

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=<scripts.policy.test_policy.TestBasicPolicyIpv4v...ty,quick_sanity,sanity,suite1] id=0x7f8e13038f60>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestBasicPolicy.test_basic_policy_allow_deny>
self = <scripts.policy.test_policy.TestBasicPolicyIpv4v...ty,quick_sanity,sanity,suite1] id=0x7f8e13038f60>
args = ()
kwargs = {}

/contrail-test/scripts/policy/test_policy_basic.py in test_basic_policy_allow_deny(self=<scripts.policy.test_policy.TestBasicPolicyIpv4v...ty,quick_sanity,sanity,suite1] id=0x7f8e13038f60>)
109 policy_fixture = self.setup_policy_between_vns(vn1_fixture,
110 vn2_fixture, rules)
111 assert vn1_fixture.verify_on_setup()
112 assert vn2_fixture.verify_on_setup()
113
vn1_fixture = <vn_test.VNFixture object>
vn1_fixture.verify_on_setup = <bound method VNFixture.verify_on_setup of <vn_test.VNFixture object>>

/contrail-test/fixtures/vn_test.py in verify_on_setup(self=<vn_test.VNFixture object>)
574 def verify_on_setup(self):
575 result = True
576 if not self.verify_vn_in_api_server():
577 result = result and False
578 self.logger.error(
self = <vn_test.VNFixture object>
self.verify_vn_in_api_server = <bound method retry.<locals>.deco_retry.<locals>.f_retry of <vn_test.VNFixture object>>

/contrail-test/tcutils/util.py in f_retry(*args=(<vn_test.VNFixture object>,), **kwargs={})
82 mtries, mdelay = tries, delay # make mutable
83
84 result = f(*args, **kwargs) # first attempt
85 rv = result
86 final = False
result undefined
f = <function VNFixture.verify_vn_in_api_server>
args = (<vn_test.VNFixture object>,)
kwargs = {}

/contrail-test/fixtures/vn_test.py in verify_vn_in_api_server(self=<vn_test.VNFixture object>)
638
639 subnets = list()
640 for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
641 subnets.extend(ipam['attr']['ipam_subnets'])
642 for vn_subnet in self.vn_subnets:
ipam undefined
self = <vn_test.VNFixture object>
self.api_s_vn_obj = {'virtual-network': {'uuid': 'dbfa7958-6de4-4102...2/project/0b77b05f-cbd6-4839-9483-185d289a34fb'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/policy/test_policy_basic.py", line 111, in test_basic_policy_allow_deny
assert vn1_fixture.verify_on_setup()
File "/contrail-test/fixtures/vn_test.py", line 576, in verify_on_setup
if not self.verify_vn_in_api_server():
File "/contrail-test/tcutils/util.py", line 84, in f_retry
result = f(*args, **kwargs) # first attempt
File "/contrail-test/fixtures/vn_test.py", line 640, in verify_vn_in_api_server
for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
KeyError: 'network_ipam_refs'

3.740 Log File
test_remove_policy_with_ref[ci_sanity,sanity]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: TestFailed
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:48 2025

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=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestBasicPolicyNegativeIpv4v6.test_remove_policy_with_ref>
self = <scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>
args = ()
kwargs = {}

/contrail-test/scripts/policy/test_policy.py in test_remove_policy_with_ref(self=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>)
623 @preposttest_wrapper
624 def test_remove_policy_with_ref(self):
625 super(TestBasicPolicyNegativeIpv4v6, self).test_remove_policy_with_ref()
626
627 class TestBasicPolicyModifyIpv4v6(test_policy_basic.TestBasicPolicyModify):
builtinsuper = <class 'super'>
global TestBasicPolicyNegativeIpv4v6 = <class 'scripts.policy.test_policy.TestBasicPolicyNegativeIpv4v6'>
self = <scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>
).test_remove_policy_with_ref = <bound method TestBasicPolicyNegativeIpv4v6.test...cy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>>

/contrail-test/tcutils/wrappers.py in wrapper(self=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>, *args=(), **kwargs={})
174 if 'ci_image' in list(os.environ.keys()):
175 os.environ['stop_execution_flag'] = 'set'
176 raise TestFailed("\n ".join(errmsg))
177 elif testskip:
178 log.info('')
global TestFailed = <class 'tcutils.cores.TestFailed'>
"\n ".join undefined
errmsg = ["Test failed: KeyError\nPython 3.6.8: /usr/bin/pyt...ork_ipam_refs']:\nKeyError: 'network_ipam_refs'\n\n\n"]
TestFailed: Test failed: KeyError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:48 2025

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=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestBasicPolicyNegative.test_remove_policy_with_ref>
self = <scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>
args = ()
kwargs = {}

/contrail-test/scripts/policy/test_policy_basic.py in test_remove_policy_with_ref(self=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>)
224 vn1_fixture.bind_policies(
225 [policy_fixture.policy_fq_name], vn1_fixture.vn_id)
226 assert vn1_fixture.verify_on_setup()
227 ret = policy_fixture.verify_on_setup()
228 if ret['result'] == False:
vn1_fixture = <vn_test.VNFixture object>
vn1_fixture.verify_on_setup = <bound method VNFixture.verify_on_setup of <vn_test.VNFixture object>>

/contrail-test/fixtures/vn_test.py in verify_on_setup(self=<vn_test.VNFixture object>)
574 def verify_on_setup(self):
575 result = True
576 if not self.verify_vn_in_api_server():
577 result = result and False
578 self.logger.error(
self = <vn_test.VNFixture object>
self.verify_vn_in_api_server = <bound method retry.<locals>.deco_retry.<locals>.f_retry of <vn_test.VNFixture object>>

/contrail-test/tcutils/util.py in f_retry(*args=(<vn_test.VNFixture object>,), **kwargs={})
82 mtries, mdelay = tries, delay # make mutable
83
84 result = f(*args, **kwargs) # first attempt
85 rv = result
86 final = False
result undefined
f = <function VNFixture.verify_vn_in_api_server>
args = (<vn_test.VNFixture object>,)
kwargs = {}

/contrail-test/fixtures/vn_test.py in verify_vn_in_api_server(self=<vn_test.VNFixture object>)
638
639 subnets = list()
640 for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
641 subnets.extend(ipam['attr']['ipam_subnets'])
642 for vn_subnet in self.vn_subnets:
ipam undefined
self = <vn_test.VNFixture object>
self.api_s_vn_obj = {'virtual-network': {'uuid': '03d926bf-9ca9-41ef...2/project/d01e607d-98ab-4ef8-bd7a-da28a0b836df'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/policy/test_policy_basic.py", line 226, in test_remove_policy_with_ref
assert vn1_fixture.verify_on_setup()
File "/contrail-test/fixtures/vn_test.py", line 576, in verify_on_setup
if not self.verify_vn_in_api_server():
File "/contrail-test/tcutils/util.py", line 84, in f_retry
result = f(*args, **kwargs) # first attempt
File "/contrail-test/fixtures/vn_test.py", line 640, in verify_vn_in_api_server
for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
KeyError: 'network_ipam_refs'



__cause__ = None
__class__ = <class 'tcutils.cores.TestFailed'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of TestFailed object>
__dict__ = {}
__dir__ = <built-in method __dir__ of TestFailed object>
__doc__ = None
__eq__ = <method-wrapper '__eq__' of TestFailed object>
__format__ = <built-in method __format__ of TestFailed object>
__ge__ = <method-wrapper '__ge__' of TestFailed object>
__getattribute__ = <method-wrapper '__getattribute__' of TestFailed object>
__gt__ = <method-wrapper '__gt__' of TestFailed object>
__hash__ = <method-wrapper '__hash__' of TestFailed object>
__init__ = <method-wrapper '__init__' of TestFailed object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of TestFailed object>
__lt__ = <method-wrapper '__lt__' of TestFailed object>
__module__ = 'tcutils.cores'
__ne__ = <method-wrapper '__ne__' of TestFailed object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of TestFailed object>
__reduce_ex__ = <built-in method __reduce_ex__ of TestFailed object>
__repr__ = <method-wrapper '__repr__' of TestFailed object>
__setattr__ = <method-wrapper '__setattr__' of TestFailed object>
__setstate__ = <built-in method __setstate__ of TestFailed object>
__sizeof__ = <built-in method __sizeof__ of TestFailed object>
__str__ = <method-wrapper '__str__' of TestFailed object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = ("Test failed: KeyError\nPython 3.6.8: /usr/bin/pyt...ork_ipam_refs']:\nKeyError: 'network_ipam_refs'\n\n\n",)
with_traceback = <built-in method with_traceback of TestFailed object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/policy/test_policy.py", line 625, in test_remove_policy_with_ref
super(TestBasicPolicyNegativeIpv4v6, self).test_remove_policy_with_ref()
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: KeyError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:48 2025

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=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestBasicPolicyNegative.test_remove_policy_with_ref>
self = <scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>
args = ()
kwargs = {}

/contrail-test/scripts/policy/test_policy_basic.py in test_remove_policy_with_ref(self=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f8e1549a940>)
224 vn1_fixture.bind_policies(
225 [policy_fixture.policy_fq_name], vn1_fixture.vn_id)
226 assert vn1_fixture.verify_on_setup()
227 ret = policy_fixture.verify_on_setup()
228 if ret['result'] == False:
vn1_fixture = <vn_test.VNFixture object>
vn1_fixture.verify_on_setup = <bound method VNFixture.verify_on_setup of <vn_test.VNFixture object>>

/contrail-test/fixtures/vn_test.py in verify_on_setup(self=<vn_test.VNFixture object>)
574 def verify_on_setup(self):
575 result = True
576 if not self.verify_vn_in_api_server():
577 result = result and False
578 self.logger.error(
self = <vn_test.VNFixture object>
self.verify_vn_in_api_server = <bound method retry.<locals>.deco_retry.<locals>.f_retry of <vn_test.VNFixture object>>

/contrail-test/tcutils/util.py in f_retry(*args=(<vn_test.VNFixture object>,), **kwargs={})
82 mtries, mdelay = tries, delay # make mutable
83
84 result = f(*args, **kwargs) # first attempt
85 rv = result
86 final = False
result undefined
f = <function VNFixture.verify_vn_in_api_server>
args = (<vn_test.VNFixture object>,)
kwargs = {}

/contrail-test/fixtures/vn_test.py in verify_vn_in_api_server(self=<vn_test.VNFixture object>)
638
639 subnets = list()
640 for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
641 subnets.extend(ipam['attr']['ipam_subnets'])
642 for vn_subnet in self.vn_subnets:
ipam undefined
self = <vn_test.VNFixture object>
self.api_s_vn_obj = {'virtual-network': {'uuid': '03d926bf-9ca9-41ef...2/project/d01e607d-98ab-4ef8-bd7a-da28a0b836df'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/policy/test_policy_basic.py", line 226, in test_remove_policy_with_ref
assert vn1_fixture.verify_on_setup()
File "/contrail-test/fixtures/vn_test.py", line 576, in verify_on_setup
if not self.verify_vn_in_api_server():
File "/contrail-test/tcutils/util.py", line 84, in f_retry
result = f(*args, **kwargs) # first attempt
File "/contrail-test/fixtures/vn_test.py", line 640, in verify_vn_in_api_server
for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
KeyError: 'network_ipam_refs'

2.762 Log File
test_basic_policy_allow_deny[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity,quick_sanity,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: KeyError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:54 2025

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=<scripts.policy.test_policy_basic.TestBasicPolic...ty,quick_sanity,sanity,suite1] id=0x7f8e154d64e0>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestBasicPolicy.test_basic_policy_allow_deny>
self = <scripts.policy.test_policy_basic.TestBasicPolic...ty,quick_sanity,sanity,suite1] id=0x7f8e154d64e0>
args = ()
kwargs = {}

/contrail-test/scripts/policy/test_policy_basic.py in test_basic_policy_allow_deny(self=<scripts.policy.test_policy_basic.TestBasicPolic...ty,quick_sanity,sanity,suite1] id=0x7f8e154d64e0>)
109 policy_fixture = self.setup_policy_between_vns(vn1_fixture,
110 vn2_fixture, rules)
111 assert vn1_fixture.verify_on_setup()
112 assert vn2_fixture.verify_on_setup()
113
vn1_fixture = <vn_test.VNFixture object>
vn1_fixture.verify_on_setup = <bound method VNFixture.verify_on_setup of <vn_test.VNFixture object>>

/contrail-test/fixtures/vn_test.py in verify_on_setup(self=<vn_test.VNFixture object>)
574 def verify_on_setup(self):
575 result = True
576 if not self.verify_vn_in_api_server():
577 result = result and False
578 self.logger.error(
self = <vn_test.VNFixture object>
self.verify_vn_in_api_server = <bound method retry.<locals>.deco_retry.<locals>.f_retry of <vn_test.VNFixture object>>

/contrail-test/tcutils/util.py in f_retry(*args=(<vn_test.VNFixture object>,), **kwargs={})
82 mtries, mdelay = tries, delay # make mutable
83
84 result = f(*args, **kwargs) # first attempt
85 rv = result
86 final = False
result undefined
f = <function VNFixture.verify_vn_in_api_server>
args = (<vn_test.VNFixture object>,)
kwargs = {}

/contrail-test/fixtures/vn_test.py in verify_vn_in_api_server(self=<vn_test.VNFixture object>)
638
639 subnets = list()
640 for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
641 subnets.extend(ipam['attr']['ipam_subnets'])
642 for vn_subnet in self.vn_subnets:
ipam undefined
self = <vn_test.VNFixture object>
self.api_s_vn_obj = {'virtual-network': {'uuid': '44ce1d47-a323-428f...2/project/63a6fff0-3f19-4701-a92a-c6e3383fa6ca'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/policy/test_policy_basic.py", line 111, in test_basic_policy_allow_deny
assert vn1_fixture.verify_on_setup()
File "/contrail-test/fixtures/vn_test.py", line 576, in verify_on_setup
if not self.verify_vn_in_api_server():
File "/contrail-test/tcutils/util.py", line 84, in f_retry
result = f(*args, **kwargs) # first attempt
File "/contrail-test/fixtures/vn_test.py", line 640, in verify_vn_in_api_server
for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
KeyError: 'network_ipam_refs'

3.477 Log File
test_rp_interface[ci_sanity,sanity]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: BadRequest
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:24:01 2025

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=<scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7f8e1528aba8>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestRP.test_rp_interface>
self = <scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7f8e1528aba8>
args = ()
kwargs = {}

/contrail-test/scripts/routing_policy/test_routing_policy.py in test_rp_interface(self=<scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7f8e1528aba8>)
38 3. Attach policy to VN and confirm if policy takes hold.
39 '''
40 ret_dict = self.config_basic()
41 vn_fixture = ret_dict['vn_fixture']
42 test_vm = ret_dict['test_vm']
ret_dict undefined
self = <scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7f8e1528aba8>
self.config_basic = <bound method RPBase.config_basic of <scripts.ro...p_interface[ci_sanity,sanity] id=0x7f8e1528aba8>>

/contrail-test/scripts/routing_policy/base.py in config_basic(self=<scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7f8e1528aba8>)
41 vn2_fixture.add_route_target(vn2_fixture.ri_name, self.inputs.router_asn, rt_value)
42 test_vm = self.create_vm(vn_fixture, 'test_vm',
43 image_name='cirros')
44 test2_vm = self.create_vm(vn2_fixture, 'test2_vm', image_name='cirros')
45 assert test_vm.wait_till_vm_is_up()
image_name undefined

/contrail-test/common/base.py in create_vm(self=<scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7f8e1528aba8>, vn_fixture=<vn_test.VNFixture object>, vm_name='test_vm', image_name='cirros', port_ids=None, **kwargs={})
279 image_name=image_name,
280 port_ids=port_ids,
281 **kwargs)
282 if cleanup:
283 self.addCleanup(vm_fixture.cleanUp)
kwargs = {}

/contrail-test/common/base.py in create_only_vm(cls=<class 'scripts.routing_policy.test_routing_policy.TestRP'>, vn_fixture=<vn_test.VNFixture object>, vm_name='test_vm', image_name='cirros', **kwargs={'port_ids': None})
252 image_name=image_name,
253 **kwargs)
254 vm_obj.setUp()
255 return vm_obj
256 # end create_only_vm
vm_obj = <VMFixture: test_vm>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: test_vm>>

/contrail-test/fixtures/vm_test.py in setUp(self=<VMFixture: test_vm>)
191 def setUp(self):
192 super(VMFixture, self).setUp()
193 self.create()
194
195 def create(self):
self = <VMFixture: test_vm>
self.create = <bound method VMFixture.create of <VMFixture: test_vm>>

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: test_vm>)
243 userdata=self.userdata,
244 port_ids=self.port_ids,
245 fixed_ips=self.fixed_ips)
246 self.created = True
247 self.vm_obj = objs[0]
fixed_ips undefined
self = <VMFixture: test_vm>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='test_vm', image_name='cirros', vn_objs=[{'network': {'id': 'bc8b6d96-0f94-40f9-86a8-44c7...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '2834246f-3e33-48ce-a4fb-e0c0dc1146a4', 'sg_ids': [], 'userdata': None, 'zone': 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 = <openstack.OpenstackOrchestrator object>
self.nova_h = <nova_test.NovaHelper object>
self.nova_h.create_vm = <bound method NovaHelper.create_vm of <nova_test.NovaHelper object>>
vm_name = 'test_vm'
image_name = 'cirros'
vn_ids = ['bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '2834246f-3e33-48ce-a4fb-e0c0dc1146a4', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='2834246f-3e33-48ce-a4fb-e0c0dc1146a4', image_name='cirros', vm_name='test_vm', vn_ids=['bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0'], node_name='cn-jenkins-deploy-platform-ansible-os-3927-1', sg_ids=[], count=1, userdata=None, flavor=<Flavor: contrail_flavor_tiny>, port_ids=None, fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1')
609 config_drive=config_drive,
610 key_name=self.key, availability_zone=zone,
611 min_count=count, max_count=count, userdata=userdata)
612 vm_objs = self.get_vm_list(name_pattern=vm_name,
613 project_id=project_uuid)
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='test_vm', image=<RequestIdProxy at 0x7f8e11123a08 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata=None, key_name='ctest_ctest-TestRP-14592740ctest-TestRP-14592740key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0'}], 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 = "server" if not reservation_id else "reservation_id"
1481 return self._boot(response_key, *boot_args, **boot_kwargs)
1482
1483 @api_versions.wraps("2.0", "2.18")
self = <novaclient.v2.servers.ServerManager object>
self._boot = <bound method ServerManager._boot of <novaclient.v2.servers.ServerManager object>>
response_key = 'server'
boot_args = ['test_vm', <RequestIdProxy at 0x7f8e11123a08 for image>, <Flavor: contrail_flavor_tiny>]
boot_kwargs = {'access_ip_v4': None, 'access_ip_v6': None, 'admin_pass': None, 'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRP-14592740ctest-TestRP-14592740key1', ...}

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='test_vm', image=<RequestIdProxy at 0x7f8e11123a08 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, userdata=None, reservation_id=False, return_raw=False, min_count=1, max_count=1, security_groups=[], key_name='ctest_ctest-TestRP-14592740ctest-TestRP-14592740key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0'}], 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={})
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
848 def get(self, server):
return_raw = False
kwargs = {}

/usr/local/lib/python3.6/site-packages/novaclient/base.py in _create(self=<novaclient.v2.servers.ServerManager object>, url='/servers', body={'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRP-14592740ctest-TestRP-14592740key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': 'bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0'}]}}, response_key='server', return_raw=False, obj_class=None, **kwargs={})
362 obj_class=None, **kwargs):
363 self.run_hooks('modify_body_for_create', 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 = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRP-14592740ctest-TestRP-14592740key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': 'bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0'}]}}
self = <novaclient.v2.servers.ServerManager object>
self.api = <novaclient.v2.client.Client object>
self.api.client = <novaclient.client.SessionClient object>
self.api.client.post = <bound method Adapter.post of <novaclient.client.SessionClient object>>
url = '/servers'

/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py in post(self=<novaclient.client.SessionClient object>, url='/servers', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRP-14592740ctest-TestRP-14592740key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': 'bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0'}]}}})
390
391 def post(self, url, **kwargs):
392 return self.request(url, 'POST', **kwargs)
393
394 def put(self, url, **kwargs):
self = <novaclient.client.SessionClient object>
self.request = <bound method SessionClient.request of <novaclient.client.SessionClient object>>
url = '/servers'
kwargs = {'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRP-14592740ctest-TestRP-14592740key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': 'bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0'}]}}}

/usr/local/lib/python3.6/site-packages/novaclient/client.py in request(self=<novaclient.client.SessionClient object>, url='/servers', method='POST', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRP-14592740ctest-TestRP-14592740key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': 'bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorMZdi9Y4RLYp8tdxI2qWbqbp18YMy51tmDER5GgB...pXzFYQUixci-jSEcp0bNYvYIzDNeokykW5wpLfOSlpoSCnUg8'}})
76 # api_versions.check_headers(resp, self.api_version)
77 if raise_exc and resp.status_code >= 400:
78 raise exceptions.from_response(resp, body, url, method)
79
80 return resp, body
global exceptions = <module 'novaclient.exceptions' from '/usr/local...ython3.6/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-4ea90ba4-0f28-467d-b1f5-99bc2d10bb08)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-4ea90ba4-0f28-467d-b1f5-99bc2d10bb08', 'url': '/servers'}
__dir__ = <built-in method __dir__ of BadRequest object>
__doc__ = '\n HTTP 400 - Bad request: you sent some malformed data.\n '
__eq__ = <method-wrapper '__eq__' of BadRequest object>
__format__ = <built-in method __format__ of BadRequest object>
__ge__ = <method-wrapper '__ge__' of BadRequest object>
__getattribute__ = <method-wrapper '__getattribute__' of BadRequest object>
__gt__ = <method-wrapper '__gt__' of BadRequest object>
__hash__ = <method-wrapper '__hash__' of BadRequest object>
__init__ = <bound method ClientException.__init__ of BadRequest()>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of BadRequest object>
__lt__ = <method-wrapper '__lt__' of BadRequest object>
__module__ = 'novaclient.exceptions'
__ne__ = <method-wrapper '__ne__' of BadRequest object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of BadRequest object>
__reduce_ex__ = <built-in method __reduce_ex__ of BadRequest object>
__repr__ = <method-wrapper '__repr__' of BadRequest object>
__setattr__ = <method-wrapper '__setattr__' of BadRequest object>
__setstate__ = <built-in method __setstate__ of BadRequest object>
__sizeof__ = <built-in method __sizeof__ of BadRequest object>
__str__ = <bound method ClientException.__str__ of BadRequest()>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = ()
code = 400
details = None
http_status = 400
message = 'Network bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-4ea90ba4-0f28-467d-b1f5-99bc2d10bb08'
url = '/servers'
with_traceback = <built-in method with_traceback of BadRequest object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/routing_policy/test_routing_policy.py", line 40, in test_rp_interface
ret_dict = self.config_basic()
File "/contrail-test/scripts/routing_policy/base.py", line 43, in config_basic
image_name='cirros')
File "/contrail-test/common/base.py", line 281, in create_vm
**kwargs)
File "/contrail-test/common/base.py", line 254, in create_only_vm
vm_obj.setUp()
File "/contrail-test/fixtures/vm_test.py", line 193, in setUp
self.create()
File "/contrail-test/fixtures/vm_test.py", line 245, in create
fixed_ips=self.fixed_ips)
File "/contrail-test/fixtures/openstack.py", 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 "/contrail-test/fixtures/nova_test.py", line 611, in create_vm
min_count=count, max_count=count, userdata=userdata)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 846, in _boot
return_raw=return_raw, **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network bc8b6d96-0f94-40f9-86a8-44c7e27ca5c0 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-4ea90ba4-0f28-467d-b1f5-99bc2d10bb08)

3.726 Log File
test_svc_in_network_datapath[ci_sanity]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: KeyError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:24:06 2025

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=<scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7f8e12ab4780>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestSvcRegr.test_svc_in_network_datapath>
self = <scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7f8e12ab4780>
args = ()
kwargs = {}

/contrail-test/scripts/svc_firewall/test_svc_fw.py in test_svc_in_network_datapath(self=<scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7f8e12ab4780>)
24 def test_svc_in_network_datapath(self):
25 return self.verify_svc_chain(svc_img_name='cirros_in_net', service_mode='in-network',
26 create_svms=True)
27
28
create_svms undefined

/contrail-test/common/servicechain/verify.py in verify_svc_chain(self=<scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7f8e12ab4780>, *args=(), **kwargs={'create_svms': True, 'service_mode': 'in-network', 'svc_img_name': 'cirros_in_net'})
318 def verify_svc_chain(self, *args, **kwargs):
319 svc_chain_info = kwargs.get('svc_chain_info')
320 ret_dict = svc_chain_info or self.config_svc_chain(*args, **kwargs)
321 proto = kwargs.get('proto', 'any')
322 left_vn_fq_name = ret_dict.get('left_vn_fixture').vn_fq_name
ret_dict undefined
svc_chain_info = None
self = <scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7f8e12ab4780>
self.config_svc_chain = <bound method ConfigSvcChain.config_svc_chain of...n_network_datapath[ci_sanity] id=0x7f8e12ab4780>>
args = ()
kwargs = {'create_svms': True, 'service_mode': 'in-network', 'svc_img_name': 'cirros_in_net'}

/contrail-test/common/servicechain/config.py in config_svc_chain(self=<scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7f8e12ab4780>, service_mode='in-network', service_type='firewall', max_inst=1, proto='any', svc_chain_type='parallel', src_ports=[0, 65535], dst_ports=[0, 65535], svc_img_name='cirros_in_net', st_version=2, mgmt_vn_name=None, mgmt_vn_subnets=[], mgmt_vn_fixture=None, left_vn_name=None, left_vn_subnets=[], left_vn_fixture=None, right_vn_name=None, right_vn_subnets=[], right_vn_fixture=None, left_lr_child_vn_fixture=None, right_lr_child_vn_fixture=None, left_vm_name=None, left_vm_fixture=None, right_vm_name=None, right_vm_fixture=None, image_name='cirros', policy_fixture=None, st_fixture=None, si_fixture=None, port_tuples_props=None, static_route=None, svm_fixtures=[], create_svms=True, evpn=False, modify_rules=False, policy_action='pass', hosts=[], **kwargs={})
444 mgmt_vn_fixture,
445 'mgmt_vn',
446 **kwargs)
447
448 # Left
kwargs = {}

/contrail-test/common/servicechain/config.py in _get_vn_for_config(self=<scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7f8e12ab4780>, vn_name='ctest-mgmt_vn-73967457', vn_subnets=['80.3.166.64/26'], vn_fixture=None, vn_name_prefix='mgmt_vn', **kwargs={})
355 vn_subnets = vn_subnets or \
356 [get_random_cidr(af=self.inputs.get_af())]
357 vn_fixture = vn_fixture or self.config_vn(vn_name, vn_subnets, **kwargs)
358 vn_fq_name = vn_fixture.vn_fq_name
359 return (vn_name, vn_subnets, vn_fixture, vn_fq_name)
vn_fixture = None
self = <scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7f8e12ab4780>
self.config_vn = <bound method ConfigSvcChain.config_vn of <scrip...n_network_datapath[ci_sanity] id=0x7f8e12ab4780>>
vn_name = 'ctest-mgmt_vn-73967457'
vn_subnets = ['80.3.166.64/26']
kwargs = {}

/contrail-test/common/servicechain/config.py in config_vn(self=<scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7f8e12ab4780>, vn_name='ctest-mgmt_vn-73967457', vn_net=['80.3.166.64/26'], **kwargs={})
137 project_name=self.inputs.project_name, connections=self.connections,
138 vn_name=vn_name, inputs=self.inputs, subnets=vn_net, **kwargs))
139 assert vn_fixture.verify_on_setup()
140 return vn_fixture
141
vn_fixture = <vn_test.VNFixture object>
vn_fixture.verify_on_setup = <bound method VNFixture.verify_on_setup of <vn_test.VNFixture object>>

/contrail-test/fixtures/vn_test.py in verify_on_setup(self=<vn_test.VNFixture object>)
574 def verify_on_setup(self):
575 result = True
576 if not self.verify_vn_in_api_server():
577 result = result and False
578 self.logger.error(
self = <vn_test.VNFixture object>
self.verify_vn_in_api_server = <bound method retry.<locals>.deco_retry.<locals>.f_retry of <vn_test.VNFixture object>>

/contrail-test/tcutils/util.py in f_retry(*args=(<vn_test.VNFixture object>,), **kwargs={})
82 mtries, mdelay = tries, delay # make mutable
83
84 result = f(*args, **kwargs) # first attempt
85 rv = result
86 final = False
result undefined
f = <function VNFixture.verify_vn_in_api_server>
args = (<vn_test.VNFixture object>,)
kwargs = {}

/contrail-test/fixtures/vn_test.py in verify_vn_in_api_server(self=<vn_test.VNFixture object>)
638
639 subnets = list()
640 for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
641 subnets.extend(ipam['attr']['ipam_subnets'])
642 for vn_subnet in self.vn_subnets:
ipam undefined
self = <vn_test.VNFixture object>
self.api_s_vn_obj = {'virtual-network': {'uuid': 'ccb9fe79-3cd6-4562...2/project/747e41d7-0bb9-4bcb-8819-87200b9ddfb9'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/svc_firewall/test_svc_fw.py", line 26, in test_svc_in_network_datapath
create_svms=True)
File "/contrail-test/common/servicechain/verify.py", line 320, in verify_svc_chain
ret_dict = svc_chain_info or self.config_svc_chain(*args, **kwargs)
File "/contrail-test/common/servicechain/config.py", line 446, in config_svc_chain
**kwargs)
File "/contrail-test/common/servicechain/config.py", line 357, in _get_vn_for_config
vn_fixture = vn_fixture or self.config_vn(vn_name, vn_subnets, **kwargs)
File "/contrail-test/common/servicechain/config.py", line 139, in config_vn
assert vn_fixture.verify_on_setup()
File "/contrail-test/fixtures/vn_test.py", line 576, in verify_on_setup
if not self.verify_vn_in_api_server():
File "/contrail-test/tcutils/util.py", line 84, in f_retry
result = f(*args, **kwargs) # first attempt
File "/contrail-test/fixtures/vn_test.py", line 640, in verify_vn_in_api_server
for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
KeyError: 'network_ipam_refs'

1.634 Log File
test_vdns_ping_same_vn[ci_sanity,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: stderr: {{{
/contrail-test/tcutils/control/cn_introspect_utils.py:40: FutureWarning: The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.
if not p:
}}}

Traceback (most recent call last):
File "/contrail-test/tcutils/util.py", line 1041, in wrapper
return f(self, *func_args, **func_kwargs)
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: BadRequest
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:24:12 2025

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=<scripts.vdns.test_vdns_basic.TestvDNSBasic0.tes...me_vn[ci_sanity,sanity,suite1] id=0x7f8e12a78860>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestvDNSBasic0.test_vdns_ping_same_vn>
self = <scripts.vdns.test_vdns_basic.TestvDNSBasic0.tes...me_vn[ci_sanity,sanity,suite1] id=0x7f8e12a78860>
args = ()
kwargs = {}

/contrail-test/scripts/vdns/test_vdns_basic.py in test_vdns_ping_same_vn(self=<scripts.vdns.test_vdns_basic.TestvDNSBasic0.tes...me_vn[ci_sanity,sanity,suite1] id=0x7f8e12a78860>)
93 vn_name=vn_fixt.vn_name, project_id=proj_fixt.uuid)
94 vm_fixture[vm_name] = self.useFixture(
95 VMFixture(project_name=self.inputs.project_name, connections=self.connections, vn_obj=vn_quantum_obj, vm_name=vm_name,image_name='ubuntu-traffic'))
96 assert vm_fixture[vm_name].wait_till_vm_is_up(), ('VM %s'
97 ' failed to come up' % (vm_name))
global VMFixture = <class 'vm_test.VMFixture'>
project_name undefined
self = <scripts.vdns.test_vdns_basic.TestvDNSBasic0.tes...me_vn[ci_sanity,sanity,suite1] id=0x7f8e12a78860>
self.inputs = <common.contrail_test_init.ContrailTestInit object>
self.inputs.project_name = 'ctest-TestvDNSBasic0-48609383'
connections undefined
self.connections = <common.connections.ContrailConnections object>
vn_obj undefined
vn_quantum_obj = {'network': {'id': 'e7a7626b-f9a3-4694-9351-6a91...port_security_enabled': True, 'description': ''}}
vm_name = 'ctest-vm1-test-59736405'
image_name undefined

/usr/local/lib/python3.6/site-packages/testtools/testcase.py in useFixture(self=<scripts.vdns.test_vdns_basic.TestvDNSBasic0.tes...me_vn[ci_sanity,sanity,suite1] id=0x7f8e12a78860>, fixture=<VMFixture: ctest-vm1-test-59736405>)
754 # Gather_details worked, so raise the exception setUp
755 # encountered.
756 reraise(*exc_info)
757 else:
758 self.addCleanup(fixture.cleanUp)
global reraise = <function reraise>
exc_info = (<class 'novaclient.exceptions.BadRequest'>, BadRequest(), <traceback object>)

/usr/local/lib/python3.6/site-packages/testtools/_compat3x.py in reraise(exc_class=<class 'novaclient.exceptions.BadRequest'>, exc_obj=BadRequest(), exc_tb=<traceback object>, _marker=<object object>)
13
14 def reraise(exc_class, exc_obj, exc_tb, _marker=object()):
15 """Re-raise an exception received from sys.exc_info() or similar."""
16 raise exc_obj.with_traceback(exc_tb)
17
exc_obj = BadRequest()
exc_obj.with_traceback = <built-in method with_traceback of BadRequest object>
exc_tb = <traceback object>

/usr/local/lib/python3.6/site-packages/testtools/testcase.py in useFixture(self=<scripts.vdns.test_vdns_basic.TestvDNSBasic0.tes...me_vn[ci_sanity,sanity,suite1] id=0x7f8e12a78860>, fixture=<VMFixture: ctest-vm1-test-59736405>)
729 """
730 try:
731 fixture.setUp()
732 except MultipleExceptions as e:
733 if (fixtures is not None and
fixture = <VMFixture: ctest-vm1-test-59736405>
fixture.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-vm1-test-59736405>>

/contrail-test/fixtures/vm_test.py in setUp(self=<VMFixture: ctest-vm1-test-59736405>)
191 def setUp(self):
192 super(VMFixture, self).setUp()
193 self.create()
194
195 def create(self):
self = <VMFixture: ctest-vm1-test-59736405>
self.create = <bound method VMFixture.create of <VMFixture: ctest-vm1-test-59736405>>

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-vm1-test-59736405>)
243 userdata=self.userdata,
244 port_ids=self.port_ids,
245 fixed_ips=self.fixed_ips)
246 self.created = True
247 self.vm_obj = objs[0]
fixed_ips undefined
self = <VMFixture: ctest-vm1-test-59736405>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-vm1-test-59736405', image_name='cirros', vn_objs=[{'network': {'id': 'e7a7626b-f9a3-4694-9351-6a91...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': [], 'project_uuid': '9d108701-6550-42ca-a061-47b8e90d27d8', 'sg_ids': [], 'userdata': None, 'zone': 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 = <openstack.OpenstackOrchestrator object>
self.nova_h = <nova_test.NovaHelper object>
self.nova_h.create_vm = <bound method NovaHelper.create_vm of <nova_test.NovaHelper object>>
vm_name = 'ctest-vm1-test-59736405'
image_name = 'cirros'
vn_ids = ['e7a7626b-f9a3-4694-9351-6a91695c6755']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': [], 'project_uuid': '9d108701-6550-42ca-a061-47b8e90d27d8', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='9d108701-6550-42ca-a061-47b8e90d27d8', image_name='cirros', vm_name='ctest-vm1-test-59736405', vn_ids=['e7a7626b-f9a3-4694-9351-6a91695c6755'], node_name='cn-jenkins-deploy-platform-ansible-os-3927-1', sg_ids=[], count=1, userdata=None, flavor=<Flavor: contrail_flavor_tiny>, port_ids=[], fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1')
609 config_drive=config_drive,
610 key_name=self.key, availability_zone=zone,
611 min_count=count, max_count=count, userdata=userdata)
612 vm_objs = self.get_vm_list(name_pattern=vm_name,
613 project_id=project_uuid)
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-vm1-test-59736405', image=<RequestIdProxy at 0x7f8e1053f048 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata=None, key_name='ctest_ctest-TestvDNSBasic0-48609383ctest-TestvDNSBasic0-48609383key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'e7a7626b-f9a3-4694-9351-6a91695c6755'}], 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 = "server" if not reservation_id else "reservation_id"
1481 return self._boot(response_key, *boot_args, **boot_kwargs)
1482
1483 @api_versions.wraps("2.0", "2.18")
self = <novaclient.v2.servers.ServerManager object>
self._boot = <bound method ServerManager._boot of <novaclient.v2.servers.ServerManager object>>
response_key = 'server'
boot_args = ['ctest-vm1-test-59736405', <RequestIdProxy at 0x7f8e1053f048 for image>, <Flavor: contrail_flavor_tiny>]
boot_kwargs = {'access_ip_v4': None, 'access_ip_v6': None, 'admin_pass': None, 'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestvDNSBasic0-48609383ctest-TestvDNSBasic0-48609383key1', ...}

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-vm1-test-59736405', image=<RequestIdProxy at 0x7f8e1053f048 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, userdata=None, reservation_id=False, return_raw=False, min_count=1, max_count=1, security_groups=[], key_name='ctest_ctest-TestvDNSBasic0-48609383ctest-TestvDNSBasic0-48609383key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'e7a7626b-f9a3-4694-9351-6a91695c6755'}], 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={})
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
848 def get(self, server):
return_raw = False
kwargs = {}

/usr/local/lib/python3.6/site-packages/novaclient/base.py in _create(self=<novaclient.v2.servers.ServerManager object>, url='/servers', body={'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestvDNSBasic0-48609383ctest-TestvDNSBasic0-48609383key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-59736405', 'networks': [{'uuid': 'e7a7626b-f9a3-4694-9351-6a91695c6755'}]}}, response_key='server', return_raw=False, obj_class=None, **kwargs={})
362 obj_class=None, **kwargs):
363 self.run_hooks('modify_body_for_create', 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 = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestvDNSBasic0-48609383ctest-TestvDNSBasic0-48609383key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-59736405', 'networks': [{'uuid': 'e7a7626b-f9a3-4694-9351-6a91695c6755'}]}}
self = <novaclient.v2.servers.ServerManager object>
self.api = <novaclient.v2.client.Client object>
self.api.client = <novaclient.client.SessionClient object>
self.api.client.post = <bound method Adapter.post of <novaclient.client.SessionClient object>>
url = '/servers'

/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py in post(self=<novaclient.client.SessionClient object>, url='/servers', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestvDNSBasic0-48609383ctest-TestvDNSBasic0-48609383key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-59736405', 'networks': [{'uuid': 'e7a7626b-f9a3-4694-9351-6a91695c6755'}]}}})
390
391 def post(self, url, **kwargs):
392 return self.request(url, 'POST', **kwargs)
393
394 def put(self, url, **kwargs):
self = <novaclient.client.SessionClient object>
self.request = <bound method SessionClient.request of <novaclient.client.SessionClient object>>
url = '/servers'
kwargs = {'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestvDNSBasic0-48609383ctest-TestvDNSBasic0-48609383key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-59736405', 'networks': [{'uuid': 'e7a7626b-f9a3-4694-9351-6a91695c6755'}]}}}

/usr/local/lib/python3.6/site-packages/novaclient/client.py in request(self=<novaclient.client.SessionClient object>, url='/servers', method='POST', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestvDNSBasic0-48609383ctest-TestvDNSBasic0-48609383key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-59736405', 'networks': [{'uuid': 'e7a7626b-f9a3-4694-9351-6a91695c6755'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorMZpRkqYKvZXnNU4i9do-ueueHvx-Z4oDQs8HmDn...CZNXMwq_R2YXYXx1b4RtufYirqRuocrVQ7daZertwPCQhw9fo'}})
76 # api_versions.check_headers(resp, self.api_version)
77 if raise_exc and resp.status_code >= 400:
78 raise exceptions.from_response(resp, body, url, method)
79
80 return resp, body
global exceptions = <module 'novaclient.exceptions' from '/usr/local...ython3.6/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network e7a7626b-f9a3-4694-9351-6a91695c6755 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network e7a7626b-f9a3-4694-9351-6a91695c6755 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-70abfce9-656b-42d7-8f41-c1c06eb2ae57)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network e7a7626b-f9a3-4694-9351-6a91695c6755 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-70abfce9-656b-42d7-8f41-c1c06eb2ae57', 'url': '/servers'}
__dir__ = <built-in method __dir__ of BadRequest object>
__doc__ = '\n HTTP 400 - Bad request: you sent some malformed data.\n '
__eq__ = <method-wrapper '__eq__' of BadRequest object>
__format__ = <built-in method __format__ of BadRequest object>
__ge__ = <method-wrapper '__ge__' of BadRequest object>
__getattribute__ = <method-wrapper '__getattribute__' of BadRequest object>
__gt__ = <method-wrapper '__gt__' of BadRequest object>
__hash__ = <method-wrapper '__hash__' of BadRequest object>
__init__ = <bound method ClientException.__init__ of BadRequest()>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of BadRequest object>
__lt__ = <method-wrapper '__lt__' of BadRequest object>
__module__ = 'novaclient.exceptions'
__ne__ = <method-wrapper '__ne__' of BadRequest object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of BadRequest object>
__reduce_ex__ = <built-in method __reduce_ex__ of BadRequest object>
__repr__ = <method-wrapper '__repr__' of BadRequest object>
__setattr__ = <method-wrapper '__setattr__' of BadRequest object>
__setstate__ = <built-in method __setstate__ of BadRequest object>
__sizeof__ = <built-in method __sizeof__ of BadRequest object>
__str__ = <bound method ClientException.__str__ of BadRequest()>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = ()
code = 400
details = None
http_status = 400
message = 'Network e7a7626b-f9a3-4694-9351-6a91695c6755 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-70abfce9-656b-42d7-8f41-c1c06eb2ae57'
url = '/servers'
with_traceback = <built-in method with_traceback of BadRequest object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/vdns/test_vdns_basic.py", line 95, in test_vdns_ping_same_vn
VMFixture(project_name=self.inputs.project_name, connections=self.connections, vn_obj=vn_quantum_obj, vm_name=vm_name,image_name='ubuntu-traffic'))
File "/usr/local/lib/python3.6/site-packages/testtools/testcase.py", line 756, in useFixture
reraise(*exc_info)
File "/usr/local/lib/python3.6/site-packages/testtools/_compat3x.py", line 16, in reraise
raise exc_obj.with_traceback(exc_tb)
File "/usr/local/lib/python3.6/site-packages/testtools/testcase.py", line 731, in useFixture
fixture.setUp()
File "/contrail-test/fixtures/vm_test.py", line 193, in setUp
self.create()
File "/contrail-test/fixtures/vm_test.py", line 245, in create
fixed_ips=self.fixed_ips)
File "/contrail-test/fixtures/openstack.py", 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 "/contrail-test/fixtures/nova_test.py", line 611, in create_vm
min_count=count, max_count=count, userdata=userdata)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 846, in _boot
return_raw=return_raw, **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network e7a7626b-f9a3-4694-9351-6a91695c6755 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-70abfce9-656b-42d7-8f41-c1c06eb2ae57)

3.057 Log File
test_vm_file_trf_scp_tests[ci_contrail_go_kolla_ocata_sanity,ci_sanity,quick_sanity,vrouter_gw]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/util.py", line 1041, in wrapper
return f(self, *func_args, **func_kwargs)
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: BadRequest
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:24:16 2025

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=<scripts.vm_regression.test_vm.TestBasicVMVNx.te...anity,quick_sanity,vrouter_gw] id=0x7f8e129de4e0>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestBasicVMVNx.test_vm_file_trf_scp_tests>
self = <scripts.vm_regression.test_vm.TestBasicVMVNx.te...anity,quick_sanity,vrouter_gw] id=0x7f8e129de4e0>
args = ()
kwargs = {}

/contrail-test/scripts/vm_regression/test_vm.py in test_vm_file_trf_scp_tests(self=<scripts.vm_regression.test_vm.TestBasicVMVNx.te...anity,quick_sanity,vrouter_gw] id=0x7f8e129de4e0>)
2862 vm1_fixture = self.create_vm(vn_fixture=vn_fixture,
2863 image_name='ubuntu-sshpass',
2864 orch=self.orchestrator)
2865 vm2_fixture = self.create_vm(vn_fixture=vn_fixture,
2866 image_name='ubuntu-sshpass')
orch undefined
self = <scripts.vm_regression.test_vm.TestBasicVMVNx.te...anity,quick_sanity,vrouter_gw] id=0x7f8e129de4e0>
self.orchestrator = <openstack.OpenstackOrchestrator object>

/contrail-test/common/base.py in create_vm(self=<scripts.vm_regression.test_vm.TestBasicVMVNx.te...anity,quick_sanity,vrouter_gw] id=0x7f8e129de4e0>, vn_fixture=<vn_test.VNFixture object>, vm_name=None, image_name='ubuntu-sshpass', port_ids=None, **kwargs={'orch': <openstack.OpenstackOrchestrator object>})
279 image_name=image_name,
280 port_ids=port_ids,
281 **kwargs)
282 if cleanup:
283 self.addCleanup(vm_fixture.cleanUp)
kwargs = {'orch': <openstack.OpenstackOrchestrator object>}

/contrail-test/common/base.py in create_only_vm(cls=<class 'scripts.vm_regression.test_vm.TestBasicVMVNx'>, vn_fixture=<vn_test.VNFixture object>, vm_name=None, image_name='ubuntu-sshpass', **kwargs={'orch': <openstack.OpenstackOrchestrator object>, 'port_ids': None})
252 image_name=image_name,
253 **kwargs)
254 vm_obj.setUp()
255 return vm_obj
256 # end create_only_vm
vm_obj = <VMFixture: ctest-TestBasicVMVNx-04634084-30991125>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestBasicVMVNx-04634084-30991125>>

/contrail-test/fixtures/vm_test.py in setUp(self=<VMFixture: ctest-TestBasicVMVNx-04634084-30991125>)
191 def setUp(self):
192 super(VMFixture, self).setUp()
193 self.create()
194
195 def create(self):
self = <VMFixture: ctest-TestBasicVMVNx-04634084-30991125>
self.create = <bound method VMFixture.create of <VMFixture: ctest-TestBasicVMVNx-04634084-30991125>>

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestBasicVMVNx-04634084-30991125>)
243 userdata=self.userdata,
244 port_ids=self.port_ids,
245 fixed_ips=self.fixed_ips)
246 self.created = True
247 self.vm_obj = objs[0]
fixed_ips undefined
self = <VMFixture: ctest-TestBasicVMVNx-04634084-30991125>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestBasicVMVNx-04634084-30991125', image_name='cirros', vn_objs=[{'network': {'id': '90dde549-d59d-4b19-80e1-c817...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '680b09aa-69e8-4d7b-ab98-6274cd668c2e', 'sg_ids': [], 'userdata': None, 'zone': 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 = <openstack.OpenstackOrchestrator object>
self.nova_h = <nova_test.NovaHelper object>
self.nova_h.create_vm = <bound method NovaHelper.create_vm of <nova_test.NovaHelper object>>
vm_name = 'ctest-TestBasicVMVNx-04634084-30991125'
image_name = 'cirros'
vn_ids = ['90dde549-d59d-4b19-80e1-c817ab6655c3']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '680b09aa-69e8-4d7b-ab98-6274cd668c2e', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='680b09aa-69e8-4d7b-ab98-6274cd668c2e', image_name='cirros', vm_name='ctest-TestBasicVMVNx-04634084-30991125', vn_ids=['90dde549-d59d-4b19-80e1-c817ab6655c3'], node_name='cn-jenkins-deploy-platform-ansible-os-3927-1', sg_ids=[], count=1, userdata=None, flavor=<Flavor: contrail_flavor_tiny>, port_ids=None, fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1')
609 config_drive=config_drive,
610 key_name=self.key, availability_zone=zone,
611 min_count=count, max_count=count, userdata=userdata)
612 vm_objs = self.get_vm_list(name_pattern=vm_name,
613 project_id=project_uuid)
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-TestBasicVMVNx-04634084-30991125', image=<RequestIdProxy at 0x7f8e10445ac8 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata=None, key_name='ctest_ctest-TestBasicVMVNx-04634084ctest-TestBasicVMVNx-04634084key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '90dde549-d59d-4b19-80e1-c817ab6655c3'}], 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 = "server" if not reservation_id else "reservation_id"
1481 return self._boot(response_key, *boot_args, **boot_kwargs)
1482
1483 @api_versions.wraps("2.0", "2.18")
self = <novaclient.v2.servers.ServerManager object>
self._boot = <bound method ServerManager._boot of <novaclient.v2.servers.ServerManager object>>
response_key = 'server'
boot_args = ['ctest-TestBasicVMVNx-04634084-30991125', <RequestIdProxy at 0x7f8e10445ac8 for image>, <Flavor: contrail_flavor_tiny>]
boot_kwargs = {'access_ip_v4': None, 'access_ip_v6': None, 'admin_pass': None, 'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestBasicVMVNx-04634084ctest-TestBasicVMVNx-04634084key1', ...}

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-TestBasicVMVNx-04634084-30991125', image=<RequestIdProxy at 0x7f8e10445ac8 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, userdata=None, reservation_id=False, return_raw=False, min_count=1, max_count=1, security_groups=[], key_name='ctest_ctest-TestBasicVMVNx-04634084ctest-TestBasicVMVNx-04634084key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '90dde549-d59d-4b19-80e1-c817ab6655c3'}], 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={})
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
848 def get(self, server):
return_raw = False
kwargs = {}

/usr/local/lib/python3.6/site-packages/novaclient/base.py in _create(self=<novaclient.v2.servers.ServerManager object>, url='/servers', body={'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVNx-04634084ctest-TestBasicVMVNx-04634084key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-04634084-30991125', 'networks': [{'uuid': '90dde549-d59d-4b19-80e1-c817ab6655c3'}]}}, response_key='server', return_raw=False, obj_class=None, **kwargs={})
362 obj_class=None, **kwargs):
363 self.run_hooks('modify_body_for_create', 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 = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVNx-04634084ctest-TestBasicVMVNx-04634084key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-04634084-30991125', 'networks': [{'uuid': '90dde549-d59d-4b19-80e1-c817ab6655c3'}]}}
self = <novaclient.v2.servers.ServerManager object>
self.api = <novaclient.v2.client.Client object>
self.api.client = <novaclient.client.SessionClient object>
self.api.client.post = <bound method Adapter.post of <novaclient.client.SessionClient object>>
url = '/servers'

/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py in post(self=<novaclient.client.SessionClient object>, url='/servers', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVNx-04634084ctest-TestBasicVMVNx-04634084key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-04634084-30991125', 'networks': [{'uuid': '90dde549-d59d-4b19-80e1-c817ab6655c3'}]}}})
390
391 def post(self, url, **kwargs):
392 return self.request(url, 'POST', **kwargs)
393
394 def put(self, url, **kwargs):
self = <novaclient.client.SessionClient object>
self.request = <bound method SessionClient.request of <novaclient.client.SessionClient object>>
url = '/servers'
kwargs = {'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVNx-04634084ctest-TestBasicVMVNx-04634084key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-04634084-30991125', 'networks': [{'uuid': '90dde549-d59d-4b19-80e1-c817ab6655c3'}]}}}

/usr/local/lib/python3.6/site-packages/novaclient/client.py in request(self=<novaclient.client.SessionClient object>, url='/servers', method='POST', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVNx-04634084ctest-TestBasicVMVNx-04634084key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-04634084-30991125', 'networks': [{'uuid': '90dde549-d59d-4b19-80e1-c817ab6655c3'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorMZvooge5gvC233raw5mi2Sf8eFswouh8zGKadlU...77s-5AVFjlG0iKIyFJZj3_37yzUquuYNdXB7YSaXseQpSsCns'}})
76 # api_versions.check_headers(resp, self.api_version)
77 if raise_exc and resp.status_code >= 400:
78 raise exceptions.from_response(resp, body, url, method)
79
80 return resp, body
global exceptions = <module 'novaclient.exceptions' from '/usr/local...ython3.6/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network 90dde549-d59d-4b19-80e1-c817ab6655c3 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 90dde549-d59d-4b19-80e1-c817ab6655c3 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-9e0dad5a-e2f2-4e12-8bdd-0fe821df8063)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network 90dde549-d59d-4b19-80e1-c817ab6655c3 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-9e0dad5a-e2f2-4e12-8bdd-0fe821df8063', 'url': '/servers'}
__dir__ = <built-in method __dir__ of BadRequest object>
__doc__ = '\n HTTP 400 - Bad request: you sent some malformed data.\n '
__eq__ = <method-wrapper '__eq__' of BadRequest object>
__format__ = <built-in method __format__ of BadRequest object>
__ge__ = <method-wrapper '__ge__' of BadRequest object>
__getattribute__ = <method-wrapper '__getattribute__' of BadRequest object>
__gt__ = <method-wrapper '__gt__' of BadRequest object>
__hash__ = <method-wrapper '__hash__' of BadRequest object>
__init__ = <bound method ClientException.__init__ of BadRequest()>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of BadRequest object>
__lt__ = <method-wrapper '__lt__' of BadRequest object>
__module__ = 'novaclient.exceptions'
__ne__ = <method-wrapper '__ne__' of BadRequest object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of BadRequest object>
__reduce_ex__ = <built-in method __reduce_ex__ of BadRequest object>
__repr__ = <method-wrapper '__repr__' of BadRequest object>
__setattr__ = <method-wrapper '__setattr__' of BadRequest object>
__setstate__ = <built-in method __setstate__ of BadRequest object>
__sizeof__ = <built-in method __sizeof__ of BadRequest object>
__str__ = <bound method ClientException.__str__ of BadRequest()>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = ()
code = 400
details = None
http_status = 400
message = 'Network 90dde549-d59d-4b19-80e1-c817ab6655c3 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-9e0dad5a-e2f2-4e12-8bdd-0fe821df8063'
url = '/servers'
with_traceback = <built-in method with_traceback of BadRequest object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/vm_regression/test_vm.py", line 2864, in test_vm_file_trf_scp_tests
orch=self.orchestrator)
File "/contrail-test/common/base.py", line 281, in create_vm
**kwargs)
File "/contrail-test/common/base.py", line 254, in create_only_vm
vm_obj.setUp()
File "/contrail-test/fixtures/vm_test.py", line 193, in setUp
self.create()
File "/contrail-test/fixtures/vm_test.py", line 245, in create
fixed_ips=self.fixed_ips)
File "/contrail-test/fixtures/openstack.py", 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 "/contrail-test/fixtures/nova_test.py", line 611, in create_vm
min_count=count, max_count=count, userdata=userdata)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 846, in _boot
return_raw=return_raw, **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network 90dde549-d59d-4b19-80e1-c817ab6655c3 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-9e0dad5a-e2f2-4e12-8bdd-0fe821df8063)

1.454 Log File
test_generic_link_local_service[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity,dev_sanity_dpdk,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: BadRequest
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:24:21 2025

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=<scripts.vm_regression.test_vm_basic.TestBasicVM...dev_sanity_dpdk,sanity,suite1] id=0x7f8e129de6d8>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestBasicVMVN.test_generic_link_local_service>
self = <scripts.vm_regression.test_vm_basic.TestBasicVM...dev_sanity_dpdk,sanity,suite1] id=0x7f8e129de6d8>
args = ()
kwargs = {}

/contrail-test/scripts/vm_regression/test_vm_basic.py in test_generic_link_local_service(self=<scripts.vm_regression.test_vm_basic.TestBasicVM...dev_sanity_dpdk,sanity,suite1] id=0x7f8e129de6d8>)
275 vn_name=vn_name, inputs=self.inputs, subnets=vn_subnets))
276 vn_obj = vn_fixture.obj
277 vm1_fixture = self.create_vm(vn_ids=[vn_fixture.uuid], image_name='cirros')
278
279 lls_service_name = 'introspect'
vm1_fixture undefined
self = <scripts.vm_regression.test_vm_basic.TestBasicVM...dev_sanity_dpdk,sanity,suite1] id=0x7f8e129de6d8>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...ev_sanity_dpdk,sanity,suite1] id=0x7f8e129de6d8>>
vn_ids undefined
vn_fixture = <vn_test.VNFixture object>
vn_fixture.uuid = 'ca700eef-5727-413b-8754-037cc8026c14'
image_name undefined

/contrail-test/common/base.py in create_vm(self=<scripts.vm_regression.test_vm_basic.TestBasicVM...dev_sanity_dpdk,sanity,suite1] id=0x7f8e129de6d8>, vn_fixture=None, vm_name=None, image_name='cirros', port_ids=None, **kwargs={'vn_ids': ['ca700eef-5727-413b-8754-037cc8026c14']})
279 image_name=image_name,
280 port_ids=port_ids,
281 **kwargs)
282 if cleanup:
283 self.addCleanup(vm_fixture.cleanUp)
kwargs = {'vn_ids': ['ca700eef-5727-413b-8754-037cc8026c14']}

/contrail-test/common/base.py in create_only_vm(cls=<class 'scripts.vm_regression.test_vm_basic.TestBasicVMVN'>, vn_fixture=None, vm_name=None, image_name='cirros', **kwargs={'port_ids': None, 'vn_ids': ['ca700eef-5727-413b-8754-037cc8026c14']})
252 image_name=image_name,
253 **kwargs)
254 vm_obj.setUp()
255 return vm_obj
256 # end create_only_vm
vm_obj = <VMFixture: ctest-TestBasicVMVN-38085921-83502412>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestBasicVMVN-38085921-83502412>>

/contrail-test/fixtures/vm_test.py in setUp(self=<VMFixture: ctest-TestBasicVMVN-38085921-83502412>)
191 def setUp(self):
192 super(VMFixture, self).setUp()
193 self.create()
194
195 def create(self):
self = <VMFixture: ctest-TestBasicVMVN-38085921-83502412>
self.create = <bound method VMFixture.create of <VMFixture: ctest-TestBasicVMVN-38085921-83502412>>

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestBasicVMVN-38085921-83502412>)
243 userdata=self.userdata,
244 port_ids=self.port_ids,
245 fixed_ips=self.fixed_ips)
246 self.created = True
247 self.vm_obj = objs[0]
fixed_ips undefined
self = <VMFixture: ctest-TestBasicVMVN-38085921-83502412>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestBasicVMVN-38085921-83502412', image_name='cirros', vn_objs=[{'network': {'id': 'ca700eef-5727-413b-8754-037c...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '73aa0119-e924-4f51-84ed-5d30d5ee0a61', 'sg_ids': [], 'userdata': None, 'zone': 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 = <openstack.OpenstackOrchestrator object>
self.nova_h = <nova_test.NovaHelper object>
self.nova_h.create_vm = <bound method NovaHelper.create_vm of <nova_test.NovaHelper object>>
vm_name = 'ctest-TestBasicVMVN-38085921-83502412'
image_name = 'cirros'
vn_ids = ['ca700eef-5727-413b-8754-037cc8026c14']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '73aa0119-e924-4f51-84ed-5d30d5ee0a61', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='73aa0119-e924-4f51-84ed-5d30d5ee0a61', image_name='cirros', vm_name='ctest-TestBasicVMVN-38085921-83502412', vn_ids=['ca700eef-5727-413b-8754-037cc8026c14'], node_name='cn-jenkins-deploy-platform-ansible-os-3927-1', sg_ids=[], count=1, userdata=None, flavor=<Flavor: contrail_flavor_tiny>, port_ids=None, fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1')
609 config_drive=config_drive,
610 key_name=self.key, availability_zone=zone,
611 min_count=count, max_count=count, userdata=userdata)
612 vm_objs = self.get_vm_list(name_pattern=vm_name,
613 project_id=project_uuid)
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-TestBasicVMVN-38085921-83502412', image=<RequestIdProxy at 0x7f8e10306808 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata=None, key_name='ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'ca700eef-5727-413b-8754-037cc8026c14'}], 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 = "server" if not reservation_id else "reservation_id"
1481 return self._boot(response_key, *boot_args, **boot_kwargs)
1482
1483 @api_versions.wraps("2.0", "2.18")
self = <novaclient.v2.servers.ServerManager object>
self._boot = <bound method ServerManager._boot of <novaclient.v2.servers.ServerManager object>>
response_key = 'server'
boot_args = ['ctest-TestBasicVMVN-38085921-83502412', <RequestIdProxy at 0x7f8e10306808 for image>, <Flavor: contrail_flavor_tiny>]
boot_kwargs = {'access_ip_v4': None, 'access_ip_v6': None, 'admin_pass': None, 'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', ...}

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-TestBasicVMVN-38085921-83502412', image=<RequestIdProxy at 0x7f8e10306808 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, userdata=None, reservation_id=False, return_raw=False, min_count=1, max_count=1, security_groups=[], key_name='ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'ca700eef-5727-413b-8754-037cc8026c14'}], 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={})
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
848 def get(self, server):
return_raw = False
kwargs = {}

/usr/local/lib/python3.6/site-packages/novaclient/base.py in _create(self=<novaclient.v2.servers.ServerManager object>, url='/servers', body={'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-83502412', 'networks': [{'uuid': 'ca700eef-5727-413b-8754-037cc8026c14'}]}}, response_key='server', return_raw=False, obj_class=None, **kwargs={})
362 obj_class=None, **kwargs):
363 self.run_hooks('modify_body_for_create', 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 = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-83502412', 'networks': [{'uuid': 'ca700eef-5727-413b-8754-037cc8026c14'}]}}
self = <novaclient.v2.servers.ServerManager object>
self.api = <novaclient.v2.client.Client object>
self.api.client = <novaclient.client.SessionClient object>
self.api.client.post = <bound method Adapter.post of <novaclient.client.SessionClient object>>
url = '/servers'

/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py in post(self=<novaclient.client.SessionClient object>, url='/servers', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-83502412', 'networks': [{'uuid': 'ca700eef-5727-413b-8754-037cc8026c14'}]}}})
390
391 def post(self, url, **kwargs):
392 return self.request(url, 'POST', **kwargs)
393
394 def put(self, url, **kwargs):
self = <novaclient.client.SessionClient object>
self.request = <bound method SessionClient.request of <novaclient.client.SessionClient object>>
url = '/servers'
kwargs = {'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-83502412', 'networks': [{'uuid': 'ca700eef-5727-413b-8754-037cc8026c14'}]}}}

/usr/local/lib/python3.6/site-packages/novaclient/client.py in request(self=<novaclient.client.SessionClient object>, url='/servers', method='POST', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-83502412', 'networks': [{'uuid': 'ca700eef-5727-413b-8754-037cc8026c14'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorMZzF9IyjANyPtqwWOToYu2lm35R4HmP4Pg_M5Fh...AnOivZ6NSbJCxXpg8QRhB9VXmfuD219ZDyiFFdq63GfmuobLc'}})
76 # api_versions.check_headers(resp, self.api_version)
77 if raise_exc and resp.status_code >= 400:
78 raise exceptions.from_response(resp, body, url, method)
79
80 return resp, body
global exceptions = <module 'novaclient.exceptions' from '/usr/local...ython3.6/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network ca700eef-5727-413b-8754-037cc8026c14 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network ca700eef-5727-413b-8754-037cc8026c14 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-97d4691d-914b-46ad-b4a1-4b3343e2d483)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network ca700eef-5727-413b-8754-037cc8026c14 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-97d4691d-914b-46ad-b4a1-4b3343e2d483', 'url': '/servers'}
__dir__ = <built-in method __dir__ of BadRequest object>
__doc__ = '\n HTTP 400 - Bad request: you sent some malformed data.\n '
__eq__ = <method-wrapper '__eq__' of BadRequest object>
__format__ = <built-in method __format__ of BadRequest object>
__ge__ = <method-wrapper '__ge__' of BadRequest object>
__getattribute__ = <method-wrapper '__getattribute__' of BadRequest object>
__gt__ = <method-wrapper '__gt__' of BadRequest object>
__hash__ = <method-wrapper '__hash__' of BadRequest object>
__init__ = <bound method ClientException.__init__ of BadRequest()>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of BadRequest object>
__lt__ = <method-wrapper '__lt__' of BadRequest object>
__module__ = 'novaclient.exceptions'
__ne__ = <method-wrapper '__ne__' of BadRequest object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of BadRequest object>
__reduce_ex__ = <built-in method __reduce_ex__ of BadRequest object>
__repr__ = <method-wrapper '__repr__' of BadRequest object>
__setattr__ = <method-wrapper '__setattr__' of BadRequest object>
__setstate__ = <built-in method __setstate__ of BadRequest object>
__sizeof__ = <built-in method __sizeof__ of BadRequest object>
__str__ = <bound method ClientException.__str__ of BadRequest()>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = ()
code = 400
details = None
http_status = 400
message = 'Network ca700eef-5727-413b-8754-037cc8026c14 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-97d4691d-914b-46ad-b4a1-4b3343e2d483'
url = '/servers'
with_traceback = <built-in method with_traceback of BadRequest object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/vm_regression/test_vm_basic.py", line 277, in test_generic_link_local_service
vm1_fixture = self.create_vm(vn_ids=[vn_fixture.uuid], image_name='cirros')
File "/contrail-test/common/base.py", line 281, in create_vm
**kwargs)
File "/contrail-test/common/base.py", line 254, in create_only_vm
vm_obj.setUp()
File "/contrail-test/fixtures/vm_test.py", line 193, in setUp
self.create()
File "/contrail-test/fixtures/vm_test.py", line 245, in create
fixed_ips=self.fixed_ips)
File "/contrail-test/fixtures/openstack.py", 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 "/contrail-test/fixtures/nova_test.py", line 611, in create_vm
min_count=count, max_count=count, userdata=userdata)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 846, in _boot
return_raw=return_raw, **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network ca700eef-5727-413b-8754-037cc8026c14 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-97d4691d-914b-46ad-b4a1-4b3343e2d483)

1.455 Log File
test_metadata_service[cb_sanity,ci_sanity,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: BadRequest
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:24:22 2025

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=<scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7f8e129de5c0>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestBasicVMVN.test_metadata_service>
self = <scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7f8e129de5c0>
args = ()
kwargs = {}

/contrail-test/scripts/vm_regression/test_vm_basic.py in test_metadata_service(self=<scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7f8e129de5c0>)
54 vm1_fixture = self.create_vm(vn_fixture=vn_fixture,
55 image_name='cirros',
56 userdata='/tmp/metadata_script.txt')
57 assert vm1_fixture.wait_till_vm_is_up()
58
userdata undefined

/contrail-test/common/base.py in create_vm(self=<scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7f8e129de5c0>, vn_fixture=<vn_test.VNFixture object>, vm_name=None, image_name='cirros', port_ids=None, **kwargs={'userdata': '/tmp/metadata_script.txt'})
279 image_name=image_name,
280 port_ids=port_ids,
281 **kwargs)
282 if cleanup:
283 self.addCleanup(vm_fixture.cleanUp)
kwargs = {'userdata': '/tmp/metadata_script.txt'}

/contrail-test/common/base.py in create_only_vm(cls=<class 'scripts.vm_regression.test_vm_basic.TestBasicVMVN'>, vn_fixture=<vn_test.VNFixture object>, vm_name=None, image_name='cirros', **kwargs={'port_ids': None, 'userdata': '/tmp/metadata_script.txt'})
252 image_name=image_name,
253 **kwargs)
254 vm_obj.setUp()
255 return vm_obj
256 # end create_only_vm
vm_obj = <VMFixture: ctest-TestBasicVMVN-38085921-41985198>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestBasicVMVN-38085921-41985198>>

/contrail-test/fixtures/vm_test.py in setUp(self=<VMFixture: ctest-TestBasicVMVN-38085921-41985198>)
191 def setUp(self):
192 super(VMFixture, self).setUp()
193 self.create()
194
195 def create(self):
self = <VMFixture: ctest-TestBasicVMVN-38085921-41985198>
self.create = <bound method VMFixture.create of <VMFixture: ctest-TestBasicVMVN-38085921-41985198>>

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestBasicVMVN-38085921-41985198>)
243 userdata=self.userdata,
244 port_ids=self.port_ids,
245 fixed_ips=self.fixed_ips)
246 self.created = True
247 self.vm_obj = objs[0]
fixed_ips undefined
self = <VMFixture: ctest-TestBasicVMVN-38085921-41985198>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestBasicVMVN-38085921-41985198', image_name='cirros', vn_objs=[{'network': {'id': '5ea38d11-83e5-4762-88b3-2c83...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '73aa0119-e924-4f51-84ed-5d30d5ee0a61', 'sg_ids': [], 'userdata': '/tmp/metadata_script.txt', 'zone': 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 = <openstack.OpenstackOrchestrator object>
self.nova_h = <nova_test.NovaHelper object>
self.nova_h.create_vm = <bound method NovaHelper.create_vm of <nova_test.NovaHelper object>>
vm_name = 'ctest-TestBasicVMVN-38085921-41985198'
image_name = 'cirros'
vn_ids = ['5ea38d11-83e5-4762-88b3-2c8389d20442']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '73aa0119-e924-4f51-84ed-5d30d5ee0a61', 'sg_ids': [], 'userdata': '/tmp/metadata_script.txt', 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='73aa0119-e924-4f51-84ed-5d30d5ee0a61', image_name='cirros', vm_name='ctest-TestBasicVMVN-38085921-41985198', vn_ids=['5ea38d11-83e5-4762-88b3-2c8389d20442'], node_name='cn-jenkins-deploy-platform-ansible-os-3927-1', sg_ids=[], count=1, userdata='#!/bin/sh\necho "Hello World. The time is now $(date -R)!" | tee /tmp/output.txt\n ', flavor=<Flavor: contrail_flavor_tiny>, port_ids=None, fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1')
609 config_drive=config_drive,
610 key_name=self.key, availability_zone=zone,
611 min_count=count, max_count=count, userdata=userdata)
612 vm_objs = self.get_vm_list(name_pattern=vm_name,
613 project_id=project_uuid)
min_count undefined
count = 1
max_count undefined
userdata = '#!/bin/sh\necho "Hello World. The time is now $(date -R)!" | tee /tmp/output.txt\n '

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-TestBasicVMVN-38085921-41985198', image=<RequestIdProxy at 0x7f8e102ff088 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata='#!/bin/sh\necho "Hello World. The time is now $(date -R)!" | tee /tmp/output.txt\n ', key_name='ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '5ea38d11-83e5-4762-88b3-2c8389d20442'}], 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 = "server" if not reservation_id else "reservation_id"
1481 return self._boot(response_key, *boot_args, **boot_kwargs)
1482
1483 @api_versions.wraps("2.0", "2.18")
self = <novaclient.v2.servers.ServerManager object>
self._boot = <bound method ServerManager._boot of <novaclient.v2.servers.ServerManager object>>
response_key = 'server'
boot_args = ['ctest-TestBasicVMVN-38085921-41985198', <RequestIdProxy at 0x7f8e102ff088 for image>, <Flavor: contrail_flavor_tiny>]
boot_kwargs = {'access_ip_v4': None, 'access_ip_v6': None, 'admin_pass': None, 'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', ...}

/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-TestBasicVMVN-38085921-41985198', image=<RequestIdProxy at 0x7f8e102ff088 for image>, flavor=<Flavor: contrail_flavor_tiny>, meta=None, files=None, userdata='#!/bin/sh\necho "Hello World. The time is now $(date -R)!" | tee /tmp/output.txt\n ', reservation_id=False, return_raw=False, min_count=1, max_count=1, security_groups=[], key_name='ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '5ea38d11-83e5-4762-88b3-2c8389d20442'}], 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={})
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
848 def get(self, server):
return_raw = False
kwargs = {}

/usr/local/lib/python3.6/site-packages/novaclient/base.py in _create(self=<novaclient.v2.servers.ServerManager object>, url='/servers', body={'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-41985198', 'networks': [{'uuid': '5ea38d11-83e5-4762-88b3-2c8389d20442'}], 'user_data': 'IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRp...8IHRlZSAvdG1wL291dHB1dC50eHQKICAgICAgICAgICAgICAg'}}, response_key='server', return_raw=False, obj_class=None, **kwargs={})
362 obj_class=None, **kwargs):
363 self.run_hooks('modify_body_for_create', 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 = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-41985198', 'networks': [{'uuid': '5ea38d11-83e5-4762-88b3-2c8389d20442'}], 'user_data': 'IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRp...8IHRlZSAvdG1wL291dHB1dC50eHQKICAgICAgICAgICAgICAg'}}
self = <novaclient.v2.servers.ServerManager object>
self.api = <novaclient.v2.client.Client object>
self.api.client = <novaclient.client.SessionClient object>
self.api.client.post = <bound method Adapter.post of <novaclient.client.SessionClient object>>
url = '/servers'

/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py in post(self=<novaclient.client.SessionClient object>, url='/servers', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-41985198', 'networks': [{'uuid': '5ea38d11-83e5-4762-88b3-2c8389d20442'}], 'user_data': 'IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRp...8IHRlZSAvdG1wL291dHB1dC50eHQKICAgICAgICAgICAgICAg'}}})
390
391 def post(self, url, **kwargs):
392 return self.request(url, 'POST', **kwargs)
393
394 def put(self, url, **kwargs):
self = <novaclient.client.SessionClient object>
self.request = <bound method SessionClient.request of <novaclient.client.SessionClient object>>
url = '/servers'
kwargs = {'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-41985198', 'networks': [{'uuid': '5ea38d11-83e5-4762-88b3-2c8389d20442'}], 'user_data': 'IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRp...8IHRlZSAvdG1wL291dHB1dC50eHQKICAgICAgICAgICAgICAg'}}}

/usr/local/lib/python3.6/site-packages/novaclient/client.py in request(self=<novaclient.client.SessionClient object>, url='/servers', method='POST', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestBasicVMVN-38085921ctest-TestBasicVMVN-38085921key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-38085921-41985198', 'networks': [{'uuid': '5ea38d11-83e5-4762-88b3-2c8389d20442'}], 'user_data': 'IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRp...8IHRlZSAvdG1wL291dHB1dC50eHQKICAgICAgICAgICAgICAg'}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorMZzF9IyjANyPtqwWOToYu2lm35R4HmP4Pg_M5Fh...AnOivZ6NSbJCxXpg8QRhB9VXmfuD219ZDyiFFdq63GfmuobLc'}})
76 # api_versions.check_headers(resp, self.api_version)
77 if raise_exc and resp.status_code >= 400:
78 raise exceptions.from_response(resp, body, url, method)
79
80 return resp, body
global exceptions = <module 'novaclient.exceptions' from '/usr/local...ython3.6/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network 5ea38d11-83e5-4762-88b3-2c8389d20442 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 5ea38d11-83e5-4762-88b3-2c8389d20442 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-948c4e81-2575-4626-9377-0009b094ee44)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network 5ea38d11-83e5-4762-88b3-2c8389d20442 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-948c4e81-2575-4626-9377-0009b094ee44', 'url': '/servers'}
__dir__ = <built-in method __dir__ of BadRequest object>
__doc__ = '\n HTTP 400 - Bad request: you sent some malformed data.\n '
__eq__ = <method-wrapper '__eq__' of BadRequest object>
__format__ = <built-in method __format__ of BadRequest object>
__ge__ = <method-wrapper '__ge__' of BadRequest object>
__getattribute__ = <method-wrapper '__getattribute__' of BadRequest object>
__gt__ = <method-wrapper '__gt__' of BadRequest object>
__hash__ = <method-wrapper '__hash__' of BadRequest object>
__init__ = <bound method ClientException.__init__ of BadRequest()>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of BadRequest object>
__lt__ = <method-wrapper '__lt__' of BadRequest object>
__module__ = 'novaclient.exceptions'
__ne__ = <method-wrapper '__ne__' of BadRequest object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of BadRequest object>
__reduce_ex__ = <built-in method __reduce_ex__ of BadRequest object>
__repr__ = <method-wrapper '__repr__' of BadRequest object>
__setattr__ = <method-wrapper '__setattr__' of BadRequest object>
__setstate__ = <built-in method __setstate__ of BadRequest object>
__sizeof__ = <built-in method __sizeof__ of BadRequest object>
__str__ = <bound method ClientException.__str__ of BadRequest()>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = ()
code = 400
details = None
http_status = 400
message = 'Network 5ea38d11-83e5-4762-88b3-2c8389d20442 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-948c4e81-2575-4626-9377-0009b094ee44'
url = '/servers'
with_traceback = <built-in method with_traceback of BadRequest object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/vm_regression/test_vm_basic.py", line 56, in test_metadata_service
userdata='/tmp/metadata_script.txt')
File "/contrail-test/common/base.py", line 281, in create_vm
**kwargs)
File "/contrail-test/common/base.py", line 254, in create_only_vm
vm_obj.setUp()
File "/contrail-test/fixtures/vm_test.py", line 193, in setUp
self.create()
File "/contrail-test/fixtures/vm_test.py", line 245, in create
fixed_ips=self.fixed_ips)
File "/contrail-test/fixtures/openstack.py", 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 "/contrail-test/fixtures/nova_test.py", line 611, in create_vm
min_count=count, max_count=count, userdata=userdata)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 846, in _boot
return_raw=return_raw, **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network 5ea38d11-83e5-4762-88b3-2c8389d20442 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-948c4e81-2575-4626-9377-0009b094ee44)

1.572 Log File
test_ping_within_vn_two_vms_two_different_subnets[ci_contrail_go_kolla_ocata_sanity,ci_sanity,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: KeyError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:24:24 2025

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=<scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7f8e129de898>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestBasicVMVN.test_ping_within_vn_two_vms_two_different_subnets>
self = <scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7f8e129de898>
args = ()
kwargs = {}

/contrail-test/scripts/vm_regression/test_vm_basic.py in test_ping_within_vn_two_vms_two_different_subnets(self=<scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7f8e129de898>)
139
140 vm1 = self.create_vm(image_name='cirros', vn_fixture=vn1_fixture,
141 port_ids=[ports['subnet1']['id']])
142 vm2 = self.create_vm(image_name='cirros', vn_fixture=vn1_fixture,
143 port_ids=[ports['subnet2']['id']])
port_ids undefined
ports = {}
KeyError: 'subnet1'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('subnet1',)
with_traceback = <built-in method with_traceback of KeyError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/vm_regression/test_vm_basic.py", line 141, in test_ping_within_vn_two_vms_two_different_subnets
port_ids=[ports['subnet1']['id']])
KeyError: 'subnet1'

1.412 Log File
Properties »

Back to top

TestCase

NameStatusTypeTime(s)LogFile
test_perms2_global_share[ci_sanity,sanity]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: HttpError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:24:43 2025

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=<serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7f844e305e80>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestRbac.test_perms2_global_share>
self = <serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7f844e305e80>
args = ()
kwargs = {}

/contrail-test/serial_scripts/rbac/test_rbac.py in test_perms2_global_share(self=<serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7f844e305e80>)
48 }]
49 domain_rbac = self.create_rbac_acl(rules=rules, parent_type='domain')
50 vn = self.create_vn(connections=u1_p1_conn, shared=True, verify=False)
51 assert vn, 'VN creation failed'
52 obj = self.read_vn(connections=u1_p1_conn, uuid=vn.uuid)
vn undefined
self = <serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7f844e305e80>
self.create_vn = <bound method BaseRbac.create_vn of <serial_scri...lobal_share[ci_sanity,sanity] id=0x7f844e305e80>>
connections undefined
u1_p1_conn = <common.connections.ContrailConnections object>
shared undefined
verify undefined

/contrail-test/serial_scripts/rbac/base.py in create_vn(self=<serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7f844e305e80>, connections=<common.connections.ContrailConnections object>, verify=False, option='contrail', **kwargs={'shared': True})
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:
219 #WA of verifying using admin creds since RI etal system objects
option = 'contrail'
kwargs = {'shared': True}

/contrail-test/serial_scripts/rbac/base.py in create_fixture(self=<serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7f844e305e80>, fixturecls=<class 'vn_test.VNFixture'>, **kwargs={'connections': <common.connections.ContrailConnections object>, 'option': 'contrail', 'shared': 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 = <serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7f844e305e80>
self.useFixture = <bound method TestCase.useFixture of <serial_scr...lobal_share[ci_sanity,sanity] id=0x7f844e305e80>>
fixturecls = <class 'vn_test.VNFixture'>
kwargs = {'connections': <common.connections.ContrailConnections object>, 'option': 'contrail', 'shared': True}

/usr/local/lib/python3.6/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7f844e305e80>, fixture=<vn_test.VNFixture object>)
754 # Gather_details worked, so raise the exception setUp
755 # encountered.
756 reraise(*exc_info)
757 else:
758 self.addCleanup(fixture.cleanUp)
global reraise = <function reraise>
exc_info = (<class 'vnc_api.exceptions.HttpError'>, HttpError(500, "'NoneType' object is not iterable"), <traceback object>)

/usr/local/lib/python3.6/site-packages/testtools/_compat3x.py in reraise(exc_class=<class 'vnc_api.exceptions.HttpError'>, exc_obj=HttpError(500, "'NoneType' object is not iterable"), exc_tb=<traceback object>, _marker=<object object>)
13
14 def reraise(exc_class, exc_obj, exc_tb, _marker=object()):
15 """Re-raise an exception received from sys.exc_info() or similar."""
16 raise exc_obj.with_traceback(exc_tb)
17
exc_obj = HttpError(500, "'NoneType' object is not iterable")
exc_obj.with_traceback = <built-in method with_traceback of HttpError object>
exc_tb = <traceback object>

/usr/local/lib/python3.6/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7f844e305e80>, fixture=<vn_test.VNFixture object>)
729 """
730 try:
731 fixture.setUp()
732 except MultipleExceptions as e:
733 if (fixtures is not None and
fixture = <vn_test.VNFixture object>
fixture.setUp = <bound method VNFixture.setUp of <vn_test.VNFixture object>>

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

/contrail-test/fixtures/vn_test.py in create(self=<vn_test.VNFixture object>)
448 self.webui.create_vn(self)
449 elif (self.option == 'contrail'):
450 self._create_vn_api(self.vn_name, self.project_obj)
451 else:
452 self._create_vn_orch()
self = <vn_test.VNFixture object>
self._create_vn_api = <bound method VNFixture._create_vn_api of <vn_test.VNFixture object>>
self.vn_name = 'ctest-TestRbac-61831829-34418135'
self.project_obj = <vnc_api.gen.resource_client.Project object>

/contrail-test/fixtures/vn_test.py in _create_vn_api(self=<vn_test.VNFixture object>, vn_name='ctest-TestRbac-61831829-34418135', project_obj=<vnc_api.gen.resource_client.Project object>)
414 ipam_sn_lst.append(ipam_sn)
415 self.api_vn_obj.add_network_ipam(ipam, VnSubnetsType(ipam_sn_lst))
416 self.vnc_lib_h.virtual_network_update(self.api_vn_obj)
417 else:
418 with self.lock:
self = <vn_test.VNFixture object>
self.vnc_lib_h = <vnc_api_test.TestVncApi object>
self.vnc_lib_h.virtual_network_update = functools.partial(<bound method VncApi._object_u...pi object at 0x7f844cc70cc0>>, 'virtual-network')
self.api_vn_obj = <vnc_api.gen.resource_client.VirtualNetwork object>

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in wrapper(self=<vnc_api_test.TestVncApi object>, *args=('virtual-network', <vnc_api.gen.resource_client.VirtualNetwork object>), **kwargs={})
50 retry_on_error=False)
51 self._parse_homepage(homepage)
52 return func(self, *args, **kwargs)
53 return wrapper
54
func = <function VncApi._object_update>
self = <vnc_api_test.TestVncApi object>
args = ('virtual-network', <vnc_api.gen.resource_client.VirtualNetwork object>)
kwargs = {}

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in _object_update(self=<vnc_api_test.TestVncApi object>, res_type='virtual-network', obj=<vnc_api.gen.resource_client.VirtualNetwork object>)
831 self.ref_update(
832 res_type, obj.uuid, ref_name, ref[0], list(ref[1]),
833 'ADD', ref[2])
834 obj.clear_pending_updates()
835
ref = ('ed44acbf-31a0-4ece-a12b-8127aa769608', ('default-domain', 'default-project', 'default-network-ipam'), ipam_subnets = [subnet = ip_prefix = 138.4.65.64...None, dhcp_relay_server = []], host_routes = None)

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in wrapper(self=<vnc_api_test.TestVncApi object>, *args=('virtual-network', '932f3258-53f6-4194-9d48-243920d0f859', 'network_ipam_refs', 'ed44acbf-31a0-4ece-a12b-8127aa769608', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 138.4.65.64...None, dhcp_relay_server = []], host_routes = None), **kwargs={})
50 retry_on_error=False)
51 self._parse_homepage(homepage)
52 return func(self, *args, **kwargs)
53 return wrapper
54
func = <function VncApi.ref_update>
self = <vnc_api_test.TestVncApi object>
args = ('virtual-network', '932f3258-53f6-4194-9d48-243920d0f859', 'network_ipam_refs', 'ed44acbf-31a0-4ece-a12b-8127aa769608', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 138.4.65.64...None, dhcp_relay_server = []], host_routes = None)
kwargs = {}

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='932f3258-53f6-4194-9d48-243920d0f859', ref_type='network-ipam', ref_uuid='ed44acbf-31a0-4ece-a12b-8127aa769608', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 138.4.65.64...None, dhcp_relay_server = []], host_routes = None)
1362 if he.status_code == 404:
1363 return None
1364 raise he
1365
1366 return json.loads(content)['uuid']
he undefined

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='932f3258-53f6-4194-9d48-243920d0f859', ref_type='network-ipam', ref_uuid='ed44acbf-31a0-4ece-a12b-8127aa769608', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 138.4.65.64...None, dhcp_relay_server = []], host_routes = None)
1358 uri = self._action_uri['ref-update']
1359 try:
1360 content = self._request_server(OP_POST, uri, data=json_body)
1361 except HttpError as he:
1362 if he.status_code == 404:
content undefined
self = <vnc_api_test.TestVncApi object>
self._request_server = <bound method VncApi._request_server of <vnc_api_test.TestVncApi object>>
global OP_POST = 1
uri = '/ref-update'
data undefined
json_body = '{"type": "virtual-network", "uuid": "932f3258-53... "dhcp_relay_server": []}], "host_routes": null}}'

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in _request_server(self=<vnc_api_test.TestVncApi object>, op=1, url='/ref-update', data='{"type": "virtual-network", "uuid": "932f3258-53... "dhcp_relay_server": []}], "host_routes": null}}', retry_on_error=True, retry_after_authn=False, retry_count=30)
1126 return self._request(
1127 op, url, data=data, retry_on_error=retry_on_error,
1128 retry_after_authn=retry_after_authn, retry_count=retry_count)
1129 # end _request_server
1130
retry_after_authn = False
retry_count = 30

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in _request(self=<vnc_api_test.TestVncApi object>, op=1, url='/ref-update', data='{"type": "virtual-network", "uuid": "932f3258-53... "dhcp_relay_server": []}], "host_routes": null}}', retry_on_error=True, retry_after_authn=False, retry_count=30)
1206 raise AuthFailed(status, content)
1207 else: # Unknown Error
1208 raise HttpError(status, content)
1209 # end while True
1210
global HttpError = <class 'vnc_api.exceptions.HttpError'>
status = 500
content = "'NoneType' object is not iterable"
HttpError: HTTP Status: 500 Content: 'NoneType' object is not iterable
__cause__ = None
__class__ = <class 'vnc_api.exceptions.HttpError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of HttpError object>
__dict__ = {'content': "'NoneType' object is not iterable", 'status_code': 500}
__dir__ = <built-in method __dir__ of HttpError object>
__doc__ = None
__eq__ = <method-wrapper '__eq__' of HttpError object>
__format__ = <built-in method __format__ of HttpError object>
__ge__ = <method-wrapper '__ge__' of HttpError object>
__getattribute__ = <method-wrapper '__getattribute__' of HttpError object>
__gt__ = <method-wrapper '__gt__' of HttpError object>
__hash__ = <method-wrapper '__hash__' of HttpError object>
__init__ = <bound method HttpError.__init__ of HttpError(500, "'NoneType' object is not iterable")>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of HttpError object>
__lt__ = <method-wrapper '__lt__' of HttpError object>
__module__ = 'vnc_api.exceptions'
__ne__ = <method-wrapper '__ne__' of HttpError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of HttpError object>
__reduce_ex__ = <built-in method __reduce_ex__ of HttpError object>
__repr__ = <method-wrapper '__repr__' of HttpError object>
__setattr__ = <method-wrapper '__setattr__' of HttpError object>
__setstate__ = <built-in method __setstate__ of HttpError object>
__sizeof__ = <built-in method __sizeof__ of HttpError object>
__str__ = <bound method HttpError.__str__ of HttpError(500, "'NoneType' object is not iterable")>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = (500, "'NoneType' object is not iterable")
content = "'NoneType' object is not iterable"
status_code = 500
with_traceback = <built-in method with_traceback of HttpError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/serial_scripts/rbac/test_rbac.py", line 50, in test_perms2_global_share
vn = self.create_vn(connections=u1_p1_conn, shared=True, verify=False)
File "/contrail-test/serial_scripts/rbac/base.py", line 217, in create_vn
option=option, **kwargs)
File "/contrail-test/serial_scripts/rbac/base.py", line 354, in create_fixture
return self.useFixture(fixturecls(**kwargs))
File "/usr/local/lib/python3.6/site-packages/testtools/testcase.py", line 756, in useFixture
reraise(*exc_info)
File "/usr/local/lib/python3.6/site-packages/testtools/_compat3x.py", line 16, in reraise
raise exc_obj.with_traceback(exc_tb)
File "/usr/local/lib/python3.6/site-packages/testtools/testcase.py", line 731, in useFixture
fixture.setUp()
File "/contrail-test/fixtures/vn_test.py", line 439, in setUp
self.create()
File "/contrail-test/fixtures/vn_test.py", line 450, in create
self._create_vn_api(self.vn_name, self.project_obj)
File "/contrail-test/fixtures/vn_test.py", line 416, in _create_vn_api
self.vnc_lib_h.virtual_network_update(self.api_vn_obj)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 833, in _object_update
'ADD', ref[2])
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1364, in ref_update
raise he
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1360, in ref_update
content = self._request_server(OP_POST, uri, data=json_body)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1128, in _request_server
retry_after_authn=retry_after_authn, retry_count=retry_count)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1208, in _request
raise HttpError(status, content)
vnc_api.exceptions.HttpError: HTTP Status: 500 Content: 'NoneType' object is not iterable

71.407 Log File
test_perms2_owner[ci_sanity,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: HttpError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:25:59 2025

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=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7f844e315208>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestRbacBasic.test_perms2_owner>
self = <serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7f844e315208>
args = ()
kwargs = {}

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

/contrail-test/serial_scripts/rbac/base.py in create_vn(self=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7f844e315208>, connections=<common.connections.ContrailConnections object>, verify=False, option='contrail', **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:
219 #WA of verifying using admin creds since RI etal system objects
option = 'contrail'
kwargs = {}

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

/usr/local/lib/python3.6/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7f844e315208>, fixture=<vn_test.VNFixture object>)
754 # Gather_details worked, so raise the exception setUp
755 # encountered.
756 reraise(*exc_info)
757 else:
758 self.addCleanup(fixture.cleanUp)
global reraise = <function reraise>
exc_info = (<class 'vnc_api.exceptions.HttpError'>, HttpError(500, "'NoneType' object is not iterable"), <traceback object>)

/usr/local/lib/python3.6/site-packages/testtools/_compat3x.py in reraise(exc_class=<class 'vnc_api.exceptions.HttpError'>, exc_obj=HttpError(500, "'NoneType' object is not iterable"), exc_tb=<traceback object>, _marker=<object object>)
13
14 def reraise(exc_class, exc_obj, exc_tb, _marker=object()):
15 """Re-raise an exception received from sys.exc_info() or similar."""
16 raise exc_obj.with_traceback(exc_tb)
17
exc_obj = HttpError(500, "'NoneType' object is not iterable")
exc_obj.with_traceback = <built-in method with_traceback of HttpError object>
exc_tb = <traceback object>

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

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

/contrail-test/fixtures/vn_test.py in create(self=<vn_test.VNFixture object>)
448 self.webui.create_vn(self)
449 elif (self.option == 'contrail'):
450 self._create_vn_api(self.vn_name, self.project_obj)
451 else:
452 self._create_vn_orch()
self = <vn_test.VNFixture object>
self._create_vn_api = <bound method VNFixture._create_vn_api of <vn_test.VNFixture object>>
self.vn_name = 'ctest-TestRbacBasic-53966040-29107482'
self.project_obj = <vnc_api.gen.resource_client.Project object>

/contrail-test/fixtures/vn_test.py in _create_vn_api(self=<vn_test.VNFixture object>, vn_name='ctest-TestRbacBasic-53966040-29107482', project_obj=<vnc_api.gen.resource_client.Project object>)
414 ipam_sn_lst.append(ipam_sn)
415 self.api_vn_obj.add_network_ipam(ipam, VnSubnetsType(ipam_sn_lst))
416 self.vnc_lib_h.virtual_network_update(self.api_vn_obj)
417 else:
418 with self.lock:
self = <vn_test.VNFixture object>
self.vnc_lib_h = <vnc_api_test.TestVncApi object>
self.vnc_lib_h.virtual_network_update = functools.partial(<bound method VncApi._object_u...pi object at 0x7f844c94f208>>, 'virtual-network')
self.api_vn_obj = <vnc_api.gen.resource_client.VirtualNetwork object>

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in wrapper(self=<vnc_api_test.TestVncApi object>, *args=('virtual-network', <vnc_api.gen.resource_client.VirtualNetwork object>), **kwargs={})
50 retry_on_error=False)
51 self._parse_homepage(homepage)
52 return func(self, *args, **kwargs)
53 return wrapper
54
func = <function VncApi._object_update>
self = <vnc_api_test.TestVncApi object>
args = ('virtual-network', <vnc_api.gen.resource_client.VirtualNetwork object>)
kwargs = {}

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in _object_update(self=<vnc_api_test.TestVncApi object>, res_type='virtual-network', obj=<vnc_api.gen.resource_client.VirtualNetwork object>)
831 self.ref_update(
832 res_type, obj.uuid, ref_name, ref[0], list(ref[1]),
833 'ADD', ref[2])
834 obj.clear_pending_updates()
835
ref = ('ed44acbf-31a0-4ece-a12b-8127aa769608', ('default-domain', 'default-project', 'default-network-ipam'), ipam_subnets = [subnet = ip_prefix = 43.193.4.0,...None, dhcp_relay_server = []], host_routes = None)

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in wrapper(self=<vnc_api_test.TestVncApi object>, *args=('virtual-network', 'ca001846-9ae4-4485-b25d-04749de8605b', 'network_ipam_refs', 'ed44acbf-31a0-4ece-a12b-8127aa769608', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 43.193.4.0,...None, dhcp_relay_server = []], host_routes = None), **kwargs={})
50 retry_on_error=False)
51 self._parse_homepage(homepage)
52 return func(self, *args, **kwargs)
53 return wrapper
54
func = <function VncApi.ref_update>
self = <vnc_api_test.TestVncApi object>
args = ('virtual-network', 'ca001846-9ae4-4485-b25d-04749de8605b', 'network_ipam_refs', 'ed44acbf-31a0-4ece-a12b-8127aa769608', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 43.193.4.0,...None, dhcp_relay_server = []], host_routes = None)
kwargs = {}

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='ca001846-9ae4-4485-b25d-04749de8605b', ref_type='network-ipam', ref_uuid='ed44acbf-31a0-4ece-a12b-8127aa769608', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 43.193.4.0,...None, dhcp_relay_server = []], host_routes = None)
1362 if he.status_code == 404:
1363 return None
1364 raise he
1365
1366 return json.loads(content)['uuid']
he undefined

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='ca001846-9ae4-4485-b25d-04749de8605b', ref_type='network-ipam', ref_uuid='ed44acbf-31a0-4ece-a12b-8127aa769608', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 43.193.4.0,...None, dhcp_relay_server = []], host_routes = None)
1358 uri = self._action_uri['ref-update']
1359 try:
1360 content = self._request_server(OP_POST, uri, data=json_body)
1361 except HttpError as he:
1362 if he.status_code == 404:
content undefined
self = <vnc_api_test.TestVncApi object>
self._request_server = <bound method VncApi._request_server of <vnc_api_test.TestVncApi object>>
global OP_POST = 1
uri = '/ref-update'
data undefined
json_body = '{"type": "virtual-network", "uuid": "ca001846-9a... "dhcp_relay_server": []}], "host_routes": null}}'

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in _request_server(self=<vnc_api_test.TestVncApi object>, op=1, url='/ref-update', data='{"type": "virtual-network", "uuid": "ca001846-9a... "dhcp_relay_server": []}], "host_routes": null}}', retry_on_error=True, retry_after_authn=False, retry_count=30)
1126 return self._request(
1127 op, url, data=data, retry_on_error=retry_on_error,
1128 retry_after_authn=retry_after_authn, retry_count=retry_count)
1129 # end _request_server
1130
retry_after_authn = False
retry_count = 30

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in _request(self=<vnc_api_test.TestVncApi object>, op=1, url='/ref-update', data='{"type": "virtual-network", "uuid": "ca001846-9a... "dhcp_relay_server": []}], "host_routes": null}}', retry_on_error=True, retry_after_authn=False, retry_count=30)
1206 raise AuthFailed(status, content)
1207 else: # Unknown Error
1208 raise HttpError(status, content)
1209 # end while True
1210
global HttpError = <class 'vnc_api.exceptions.HttpError'>
status = 500
content = "'NoneType' object is not iterable"
HttpError: HTTP Status: 500 Content: 'NoneType' object is not iterable
__cause__ = None
__class__ = <class 'vnc_api.exceptions.HttpError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of HttpError object>
__dict__ = {'content': "'NoneType' object is not iterable", 'status_code': 500}
__dir__ = <built-in method __dir__ of HttpError object>
__doc__ = None
__eq__ = <method-wrapper '__eq__' of HttpError object>
__format__ = <built-in method __format__ of HttpError object>
__ge__ = <method-wrapper '__ge__' of HttpError object>
__getattribute__ = <method-wrapper '__getattribute__' of HttpError object>
__gt__ = <method-wrapper '__gt__' of HttpError object>
__hash__ = <method-wrapper '__hash__' of HttpError object>
__init__ = <bound method HttpError.__init__ of HttpError(500, "'NoneType' object is not iterable")>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of HttpError object>
__lt__ = <method-wrapper '__lt__' of HttpError object>
__module__ = 'vnc_api.exceptions'
__ne__ = <method-wrapper '__ne__' of HttpError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of HttpError object>
__reduce_ex__ = <built-in method __reduce_ex__ of HttpError object>
__repr__ = <method-wrapper '__repr__' of HttpError object>
__setattr__ = <method-wrapper '__setattr__' of HttpError object>
__setstate__ = <built-in method __setstate__ of HttpError object>
__sizeof__ = <built-in method __sizeof__ of HttpError object>
__str__ = <bound method HttpError.__str__ of HttpError(500, "'NoneType' object is not iterable")>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = (500, "'NoneType' object is not iterable")
content = "'NoneType' object is not iterable"
status_code = 500
with_traceback = <built-in method with_traceback of HttpError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/serial_scripts/rbac/test_rbac_basic.py", line 225, in test_perms2_owner
vn = self.create_vn(connections=u1_p1_conn, verify=False)
File "/contrail-test/serial_scripts/rbac/base.py", line 217, in create_vn
option=option, **kwargs)
File "/contrail-test/serial_scripts/rbac/base.py", line 354, in create_fixture
return self.useFixture(fixturecls(**kwargs))
File "/usr/local/lib/python3.6/site-packages/testtools/testcase.py", line 756, in useFixture
reraise(*exc_info)
File "/usr/local/lib/python3.6/site-packages/testtools/_compat3x.py", line 16, in reraise
raise exc_obj.with_traceback(exc_tb)
File "/usr/local/lib/python3.6/site-packages/testtools/testcase.py", line 731, in useFixture
fixture.setUp()
File "/contrail-test/fixtures/vn_test.py", line 439, in setUp
self.create()
File "/contrail-test/fixtures/vn_test.py", line 450, in create
self._create_vn_api(self.vn_name, self.project_obj)
File "/contrail-test/fixtures/vn_test.py", line 416, in _create_vn_api
self.vnc_lib_h.virtual_network_update(self.api_vn_obj)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 833, in _object_update
'ADD', ref[2])
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1364, in ref_update
raise he
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1360, in ref_update
content = self._request_server(OP_POST, uri, data=json_body)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1128, in _request_server
retry_after_authn=retry_after_authn, retry_count=retry_count)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1208, in _request
raise HttpError(status, content)
vnc_api.exceptions.HttpError: HTTP Status: 500 Content: 'NoneType' object is not iterable

70.459 Log File
test_rbac_acl_different_roles[ci_sanity,sanity,suite1]FailureDetails

Traceback (most recent call last):
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 176, in wrapper
raise TestFailed("\n ".join(errmsg))
tcutils.cores.TestFailed: Test failed: HttpError
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:27:08 2025

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=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7f844e315b00>, *args=(), **kwargs={})
78 log.info('Initial checks done. Running the testcase now')
79 log.info('')
80 result = function(self, *args, **kwargs)
81 if self.inputs.upgrade:
82 pid = os.getpid()
result = None
function = <function TestRbacBasic.test_rbac_acl_different_roles>
self = <serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7f844e315b00>
args = ()
kwargs = {}

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

/contrail-test/serial_scripts/rbac/base.py in create_vn(self=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7f844e315b00>, connections=<common.connections.ContrailConnections object>, verify=True, option='contrail', **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:
219 #WA of verifying using admin creds since RI etal system objects
option = 'contrail'
kwargs = {}

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

/usr/local/lib/python3.6/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7f844e315b00>, fixture=<vn_test.VNFixture object>)
754 # Gather_details worked, so raise the exception setUp
755 # encountered.
756 reraise(*exc_info)
757 else:
758 self.addCleanup(fixture.cleanUp)
global reraise = <function reraise>
exc_info = (<class 'vnc_api.exceptions.HttpError'>, HttpError(500, "'NoneType' object is not iterable"), <traceback object>)

/usr/local/lib/python3.6/site-packages/testtools/_compat3x.py in reraise(exc_class=<class 'vnc_api.exceptions.HttpError'>, exc_obj=HttpError(500, "'NoneType' object is not iterable"), exc_tb=<traceback object>, _marker=<object object>)
13
14 def reraise(exc_class, exc_obj, exc_tb, _marker=object()):
15 """Re-raise an exception received from sys.exc_info() or similar."""
16 raise exc_obj.with_traceback(exc_tb)
17
exc_obj = HttpError(500, "'NoneType' object is not iterable")
exc_obj.with_traceback = <built-in method with_traceback of HttpError object>
exc_tb = <traceback object>

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

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

/contrail-test/fixtures/vn_test.py in create(self=<vn_test.VNFixture object>)
448 self.webui.create_vn(self)
449 elif (self.option == 'contrail'):
450 self._create_vn_api(self.vn_name, self.project_obj)
451 else:
452 self._create_vn_orch()
self = <vn_test.VNFixture object>
self._create_vn_api = <bound method VNFixture._create_vn_api of <vn_test.VNFixture object>>
self.vn_name = 'ctest-TestRbacBasic-53402640-66630683'
self.project_obj = <vnc_api.gen.resource_client.Project object>

/contrail-test/fixtures/vn_test.py in _create_vn_api(self=<vn_test.VNFixture object>, vn_name='ctest-TestRbacBasic-53402640-66630683', project_obj=<vnc_api.gen.resource_client.Project object>)
414 ipam_sn_lst.append(ipam_sn)
415 self.api_vn_obj.add_network_ipam(ipam, VnSubnetsType(ipam_sn_lst))
416 self.vnc_lib_h.virtual_network_update(self.api_vn_obj)
417 else:
418 with self.lock:
self = <vn_test.VNFixture object>
self.vnc_lib_h = <vnc_api_test.TestVncApi object>
self.vnc_lib_h.virtual_network_update = functools.partial(<bound method VncApi._object_u...pi object at 0x7f844c974e80>>, 'virtual-network')
self.api_vn_obj = <vnc_api.gen.resource_client.VirtualNetwork object>

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in wrapper(self=<vnc_api_test.TestVncApi object>, *args=('virtual-network', <vnc_api.gen.resource_client.VirtualNetwork object>), **kwargs={})
50 retry_on_error=False)
51 self._parse_homepage(homepage)
52 return func(self, *args, **kwargs)
53 return wrapper
54
func = <function VncApi._object_update>
self = <vnc_api_test.TestVncApi object>
args = ('virtual-network', <vnc_api.gen.resource_client.VirtualNetwork object>)
kwargs = {}

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in _object_update(self=<vnc_api_test.TestVncApi object>, res_type='virtual-network', obj=<vnc_api.gen.resource_client.VirtualNetwork object>)
831 self.ref_update(
832 res_type, obj.uuid, ref_name, ref[0], list(ref[1]),
833 'ADD', ref[2])
834 obj.clear_pending_updates()
835
ref = ('ed44acbf-31a0-4ece-a12b-8127aa769608', ('default-domain', 'default-project', 'default-network-ipam'), ipam_subnets = [subnet = ip_prefix = 135.40.145....None, dhcp_relay_server = []], host_routes = None)

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in wrapper(self=<vnc_api_test.TestVncApi object>, *args=('virtual-network', '36825389-ddbe-4281-bbb1-2f6877e8fbff', 'network_ipam_refs', 'ed44acbf-31a0-4ece-a12b-8127aa769608', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 135.40.145....None, dhcp_relay_server = []], host_routes = None), **kwargs={})
50 retry_on_error=False)
51 self._parse_homepage(homepage)
52 return func(self, *args, **kwargs)
53 return wrapper
54
func = <function VncApi.ref_update>
self = <vnc_api_test.TestVncApi object>
args = ('virtual-network', '36825389-ddbe-4281-bbb1-2f6877e8fbff', 'network_ipam_refs', 'ed44acbf-31a0-4ece-a12b-8127aa769608', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 135.40.145....None, dhcp_relay_server = []], host_routes = None)
kwargs = {}

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='36825389-ddbe-4281-bbb1-2f6877e8fbff', ref_type='network-ipam', ref_uuid='ed44acbf-31a0-4ece-a12b-8127aa769608', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 135.40.145....None, dhcp_relay_server = []], host_routes = None)
1362 if he.status_code == 404:
1363 return None
1364 raise he
1365
1366 return json.loads(content)['uuid']
he undefined

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='36825389-ddbe-4281-bbb1-2f6877e8fbff', ref_type='network-ipam', ref_uuid='ed44acbf-31a0-4ece-a12b-8127aa769608', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 135.40.145....None, dhcp_relay_server = []], host_routes = None)
1358 uri = self._action_uri['ref-update']
1359 try:
1360 content = self._request_server(OP_POST, uri, data=json_body)
1361 except HttpError as he:
1362 if he.status_code == 404:
content undefined
self = <vnc_api_test.TestVncApi object>
self._request_server = <bound method VncApi._request_server of <vnc_api_test.TestVncApi object>>
global OP_POST = 1
uri = '/ref-update'
data undefined
json_body = '{"type": "virtual-network", "uuid": "36825389-dd... "dhcp_relay_server": []}], "host_routes": null}}'

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in _request_server(self=<vnc_api_test.TestVncApi object>, op=1, url='/ref-update', data='{"type": "virtual-network", "uuid": "36825389-dd... "dhcp_relay_server": []}], "host_routes": null}}', retry_on_error=True, retry_after_authn=False, retry_count=30)
1126 return self._request(
1127 op, url, data=data, retry_on_error=retry_on_error,
1128 retry_after_authn=retry_after_authn, retry_count=retry_count)
1129 # end _request_server
1130
retry_after_authn = False
retry_count = 30

/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py in _request(self=<vnc_api_test.TestVncApi object>, op=1, url='/ref-update', data='{"type": "virtual-network", "uuid": "36825389-dd... "dhcp_relay_server": []}], "host_routes": null}}', retry_on_error=True, retry_after_authn=False, retry_count=30)
1206 raise AuthFailed(status, content)
1207 else: # Unknown Error
1208 raise HttpError(status, content)
1209 # end while True
1210
global HttpError = <class 'vnc_api.exceptions.HttpError'>
status = 500
content = "'NoneType' object is not iterable"
HttpError: HTTP Status: 500 Content: 'NoneType' object is not iterable
__cause__ = None
__class__ = <class 'vnc_api.exceptions.HttpError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of HttpError object>
__dict__ = {'content': "'NoneType' object is not iterable", 'status_code': 500}
__dir__ = <built-in method __dir__ of HttpError object>
__doc__ = None
__eq__ = <method-wrapper '__eq__' of HttpError object>
__format__ = <built-in method __format__ of HttpError object>
__ge__ = <method-wrapper '__ge__' of HttpError object>
__getattribute__ = <method-wrapper '__getattribute__' of HttpError object>
__gt__ = <method-wrapper '__gt__' of HttpError object>
__hash__ = <method-wrapper '__hash__' of HttpError object>
__init__ = <bound method HttpError.__init__ of HttpError(500, "'NoneType' object is not iterable")>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of HttpError object>
__lt__ = <method-wrapper '__lt__' of HttpError object>
__module__ = 'vnc_api.exceptions'
__ne__ = <method-wrapper '__ne__' of HttpError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of HttpError object>
__reduce_ex__ = <built-in method __reduce_ex__ of HttpError object>
__repr__ = <method-wrapper '__repr__' of HttpError object>
__setattr__ = <method-wrapper '__setattr__' of HttpError object>
__setstate__ = <built-in method __setstate__ of HttpError object>
__sizeof__ = <built-in method __sizeof__ of HttpError object>
__str__ = <bound method HttpError.__str__ of HttpError(500, "'NoneType' object is not iterable")>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
__weakref__ = None
args = (500, "'NoneType' object is not iterable")
content = "'NoneType' object is not iterable"
status_code = 500
with_traceback = <built-in method with_traceback of HttpError object>

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

Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/serial_scripts/rbac/test_rbac_basic.py", line 47, in test_rbac_acl_different_roles
vn = self.create_vn(connections=user1_conn)
File "/contrail-test/serial_scripts/rbac/base.py", line 217, in create_vn
option=option, **kwargs)
File "/contrail-test/serial_scripts/rbac/base.py", line 354, in create_fixture
return self.useFixture(fixturecls(**kwargs))
File "/usr/local/lib/python3.6/site-packages/testtools/testcase.py", line 756, in useFixture
reraise(*exc_info)
File "/usr/local/lib/python3.6/site-packages/testtools/_compat3x.py", line 16, in reraise
raise exc_obj.with_traceback(exc_tb)
File "/usr/local/lib/python3.6/site-packages/testtools/testcase.py", line 731, in useFixture
fixture.setUp()
File "/contrail-test/fixtures/vn_test.py", line 439, in setUp
self.create()
File "/contrail-test/fixtures/vn_test.py", line 450, in create
self._create_vn_api(self.vn_name, self.project_obj)
File "/contrail-test/fixtures/vn_test.py", line 416, in _create_vn_api
self.vnc_lib_h.virtual_network_update(self.api_vn_obj)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 833, in _object_update
'ADD', ref[2])
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1364, in ref_update
raise he
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1360, in ref_update
content = self._request_server(OP_POST, uri, data=json_body)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1128, in _request_server
retry_after_authn=retry_after_authn, retry_count=retry_count)
File "/usr/local/lib/python3.6/site-packages/vnc_api/vnc_api.py", line 1208, in _request
raise HttpError(status, content)
vnc_api.exceptions.HttpError: HTTP Status: 500 Content: 'NoneType' object is not iterable

4.145 Log File
test_contrail_status[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]Success0.452
test_communication_between_two_sriov_vm[ci_sanity]SkippedSkipped as test is not supported if sriov_cluster=False 0.003
test_communication_between_two_sriov_vm_with_large_mtu[ci_sanity]SkippedSkipped as test is not supported if sriov_cluster=False 0.002
test_virtual_function_exhaustion_and_resue[ci_sanity]SkippedSkipped as test is not supported if sriov_cluster=False 0.002
Properties »

Back to top