Test Results

Designed for use with JUnit and Ant.

Properties


Summary

TestsFailuresErrorsSkippedSuccess rateTime
27180325.00%400.654
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)
270183400.654

Package

NameTestsErrorsFailuresSkippedTime(s)
7033250.716
200150149.938
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
Thu Aug 7 16:40:31 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=0x7fa7d2e31d30>, *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=0x7fa7d2e31d30>
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=0x7fa7d2e31d30>)
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=0x7fa7d2e31d30>
self.create_vn = <bound method BaseRbac.create_vn of <serial_scri...lobal_share[ci_sanity,sanity] id=0x7fa7d2e31d30>>
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=0x7fa7d2e31d30>, 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=0x7fa7d2e31d30>, 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=0x7fa7d2e31d30>
self.useFixture = <bound method TestCase.useFixture of <serial_scr...lobal_share[ci_sanity,sanity] id=0x7fa7d2e31d30>>
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=0x7fa7d2e31d30>, 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=0x7fa7d2e31d30>, 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-35145938-35002225'
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-35145938-35002225', 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 0x7fa7d17bf978>>, '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 = ('ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ('default-domain', 'default-project', 'default-network-ipam'), ipam_subnets = [subnet = ip_prefix = 54.88.9.192...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', 'c04afeee-de1f-4550-af08-13ab7d71e377', 'network_ipam_refs', 'ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 54.88.9.192...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', 'c04afeee-de1f-4550-af08-13ab7d71e377', 'network_ipam_refs', 'ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 54.88.9.192...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='c04afeee-de1f-4550-af08-13ab7d71e377', ref_type='network-ipam', ref_uuid='ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 54.88.9.192...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='c04afeee-de1f-4550-af08-13ab7d71e377', ref_type='network-ipam', ref_uuid='ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 54.88.9.192...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": "c04afeee-de... "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": "c04afeee-de... "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": "c04afeee-de... "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

74.924 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
Thu Aug 7 16:41:55 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=0x7fa7d2e3f0b8>, *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=0x7fa7d2e3f0b8>
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=0x7fa7d2e3f0b8>)
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=0x7fa7d2e3f0b8>
self.create_vn = <bound method BaseRbac.create_vn of <serial_scri...wner[ci_sanity,sanity,suite1] id=0x7fa7d2e3f0b8>>
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=0x7fa7d2e3f0b8>, 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=0x7fa7d2e3f0b8>, 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=0x7fa7d2e3f0b8>
self.useFixture = <bound method TestCase.useFixture of <serial_scr...wner[ci_sanity,sanity,suite1] id=0x7fa7d2e3f0b8>>
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=0x7fa7d2e3f0b8>, 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=0x7fa7d2e3f0b8>, 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-22714793-28260739'
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-22714793-28260739', 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 0x7fa7d13e7dd8>>, '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 = ('ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ('default-domain', 'default-project', 'default-network-ipam'), ipam_subnets = [subnet = ip_prefix = 186.6.151.6...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', 'e3565ac0-ae2a-4361-9eb3-d1a8e9b46e0d', 'network_ipam_refs', 'ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 186.6.151.6...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', 'e3565ac0-ae2a-4361-9eb3-d1a8e9b46e0d', 'network_ipam_refs', 'ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 186.6.151.6...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='e3565ac0-ae2a-4361-9eb3-d1a8e9b46e0d', ref_type='network-ipam', ref_uuid='ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 186.6.151.6...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='e3565ac0-ae2a-4361-9eb3-d1a8e9b46e0d', ref_type='network-ipam', ref_uuid='ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 186.6.151.6...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": "e3565ac0-ae... "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": "e3565ac0-ae... "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": "e3565ac0-ae... "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

74.868 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
Thu Aug 7 16:43:07 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=0x7fa7d2e3f9b0>, *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=0x7fa7d2e3f9b0>
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=0x7fa7d2e3f9b0>)
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=0x7fa7d2e3f9b0>
self.create_vn = <bound method BaseRbac.create_vn of <serial_scri...oles[ci_sanity,sanity,suite1] id=0x7fa7d2e3f9b0>>
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=0x7fa7d2e3f9b0>, 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=0x7fa7d2e3f9b0>, 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=0x7fa7d2e3f9b0>
self.useFixture = <bound method TestCase.useFixture of <serial_scr...oles[ci_sanity,sanity,suite1] id=0x7fa7d2e3f9b0>>
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=0x7fa7d2e3f9b0>, 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=0x7fa7d2e3f9b0>, 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-35440749-87220322'
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-35440749-87220322', 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 0x7fa7d13e1828>>, '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 = ('ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ('default-domain', 'default-project', 'default-network-ipam'), ipam_subnets = [subnet = ip_prefix = 42.103.18.1...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', '37d4c02f-b304-436b-a3aa-5fa5b4b750aa', 'network_ipam_refs', 'ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 42.103.18.1...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', '37d4c02f-b304-436b-a3aa-5fa5b4b750aa', 'network_ipam_refs', 'ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 42.103.18.1...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='37d4c02f-b304-436b-a3aa-5fa5b4b750aa', ref_type='network-ipam', ref_uuid='ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 42.103.18.1...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='37d4c02f-b304-436b-a3aa-5fa5b4b750aa', ref_type='network-ipam', ref_uuid='ba76b1cc-bdef-4caf-8d84-2e6ccd4ebc6d', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 42.103.18.1...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": "37d4c02f-b3... "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": "37d4c02f-b3... "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": "37d4c02f-b3... "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.893 Log File
test_contrail_status[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]Success0.844
test_communication_between_two_sriov_vm[ci_sanity]SkippedSkipped as test is not supported if sriov_cluster=False 0.006
test_communication_between_two_sriov_vm_with_large_mtu[ci_sanity]SkippedSkipped as test is not supported if sriov_cluster=False 0.006
test_virtual_function_exhaustion_and_resue[ci_sanity]SkippedSkipped as test is not supported if sriov_cluster=False 0.005
Properties »

Back to top

TestCase

NameStatusTypeTime(s)LogFile
test_contrail_status[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]Success0.950
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
Thu Aug 7 16:37:53 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=0x7f9f14977ba8>, *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=0x7f9f14977ba8>
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=0x7f9f14977ba8>)
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': '1ca09c3e-0c99-475d...2/project/7a9ed906-4cfe-4c86-b202-d13ce2fb25e5'}}
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'

3.369 Log File
test_db_manage[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]Success6.450
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
Thu Aug 7 16:38: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=<scripts.floatingip.test_floatingip_basic.Floati...nity,sanity,suite1,vrouter_gw] id=0x7f9f14771c50>, *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=0x7f9f14771c50>
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=0x7f9f14771c50>)
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': '0eb514b6-be44-4f5c...2/project/6799bd3d-0fbb-4f8f-8e62-aa90e17e4f67'}}
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.482 Log File
test_heat_stacks_list[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity]Success0.706
test_router_crud[ci_sanity,dev_sanity_dpdk,sanity]Success9.839
test_ports_bindings[ci_sanity,dev_sanity_dpdk,sanity]Success2.852
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
Thu Aug 7 16:38:37 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=0x7f9f143cef60>, *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=0x7f9f143cef60>
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=0x7f9f143cef60>)
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.575 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
Thu Aug 7 16:38:46 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=0x7f9f143e7c88>, *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=0x7f9f143e7c88>
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=0x7f9f143e7c88>)
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=0x7f9f143e7c88>, vn_fixture=<vn_test.VNFixture object>, vm_name='ctest-vn1-vm1-88048865', 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-88048865', 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-88048865>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-vn1-vm1-88048865>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-vn1-vm1-88048865>)
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-88048865>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-vn1-vm1-88048865', image_name='cirros', vn_objs=[{'network': {'id': '7ab2ba77-5a22-4ae8-8292-9ce1...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': 'ec02b585-fca1-43cf-b7d3-347db443f2ad', '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-88048865'
image_name = 'cirros'
vn_ids = ['7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': 'ec02b585-fca1-43cf-b7d3-347db443f2ad', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='ec02b585-fca1-43cf-b7d3-347db443f2ad', image_name='cirros', vm_name='ctest-vn1-vm1-88048865', vn_ids=['7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'], node_name='cn-jenkins-deploy-platform-ansible-os-3773-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-3773-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-88048865', image=<RequestIdProxy at 0x7f9f1212b088 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-35961750ctest-TestRouters-35961750key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}], 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-88048865', <RequestIdProxy at 0x7f9f1212b088 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-3773-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', ...}

/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-88048865', image=<RequestIdProxy at 0x7f9f1212b088 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-35961750ctest-TestRouters-35961750key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}], 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}, 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}})
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}}

/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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABolNaRaTfdoAnXeIFttcrBy0tqA8XrhYUXpblkuKNH...kFB1WBlKlqYS3OOfnMxegtPT2V0A7zGJYqSX1sge8H8h5L7ZQ'}})
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 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-33a50e53-7554-4aa9-94b8-6eb3e9982353)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-33a50e53-7554-4aa9-94b8-6eb3e9982353', '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 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-33a50e53-7554-4aa9-94b8-6eb3e9982353'
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 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-33a50e53-7554-4aa9-94b8-6eb3e9982353)

5.301 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
Thu Aug 7 16:38:56 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=0x7f9f143f71d0>, *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=0x7f9f143f71d0>
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=0x7f9f143f71d0>)
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=0x7f9f143f71d0>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...ev_sanity_dpdk,sanity,suite1] id=0x7f9f143f71d0>>
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=0x7f9f143f71d0>, 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-14777185-94159069>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestRoutersBasic-14777185-94159069>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestRoutersBasic-14777185-94159069>)
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-14777185-94159069>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestRoutersBasic-14777185-94159069', image_name='cirros', vn_objs=[{'network': {'id': 'bad02bf5-bb0b-43ba-bd30-2870...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '3676bf03-9597-4a67-949a-5bd7d43934ab', '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-14777185-94159069'
image_name = 'cirros'
vn_ids = ['bad02bf5-bb0b-43ba-bd30-287082e32fcc']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '3676bf03-9597-4a67-949a-5bd7d43934ab', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='3676bf03-9597-4a67-949a-5bd7d43934ab', image_name='cirros', vm_name='ctest-TestRoutersBasic-14777185-94159069', vn_ids=['bad02bf5-bb0b-43ba-bd30-287082e32fcc'], node_name='cn-jenkins-deploy-platform-ansible-os-3773-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-3773-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-14777185-94159069', image=<RequestIdProxy at 0x7f9f11ff6208 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-14777185ctest-TestRoutersBasic-14777185key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'bad02bf5-bb0b-43ba-bd30-287082e32fcc'}], 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-14777185-94159069', <RequestIdProxy at 0x7f9f11ff6208 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-3773-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRoutersBasic-14777185ctest-TestRoutersBasic-14777185key1', ...}

/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-14777185-94159069', image=<RequestIdProxy at 0x7f9f11ff6208 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-14777185ctest-TestRoutersBasic-14777185key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'bad02bf5-bb0b-43ba-bd30-287082e32fcc'}], 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRoutersBasic-14777185ctest-TestRoutersBasic-14777185key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-14777185-94159069', 'networks': [{'uuid': 'bad02bf5-bb0b-43ba-bd30-287082e32fcc'}]}}, 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRoutersBasic-14777185ctest-TestRoutersBasic-14777185key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-14777185-94159069', 'networks': [{'uuid': 'bad02bf5-bb0b-43ba-bd30-287082e32fcc'}]}}
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRoutersBasic-14777185ctest-TestRoutersBasic-14777185key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-14777185-94159069', 'networks': [{'uuid': 'bad02bf5-bb0b-43ba-bd30-287082e32fcc'}]}}})
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRoutersBasic-14777185ctest-TestRoutersBasic-14777185key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-14777185-94159069', 'networks': [{'uuid': 'bad02bf5-bb0b-43ba-bd30-287082e32fcc'}]}}}

/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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRoutersBasic-14777185ctest-TestRoutersBasic-14777185key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-14777185-94159069', 'networks': [{'uuid': 'bad02bf5-bb0b-43ba-bd30-287082e32fcc'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABolNab3gcDyW9tAcPM30ZrFmNlY4ObFh_7kBxviXx6...qaF3WNsqTxdceWOZD3y8OYgT0LNB1eXB_3GmwWFo_TSn-K6c8'}})
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 bad02bf5-bb0b-43ba-bd30-287082e32fcc requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network bad02bf5-bb0b-43ba-bd30-287082e32fcc requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-289ecc78-47c1-424d-aee4-277d69263401)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network bad02bf5-bb0b-43ba-bd30-287082e32fcc requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-289ecc78-47c1-424d-aee4-277d69263401', '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 bad02bf5-bb0b-43ba-bd30-287082e32fcc requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-289ecc78-47c1-424d-aee4-277d69263401'
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 bad02bf5-bb0b-43ba-bd30-287082e32fcc requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-289ecc78-47c1-424d-aee4-277d69263401)

4.620 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
Thu Aug 7 16:39:05 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=0x7f9f168115c0>, *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=0x7f9f168115c0>
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=0x7f9f168115c0>)
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': '12f67c4a-4919-4f2e...2/project/d0f78462-1445-4745-881d-d57a39c77ace'}}
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'

4.915 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
Thu Aug 7 16:39:14 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=0x7f9f143c04a8>, *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=0x7f9f143c04a8>
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=0x7f9f143c04a8>)
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=0x7f9f143c04a8>
).test_remove_policy_with_ref = <bound method TestBasicPolicyNegativeIpv4v6.test...cy_with_ref[ci_sanity,sanity] id=0x7f9f143c04a8>>

/contrail-test/tcutils/wrappers.py in wrapper(self=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7f9f143c04a8>, *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
Thu Aug 7 16:39:14 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=0x7f9f143c04a8>, *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=0x7f9f143c04a8>
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=0x7f9f143c04a8>)
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': '6211a6a7-ea0b-4c32...2/project/e0af6d2e-7fe3-4dc6-bfe5-d179aad69d11'}}
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
Thu Aug 7 16:39:14 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=0x7f9f143c04a8>, *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=0x7f9f143c04a8>
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=0x7f9f143c04a8>)
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': '6211a6a7-ea0b-4c32...2/project/e0af6d2e-7fe3-4dc6-bfe5-d179aad69d11'}}
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'

3.988 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
Thu Aug 7 16:39:23 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=0x7f9f1684a4a8>, *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=0x7f9f1684a4a8>
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=0x7f9f1684a4a8>)
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': 'f5762a80-c846-49ee...2/project/fd139c8c-d29f-47f3-b5f7-8b8c991bc252'}}
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'

4.713 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
Thu Aug 7 16:39:31 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=0x7f9f16601da0>, *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=0x7f9f16601da0>
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=0x7f9f16601da0>)
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=0x7f9f16601da0>
self.config_basic = <bound method RPBase.config_basic of <scripts.ro...p_interface[ci_sanity,sanity] id=0x7f9f16601da0>>

/contrail-test/scripts/routing_policy/base.py in config_basic(self=<scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7f9f16601da0>)
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=0x7f9f16601da0>, 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': '9e0ea609-36d0-4ecb-aebd-5919...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': 'e38085b1-5916-4a06-9872-753ea9eaa56f', '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 = ['9e0ea609-36d0-4ecb-aebd-59190a61e957']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': 'e38085b1-5916-4a06-9872-753ea9eaa56f', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='e38085b1-5916-4a06-9872-753ea9eaa56f', image_name='cirros', vm_name='test_vm', vn_ids=['9e0ea609-36d0-4ecb-aebd-59190a61e957'], node_name='cn-jenkins-deploy-platform-ansible-os-3773-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-3773-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 0x7f9f13d03a88 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-04205290ctest-TestRP-04205290key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '9e0ea609-36d0-4ecb-aebd-59190a61e957'}], 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 0x7f9f13d03a88 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-3773-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRP-04205290ctest-TestRP-04205290key1', ...}

/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 0x7f9f13d03a88 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-04205290ctest-TestRP-04205290key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '9e0ea609-36d0-4ecb-aebd-59190a61e957'}], 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRP-04205290ctest-TestRP-04205290key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '9e0ea609-36d0-4ecb-aebd-59190a61e957'}]}}, 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRP-04205290ctest-TestRP-04205290key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '9e0ea609-36d0-4ecb-aebd-59190a61e957'}]}}
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRP-04205290ctest-TestRP-04205290key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '9e0ea609-36d0-4ecb-aebd-59190a61e957'}]}}})
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRP-04205290ctest-TestRP-04205290key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '9e0ea609-36d0-4ecb-aebd-59190a61e957'}]}}}

/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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRP-04205290ctest-TestRP-04205290key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '9e0ea609-36d0-4ecb-aebd-59190a61e957'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABolNa_Ggr_jEgA68HTx3vIp-k1767lmICFVP_yzrxO...rHMLy1gGkuvgTHmKENnaOynLqcmBU9KomxLg3gfJ1TC6QcATE'}})
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 9e0ea609-36d0-4ecb-aebd-59190a61e957 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 9e0ea609-36d0-4ecb-aebd-59190a61e957 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-de0b0a27-07dc-4d9f-aa12-c7f63a4287c7)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network 9e0ea609-36d0-4ecb-aebd-59190a61e957 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-de0b0a27-07dc-4d9f-aa12-c7f63a4287c7', '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 9e0ea609-36d0-4ecb-aebd-59190a61e957 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-de0b0a27-07dc-4d9f-aa12-c7f63a4287c7'
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 9e0ea609-36d0-4ecb-aebd-59190a61e957 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-de0b0a27-07dc-4d9f-aa12-c7f63a4287c7)

3.467 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
Thu Aug 7 16:39:38 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=0x7f9f13e2ca20>, *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=0x7f9f13e2ca20>
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=0x7f9f13e2ca20>)
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=0x7f9f13e2ca20>, *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=0x7f9f13e2ca20>
self.config_svc_chain = <bound method ConfigSvcChain.config_svc_chain of...n_network_datapath[ci_sanity] id=0x7f9f13e2ca20>>
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=0x7f9f13e2ca20>, 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=0x7f9f13e2ca20>, vn_name='ctest-mgmt_vn-95448772', vn_subnets=['223.49.172.0/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=0x7f9f13e2ca20>
self.config_vn = <bound method ConfigSvcChain.config_vn of <scrip...n_network_datapath[ci_sanity] id=0x7f9f13e2ca20>>
vn_name = 'ctest-mgmt_vn-95448772'
vn_subnets = ['223.49.172.0/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=0x7f9f13e2ca20>, vn_name='ctest-mgmt_vn-95448772', vn_net=['223.49.172.0/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': '56423ae2-7eba-4ea3...2/project/399fec2f-8139-4d11-8507-8fc65a70d8d4'}}
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'

2.377 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
Thu Aug 7 16:39: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.vdns.test_vdns_basic.TestvDNSBasic0.tes...me_vn[ci_sanity,sanity,suite1] id=0x7f9f13dedb70>, *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=0x7f9f13dedb70>
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=0x7f9f13dedb70>)
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=0x7f9f13dedb70>
self.inputs = <common.contrail_test_init.ContrailTestInit object>
self.inputs.project_name = 'ctest-TestvDNSBasic0-47453128'
connections undefined
self.connections = <common.connections.ContrailConnections object>
vn_obj undefined
vn_quantum_obj = {'network': {'id': '4d338350-c54a-4921-befa-4892...port_security_enabled': True, 'description': ''}}
vm_name = 'ctest-vm1-test-93089562'
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=0x7f9f13dedb70>, fixture=<VMFixture: ctest-vm1-test-93089562>)
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=0x7f9f13dedb70>, fixture=<VMFixture: ctest-vm1-test-93089562>)
729 """
730 try:
731 fixture.setUp()
732 except MultipleExceptions as e:
733 if (fixtures is not None and
fixture = <VMFixture: ctest-vm1-test-93089562>
fixture.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-vm1-test-93089562>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-vm1-test-93089562>)
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-93089562>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-vm1-test-93089562', image_name='cirros', vn_objs=[{'network': {'id': '4d338350-c54a-4921-befa-4892...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': [], 'project_uuid': 'beeb2156-6513-45c3-a9f7-51c698601183', '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-93089562'
image_name = 'cirros'
vn_ids = ['4d338350-c54a-4921-befa-489251374b92']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': [], 'project_uuid': 'beeb2156-6513-45c3-a9f7-51c698601183', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='beeb2156-6513-45c3-a9f7-51c698601183', image_name='cirros', vm_name='ctest-vm1-test-93089562', vn_ids=['4d338350-c54a-4921-befa-489251374b92'], node_name='cn-jenkins-deploy-platform-ansible-os-3773-1', sg_ids=[], count=1, userdata=None, flavor=<Flavor: contrail_flavor_tiny>, port_ids=[], fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-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-93089562', image=<RequestIdProxy at 0x7f9f11996108 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-47453128ctest-TestvDNSBasic0-47453128key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '4d338350-c54a-4921-befa-489251374b92'}], 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-93089562', <RequestIdProxy at 0x7f9f11996108 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-3773-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestvDNSBasic0-47453128ctest-TestvDNSBasic0-47453128key1', ...}

/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-93089562', image=<RequestIdProxy at 0x7f9f11996108 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-47453128ctest-TestvDNSBasic0-47453128key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '4d338350-c54a-4921-befa-489251374b92'}], 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestvDNSBasic0-47453128ctest-TestvDNSBasic0-47453128key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-93089562', 'networks': [{'uuid': '4d338350-c54a-4921-befa-489251374b92'}]}}, 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestvDNSBasic0-47453128ctest-TestvDNSBasic0-47453128key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-93089562', 'networks': [{'uuid': '4d338350-c54a-4921-befa-489251374b92'}]}}
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestvDNSBasic0-47453128ctest-TestvDNSBasic0-47453128key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-93089562', 'networks': [{'uuid': '4d338350-c54a-4921-befa-489251374b92'}]}}})
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestvDNSBasic0-47453128ctest-TestvDNSBasic0-47453128key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-93089562', 'networks': [{'uuid': '4d338350-c54a-4921-befa-489251374b92'}]}}}

/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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestvDNSBasic0-47453128ctest-TestvDNSBasic0-47453128key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-93089562', 'networks': [{'uuid': '4d338350-c54a-4921-befa-489251374b92'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABolNbPpV0iGoHW5CXxQQRKeIZoHjyk2vguyin3Froo...GRVKJtLYOcXR35-qXS4fP0BK1kLCMgiKq00gF7uL8pVpO_VhU'}})
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 4d338350-c54a-4921-befa-489251374b92 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 4d338350-c54a-4921-befa-489251374b92 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-d91d7b01-277a-4cb0-b568-19506bee3cb1)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network 4d338350-c54a-4921-befa-489251374b92 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-d91d7b01-277a-4cb0-b568-19506bee3cb1', '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 4d338350-c54a-4921-befa-489251374b92 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-d91d7b01-277a-4cb0-b568-19506bee3cb1'
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 4d338350-c54a-4921-befa-489251374b92 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-d91d7b01-277a-4cb0-b568-19506bee3cb1)

5.068 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
Thu Aug 7 16:39:56 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=0x7f9f13d59780>, *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=0x7f9f13d59780>
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=0x7f9f13d59780>)
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=0x7f9f13d59780>
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=0x7f9f13d59780>, 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-16520211-85155220>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestBasicVMVNx-16520211-85155220>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestBasicVMVNx-16520211-85155220>)
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-16520211-85155220>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestBasicVMVNx-16520211-85155220', image_name='cirros', vn_objs=[{'network': {'id': 'c5a327e6-b47d-46b5-97f5-7184...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': 'df55f6f0-a604-4d59-9b38-e14c98e05997', '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-16520211-85155220'
image_name = 'cirros'
vn_ids = ['c5a327e6-b47d-46b5-97f5-718475a401eb']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': 'df55f6f0-a604-4d59-9b38-e14c98e05997', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='df55f6f0-a604-4d59-9b38-e14c98e05997', image_name='cirros', vm_name='ctest-TestBasicVMVNx-16520211-85155220', vn_ids=['c5a327e6-b47d-46b5-97f5-718475a401eb'], node_name='cn-jenkins-deploy-platform-ansible-os-3773-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-3773-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-16520211-85155220', image=<RequestIdProxy at 0x7f9f118ed0c8 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-16520211ctest-TestBasicVMVNx-16520211key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'c5a327e6-b47d-46b5-97f5-718475a401eb'}], 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-16520211-85155220', <RequestIdProxy at 0x7f9f118ed0c8 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-3773-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestBasicVMVNx-16520211ctest-TestBasicVMVNx-16520211key1', ...}

/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-16520211-85155220', image=<RequestIdProxy at 0x7f9f118ed0c8 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-16520211ctest-TestBasicVMVNx-16520211key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'c5a327e6-b47d-46b5-97f5-718475a401eb'}], 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVNx-16520211ctest-TestBasicVMVNx-16520211key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-16520211-85155220', 'networks': [{'uuid': 'c5a327e6-b47d-46b5-97f5-718475a401eb'}]}}, 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVNx-16520211ctest-TestBasicVMVNx-16520211key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-16520211-85155220', 'networks': [{'uuid': 'c5a327e6-b47d-46b5-97f5-718475a401eb'}]}}
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVNx-16520211ctest-TestBasicVMVNx-16520211key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-16520211-85155220', 'networks': [{'uuid': 'c5a327e6-b47d-46b5-97f5-718475a401eb'}]}}})
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVNx-16520211ctest-TestBasicVMVNx-16520211key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-16520211-85155220', 'networks': [{'uuid': 'c5a327e6-b47d-46b5-97f5-718475a401eb'}]}}}

/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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVNx-16520211ctest-TestBasicVMVNx-16520211key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-16520211-85155220', 'networks': [{'uuid': 'c5a327e6-b47d-46b5-97f5-718475a401eb'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABolNbZ1-33xpAinc_ukJuiA282qWEC2v0Bg34WnWrY...cyVSQj1WkuXC6ieiTHO5qe5a2p4qDm46zttZLg47GNOpABnhY'}})
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 c5a327e6-b47d-46b5-97f5-718475a401eb requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network c5a327e6-b47d-46b5-97f5-718475a401eb requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-8a02fce3-ac76-40e8-9051-b7d01fa63379)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network c5a327e6-b47d-46b5-97f5-718475a401eb requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-8a02fce3-ac76-40e8-9051-b7d01fa63379', '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 c5a327e6-b47d-46b5-97f5-718475a401eb requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-8a02fce3-ac76-40e8-9051-b7d01fa63379'
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 c5a327e6-b47d-46b5-97f5-718475a401eb requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-8a02fce3-ac76-40e8-9051-b7d01fa63379)

2.869 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
Thu Aug 7 16:40: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.vm_regression.test_vm_basic.TestBasicVM...dev_sanity_dpdk,sanity,suite1] id=0x7f9f13d59978>, *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=0x7f9f13d59978>
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=0x7f9f13d59978>)
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=0x7f9f13d59978>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...ev_sanity_dpdk,sanity,suite1] id=0x7f9f13d59978>>
vn_ids undefined
vn_fixture = <vn_test.VNFixture object>
vn_fixture.uuid = 'fd78c59a-2610-4652-8631-0511fcb89324'
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=0x7f9f13d59978>, vn_fixture=None, vm_name=None, image_name='cirros', port_ids=None, **kwargs={'vn_ids': ['fd78c59a-2610-4652-8631-0511fcb89324']})
279 image_name=image_name,
280 port_ids=port_ids,
281 **kwargs)
282 if cleanup:
283 self.addCleanup(vm_fixture.cleanUp)
kwargs = {'vn_ids': ['fd78c59a-2610-4652-8631-0511fcb89324']}

/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': ['fd78c59a-2610-4652-8631-0511fcb89324']})
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-89398966-10484464>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestBasicVMVN-89398966-10484464>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestBasicVMVN-89398966-10484464>)
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-89398966-10484464>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestBasicVMVN-89398966-10484464', image_name='cirros', vn_objs=[{'network': {'id': 'fd78c59a-2610-4652-8631-0511...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '26992612-9c82-48f8-a1db-700953faa645', '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-89398966-10484464'
image_name = 'cirros'
vn_ids = ['fd78c59a-2610-4652-8631-0511fcb89324']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '26992612-9c82-48f8-a1db-700953faa645', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='26992612-9c82-48f8-a1db-700953faa645', image_name='cirros', vm_name='ctest-TestBasicVMVN-89398966-10484464', vn_ids=['fd78c59a-2610-4652-8631-0511fcb89324'], node_name='cn-jenkins-deploy-platform-ansible-os-3773-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-3773-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-89398966-10484464', image=<RequestIdProxy at 0x7f9f11643108 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-89398966ctest-TestBasicVMVN-89398966key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'fd78c59a-2610-4652-8631-0511fcb89324'}], 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-89398966-10484464', <RequestIdProxy at 0x7f9f11643108 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-3773-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', ...}

/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-89398966-10484464', image=<RequestIdProxy at 0x7f9f11643108 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-89398966ctest-TestBasicVMVN-89398966key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'fd78c59a-2610-4652-8631-0511fcb89324'}], 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-10484464', 'networks': [{'uuid': 'fd78c59a-2610-4652-8631-0511fcb89324'}]}}, 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-10484464', 'networks': [{'uuid': 'fd78c59a-2610-4652-8631-0511fcb89324'}]}}
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-10484464', 'networks': [{'uuid': 'fd78c59a-2610-4652-8631-0511fcb89324'}]}}})
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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-10484464', 'networks': [{'uuid': 'fd78c59a-2610-4652-8631-0511fcb89324'}]}}}

/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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-10484464', 'networks': [{'uuid': 'fd78c59a-2610-4652-8631-0511fcb89324'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABolNbgxtHZKXvMQBCDppIF926QHpfsL2JOvRamUkJy...XWEXOTzupFv4wrWsQIpLNgllsFfFbHF3IO59UsqN2yP-K62uI'}})
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 fd78c59a-2610-4652-8631-0511fcb89324 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network fd78c59a-2610-4652-8631-0511fcb89324 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-158fb43d-ccd2-4667-8544-e8209e88e617)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network fd78c59a-2610-4652-8631-0511fcb89324 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-158fb43d-ccd2-4667-8544-e8209e88e617', '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 fd78c59a-2610-4652-8631-0511fcb89324 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-158fb43d-ccd2-4667-8544-e8209e88e617'
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 fd78c59a-2610-4652-8631-0511fcb89324 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-158fb43d-ccd2-4667-8544-e8209e88e617)

2.154 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
Thu Aug 7 16:40:05 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=0x7f9f13d59860>, *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=0x7f9f13d59860>
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=0x7f9f13d59860>)
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=0x7f9f13d59860>, 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-89398966-79103397>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestBasicVMVN-89398966-79103397>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestBasicVMVN-89398966-79103397>)
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-89398966-79103397>
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestBasicVMVN-89398966-79103397', image_name='cirros', vn_objs=[{'network': {'id': '1ab34e0b-670d-4837-aee7-b291...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '26992612-9c82-48f8-a1db-700953faa645', '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-89398966-79103397'
image_name = 'cirros'
vn_ids = ['1ab34e0b-670d-4837-aee7-b2917261faf9']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '26992612-9c82-48f8-a1db-700953faa645', '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='26992612-9c82-48f8-a1db-700953faa645', image_name='cirros', vm_name='ctest-TestBasicVMVN-89398966-79103397', vn_ids=['1ab34e0b-670d-4837-aee7-b2917261faf9'], node_name='cn-jenkins-deploy-platform-ansible-os-3773-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-3773-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-89398966-79103397', image=<RequestIdProxy at 0x7f9f11659a88 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-89398966ctest-TestBasicVMVN-89398966key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '1ab34e0b-670d-4837-aee7-b2917261faf9'}], 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-89398966-79103397', <RequestIdProxy at 0x7f9f11659a88 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-3773-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', ...}

/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-89398966-79103397', image=<RequestIdProxy at 0x7f9f11659a88 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-89398966ctest-TestBasicVMVN-89398966key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '1ab34e0b-670d-4837-aee7-b2917261faf9'}], 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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-79103397', 'networks': [{'uuid': '1ab34e0b-670d-4837-aee7-b2917261faf9'}], '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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-79103397', 'networks': [{'uuid': '1ab34e0b-670d-4837-aee7-b2917261faf9'}], '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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-79103397', 'networks': [{'uuid': '1ab34e0b-670d-4837-aee7-b2917261faf9'}], '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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-79103397', 'networks': [{'uuid': '1ab34e0b-670d-4837-aee7-b2917261faf9'}], '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-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestBasicVMVN-89398966ctest-TestBasicVMVN-89398966key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-89398966-79103397', 'networks': [{'uuid': '1ab34e0b-670d-4837-aee7-b2917261faf9'}], 'user_data': 'IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRp...8IHRlZSAvdG1wL291dHB1dC50eHQKICAgICAgICAgICAgICAg'}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABolNbgxtHZKXvMQBCDppIF926QHpfsL2JOvRamUkJy...XWEXOTzupFv4wrWsQIpLNgllsFfFbHF3IO59UsqN2yP-K62uI'}})
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 1ab34e0b-670d-4837-aee7-b2917261faf9 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 1ab34e0b-670d-4837-aee7-b2917261faf9 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-896f1bb5-5b00-47ef-aefe-f35506635e03)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network 1ab34e0b-670d-4837-aee7-b2917261faf9 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-896f1bb5-5b00-47ef-aefe-f35506635e03', '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 1ab34e0b-670d-4837-aee7-b2917261faf9 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-896f1bb5-5b00-47ef-aefe-f35506635e03'
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 1ab34e0b-670d-4837-aee7-b2917261faf9 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-896f1bb5-5b00-47ef-aefe-f35506635e03)

1.916 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
Thu Aug 7 16:40: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.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7f9f13d59b38>, *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=0x7f9f13d59b38>
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=0x7f9f13d59b38>)
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.888 Log File
Properties »

Back to top