Test Results

Designed for use with JUnit and Ant.

Properties


Summary

TestsFailuresErrorsSkippedSuccess rateTime
27180325.00%326.047
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)
270183326.047

Package

NameTestsErrorsFailuresSkippedTime(s)
20015099.548
7033226.499
Back to top


TestCase

NameStatusTypeTime(s)LogFile
test_contrail_status[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]Success0.513
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.9.21: /usr/bin/python3
Wed Aug 27 14:15:26 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=0x7fb4d4d946a0>, *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=0x7fb4d4d946a0>
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=0x7fb4d4d946a0>)
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': 'c50ee066-f396-42c5...2/project/87a9a5f3-fd9b-47a4-b79f-f2b6a6d08e6f'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

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

1.973 Log File
test_db_manage[cb_sanity,ci_sanity,dev_sanity_dpdk,sanity]Success4.212
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.9.21: /usr/bin/python3
Wed Aug 27 14:15:36 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=0x7fb4d4bc6a00>, *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=0x7fb4d4bc6a00>
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=0x7fb4d4bc6a00>)
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': '62949c32-c06b-41f3...2/project/517f48a1-5823-4524-b687-40674867527c'}}
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'

1.659 Log File
test_heat_stacks_list[cb_sanity,ci_contrail_go_kolla_ocata_sanity,ci_sanity]Success0.389
test_router_crud[ci_sanity,dev_sanity_dpdk,sanity]Success5.533
test_ports_bindings[ci_sanity,dev_sanity_dpdk,sanity]Success1.776
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.9.21: /usr/bin/python3
Wed Aug 27 14:15: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.neutron.test_ports.TestPorts.test_ports...sanity,dev_sanity_dpdk,sanity] id=0x7fb4d4655d90>, *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=0x7fb4d4655d90>
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=0x7fb4d4655d90>)
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.038 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:04 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=0x7fb4d45f3c10>, *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=0x7fb4d45f3c10>
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=0x7fb4d45f3c10>)
49 vn1_fixture = self.create_vn(vn1_name, vn1_subnets)
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,
vn1_vm1_fixture undefined
self = <scripts.neutron.test_routers.TestRouters.test_b...sanity,dev_sanity_dpdk,sanity] id=0x7fb4d45f3c10>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...anity,dev_sanity_dpdk,sanity] id=0x7fb4d45f3c10>>
vn1_fixture = <vn_test.VNFixture object>
vn1_vm1_name = 'ctest-vn1-vm1-09453395'
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=0x7fb4d45f3c10>, vn_fixture=<vn_test.VNFixture object>, vm_name='ctest-vn1-vm1-09453395', image_name='cirros', port_ids=None, **kwargs={})
275 assert port_obj.verify_on_setup()
276 port_ids = [port_obj.uuid]
277 vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
278 vm_name=vm_name,
279 image_name=image_name,
vm_fixture undefined
self = <scripts.neutron.test_routers.TestRouters.test_b...sanity,dev_sanity_dpdk,sanity] id=0x7fb4d45f3c10>
self.create_only_vm = <bound method GenericTestBase.create_only_vm of <class 'scripts.neutron.test_routers.TestRouters'>>
vn_fixture = <vn_test.VNFixture object>
vm_name = 'ctest-vn1-vm1-09453395'
image_name = 'cirros'
port_ids = None
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-09453395', 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-09453395>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-vn1-vm1-09453395>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-vn1-vm1-09453395>)
231 self.port_ids = port_ids
232
233 objs = self.orch.create_vm(
234 project_uuid=self.project_id,
235 image_name=self.image_name,
objs undefined
self = <VMFixture: ctest-vn1-vm1-09453395>
self.orch = <openstack.OpenstackOrchestrator object>
self.orch.create_vm = <bound method OpenstackOrchestrator.create_vm of <openstack.OpenstackOrchestrator object>>
project_uuid undefined
self.project_id = '353c5a6d-9af7-46ed-9511-cf400bb98678'
image_name undefined
self.image_name = 'cirros'
flavor undefined
self.flavor = 'contrail_flavor_tiny'
vm_name undefined
self.vm_name = 'ctest-vn1-vm1-09453395'
vn_objs undefined
self.vn_objs = [{'network': {'id': '5bab874a-5e27-4617-9762-f487...port_security_enabled': True, 'description': ''}}]
node_name undefined
self.node_name = None
zone undefined
self.zone = None
sg_ids undefined
self.sg_ids = []
count undefined
self.count = 1
userdata undefined
self.userdata = None
port_ids undefined
self.port_ids = None
fixed_ips undefined
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-vn1-vm1-09453395', image_name='cirros', vn_objs=[{'network': {'id': '5bab874a-5e27-4617-9762-f487...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '353c5a6d-9af7-46ed-9511-cf400bb98678', '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-09453395'
image_name = 'cirros'
vn_ids = ['5bab874a-5e27-4617-9762-f4878490d854']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '353c5a6d-9af7-46ed-9511-cf400bb98678', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='353c5a6d-9af7-46ed-9511-cf400bb98678', image_name='cirros', vm_name='ctest-vn1-vm1-09453395', vn_ids=['5bab874a-5e27-4617-9762-f4878490d854'], node_name='cn-jenkins-deploy-platform-ansible-os-3949-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-3949-1')
604
605 zone = zone + ":" + node_name if node_name else zone
606 self.obj.servers.create(name=vm_name, image=image,
607 security_groups=sg_ids,
608 flavor=flavor, nics=nics_list,
self = <nova_test.NovaHelper object>
self.obj = <novaclient.v2.client.Client object>
self.obj.servers = <novaclient.v2.servers.ServerManager object>
self.obj.servers.create = <bound method ServerManager.create of <novaclient.v2.servers.ServerManager object>>
name undefined
vm_name = 'ctest-vn1-vm1-09453395'
image = <RequestIdProxy at 0x7fb4d6b1d880 for image>
security_groups undefined
sg_ids = []
flavor = <Flavor: contrail_flavor_tiny>
nics undefined
nics_list = [{'net-id': '5bab874a-5e27-4617-9762-f4878490d854'}]
config_drive = False
key_name undefined
self.key = 'ctest_ctest-TestRouters-20843486ctest-TestRouters-20843486key1'
availability_zone undefined
zone = 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1'
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-vn1-vm1-09453395', image=<RequestIdProxy at 0x7fb4d6b1d880 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-20843486ctest-TestRouters-20843486key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '5bab874a-5e27-4617-9762-f4878490d854'}], 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-09453395', <RequestIdProxy at 0x7fb4d6b1d880 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-3949-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRouters-20843486ctest-TestRouters-20843486key1', ...}

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-vn1-vm1-09453395', image=<RequestIdProxy at 0x7fb4d6b1d880 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-20843486ctest-TestRouters-20843486key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '5bab874a-5e27-4617-9762-f4878490d854'}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
843 body['server']['hypervisor_hostname'] = hypervisor_hostname
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
self = <novaclient.v2.servers.ServerManager object>
self._create = <bound method Manager._create of <novaclient.v2.servers.ServerManager object>>
body = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRouters-20843486ctest-TestRouters-20843486key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-09453395', 'networks': [{'uuid': '5bab874a-5e27-4617-9762-f4878490d854'}]}}
response_key = 'server'
return_raw = False
kwargs = {}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRouters-20843486ctest-TestRouters-20843486key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-09453395', 'networks': [{'uuid': '5bab874a-5e27-4617-9762-f4878490d854'}]}}, 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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRouters-20843486ctest-TestRouters-20843486key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-09453395', 'networks': [{'uuid': '5bab874a-5e27-4617-9762-f4878490d854'}]}}
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.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRouters-20843486ctest-TestRouters-20843486key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-09453395', 'networks': [{'uuid': '5bab874a-5e27-4617-9762-f4878490d854'}]}}})
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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRouters-20843486ctest-TestRouters-20843486key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-09453395', 'networks': [{'uuid': '5bab874a-5e27-4617-9762-f4878490d854'}]}}}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRouters-20843486ctest-TestRouters-20843486key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-09453395', 'networks': [{'uuid': '5bab874a-5e27-4617-9762-f4878490d854'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorxMcAikPjWs1n3X-ZOHyoVPC_geJAFelsoGe2VB_...tjHUjbQ0KlWs6YfuEnSWwGCXb9BytfPGqqFEIBA0DU81cWdxE'}})
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.9/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network 5bab874a-5e27-4617-9762-f4878490d854 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 5bab874a-5e27-4617-9762-f4878490d854 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-2bc060c4-d825-41ed-a275-b79ab2e7d52d)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network 5bab874a-5e27-4617-9762-f4878490d854 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-2bc060c4-d825-41ed-a275-b79ab2e7d52d', '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 5bab874a-5e27-4617-9762-f4878490d854 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-2bc060c4-d825-41ed-a275-b79ab2e7d52d'
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 51, in test_basic_router_behavior
vn1_vm1_fixture = self.create_vm(vn1_fixture, vn1_vm1_name,
File "/contrail-test/common/base.py", line 277, in create_vm
vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
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 233, in create
objs = self.orch.create_vm(
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 606, in create_vm
self.obj.servers.create(name=vm_name, image=image,
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 845, in _boot
return self._create('/servers', body, response_key,
File "/usr/local/lib/python3.9/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network 5bab874a-5e27-4617-9762-f4878490d854 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-2bc060c4-d825-41ed-a275-b79ab2e7d52d)

8.424 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:10 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=0x7fb4d45fb250>, *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=0x7fb4d45fb250>
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=0x7fb4d45fb250>)
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=0x7fb4d45fb250>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...ev_sanity_dpdk,sanity,suite1] id=0x7fb4d45fb250>>
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=0x7fb4d45fb250>, vn_fixture=<vn_test.VNFixture object>, vm_name=None, image_name='cirros', port_ids=None, **kwargs={})
275 assert port_obj.verify_on_setup()
276 port_ids = [port_obj.uuid]
277 vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
278 vm_name=vm_name,
279 image_name=image_name,
vm_fixture undefined
self = <scripts.neutron.test_routers_basic.TestRoutersB...dev_sanity_dpdk,sanity,suite1] id=0x7fb4d45fb250>
self.create_only_vm = <bound method GenericTestBase.create_only_vm of ...ts.neutron.test_routers_basic.TestRoutersBasic'>>
vn_fixture = <vn_test.VNFixture object>
vm_name = None
image_name = 'cirros'
port_ids = None
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-41038661-96016000>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestRoutersBasic-41038661-96016000>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestRoutersBasic-41038661-96016000>)
231 self.port_ids = port_ids
232
233 objs = self.orch.create_vm(
234 project_uuid=self.project_id,
235 image_name=self.image_name,
objs undefined
self = <VMFixture: ctest-TestRoutersBasic-41038661-96016000>
self.orch = <openstack.OpenstackOrchestrator object>
self.orch.create_vm = <bound method OpenstackOrchestrator.create_vm of <openstack.OpenstackOrchestrator object>>
project_uuid undefined
self.project_id = '52c49595-c9ff-4214-abb5-bf59bbe5870e'
image_name undefined
self.image_name = 'cirros'
flavor undefined
self.flavor = 'contrail_flavor_tiny'
vm_name undefined
self.vm_name = 'ctest-TestRoutersBasic-41038661-96016000'
vn_objs undefined
self.vn_objs = [{'network': {'id': 'aa3828c4-24f3-4454-b833-62a7...port_security_enabled': True, 'description': ''}}]
node_name undefined
self.node_name = None
zone undefined
self.zone = None
sg_ids undefined
self.sg_ids = []
count undefined
self.count = 1
userdata undefined
self.userdata = None
port_ids undefined
self.port_ids = None
fixed_ips undefined
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestRoutersBasic-41038661-96016000', image_name='cirros', vn_objs=[{'network': {'id': 'aa3828c4-24f3-4454-b833-62a7...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '52c49595-c9ff-4214-abb5-bf59bbe5870e', '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-41038661-96016000'
image_name = 'cirros'
vn_ids = ['aa3828c4-24f3-4454-b833-62a70e6b8438']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '52c49595-c9ff-4214-abb5-bf59bbe5870e', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='52c49595-c9ff-4214-abb5-bf59bbe5870e', image_name='cirros', vm_name='ctest-TestRoutersBasic-41038661-96016000', vn_ids=['aa3828c4-24f3-4454-b833-62a70e6b8438'], node_name='cn-jenkins-deploy-platform-ansible-os-3949-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-3949-1')
604
605 zone = zone + ":" + node_name if node_name else zone
606 self.obj.servers.create(name=vm_name, image=image,
607 security_groups=sg_ids,
608 flavor=flavor, nics=nics_list,
self = <nova_test.NovaHelper object>
self.obj = <novaclient.v2.client.Client object>
self.obj.servers = <novaclient.v2.servers.ServerManager object>
self.obj.servers.create = <bound method ServerManager.create of <novaclient.v2.servers.ServerManager object>>
name undefined
vm_name = 'ctest-TestRoutersBasic-41038661-96016000'
image = <RequestIdProxy at 0x7fb4d2dc9a00 for image>
security_groups undefined
sg_ids = []
flavor = <Flavor: contrail_flavor_tiny>
nics undefined
nics_list = [{'net-id': 'aa3828c4-24f3-4454-b833-62a70e6b8438'}]
config_drive = False
key_name undefined
self.key = 'ctest_ctest-TestRoutersBasic-41038661ctest-TestRoutersBasic-41038661key1'
availability_zone undefined
zone = 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1'
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-TestRoutersBasic-41038661-96016000', image=<RequestIdProxy at 0x7fb4d2dc9a00 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-41038661ctest-TestRoutersBasic-41038661key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'aa3828c4-24f3-4454-b833-62a70e6b8438'}], 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-41038661-96016000', <RequestIdProxy at 0x7fb4d2dc9a00 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-3949-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRoutersBasic-41038661ctest-TestRoutersBasic-41038661key1', ...}

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-TestRoutersBasic-41038661-96016000', image=<RequestIdProxy at 0x7fb4d2dc9a00 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-41038661ctest-TestRoutersBasic-41038661key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'aa3828c4-24f3-4454-b833-62a70e6b8438'}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
843 body['server']['hypervisor_hostname'] = hypervisor_hostname
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
self = <novaclient.v2.servers.ServerManager object>
self._create = <bound method Manager._create of <novaclient.v2.servers.ServerManager object>>
body = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRoutersBasic-41038661ctest-TestRoutersBasic-41038661key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-41038661-96016000', 'networks': [{'uuid': 'aa3828c4-24f3-4454-b833-62a70e6b8438'}]}}
response_key = 'server'
return_raw = False
kwargs = {}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRoutersBasic-41038661ctest-TestRoutersBasic-41038661key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-41038661-96016000', 'networks': [{'uuid': 'aa3828c4-24f3-4454-b833-62a70e6b8438'}]}}, 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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRoutersBasic-41038661ctest-TestRoutersBasic-41038661key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-41038661-96016000', 'networks': [{'uuid': 'aa3828c4-24f3-4454-b833-62a70e6b8438'}]}}
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.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRoutersBasic-41038661ctest-TestRoutersBasic-41038661key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-41038661-96016000', 'networks': [{'uuid': 'aa3828c4-24f3-4454-b833-62a70e6b8438'}]}}})
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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRoutersBasic-41038661ctest-TestRoutersBasic-41038661key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-41038661-96016000', 'networks': [{'uuid': 'aa3828c4-24f3-4454-b833-62a70e6b8438'}]}}}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRoutersBasic-41038661ctest-TestRoutersBasic-41038661key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestRoutersBasic-41038661-96016000', 'networks': [{'uuid': 'aa3828c4-24f3-4454-b833-62a70e6b8438'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorxMn_4UsckDHC_ahAFmNGxc2p5sngIoQ2zXkMTp8...sp-sMXAIrjWIkppD8VbDU9Edzji5M6nivwzigJrgoF7vxTFvI'}})
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.9/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network aa3828c4-24f3-4454-b833-62a70e6b8438 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network aa3828c4-24f3-4454-b833-62a70e6b8438 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-b98b6aba-1d87-43e3-8650-035e62961b18)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network aa3828c4-24f3-4454-b833-62a70e6b8438 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-b98b6aba-1d87-43e3-8650-035e62961b18', '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 aa3828c4-24f3-4454-b833-62a70e6b8438 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-b98b6aba-1d87-43e3-8650-035e62961b18'
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 277, in create_vm
vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
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 233, in create
objs = self.orch.create_vm(
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 606, in create_vm
self.obj.servers.create(name=vm_name, image=image,
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 845, in _boot
return self._create('/servers', body, response_key,
File "/usr/local/lib/python3.9/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network aa3828c4-24f3-4454-b833-62a70e6b8438 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-b98b6aba-1d87-43e3-8650-035e62961b18)

2.757 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:16 2025

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

/contrail-test/tcutils/wrappers.py in wrapper(self=<scripts.policy.test_policy.TestBasicPolicyIpv4v...ty,quick_sanity,sanity,suite1] id=0x7fb4d4599130>, *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=0x7fb4d4599130>
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=0x7fb4d4599130>)
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': '2ab290ed-26df-44e2...2/project/b0ced9a9-0a21-4774-ad65-2b761f4af8a1'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

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

3.339 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:22 2025

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

/contrail-test/tcutils/wrappers.py in wrapper(self=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7fb4d4599c10>, *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=0x7fb4d4599c10>
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=0x7fb4d4599c10>)
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=0x7fb4d4599c10>
).test_remove_policy_with_ref = <bound method TestBasicPolicyNegativeIpv4v6.test...cy_with_ref[ci_sanity,sanity] id=0x7fb4d4599c10>>

/contrail-test/tcutils/wrappers.py in wrapper(self=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7fb4d4599c10>, *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.9.21: /usr/bin/py...ork_ipam_refs']:\nKeyError: 'network_ipam_refs'\n\n\n"]
TestFailed: Test failed: KeyError
Python 3.9.21: /usr/bin/python3
Wed Aug 27 14:16:21 2025

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

/contrail-test/tcutils/wrappers.py in wrapper(self=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7fb4d4599c10>, *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=0x7fb4d4599c10>
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=0x7fb4d4599c10>)
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': '05a9a2a7-bf73-4a64...2/project/0bdc11c1-2cde-4d40-905b-8869aef61e0d'}}
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.9.21: /usr/bin/py...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.9.21: /usr/bin/python3
Wed Aug 27 14:16:21 2025

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

/contrail-test/tcutils/wrappers.py in wrapper(self=<scripts.policy.test_policy.TestBasicPolicyNegat...icy_with_ref[ci_sanity,sanity] id=0x7fb4d4599c10>, *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=0x7fb4d4599c10>
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=0x7fb4d4599c10>)
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': '05a9a2a7-bf73-4a64...2/project/0bdc11c1-2cde-4d40-905b-8869aef61e0d'}}
KeyError: 'network_ipam_refs'
__cause__ = None
__class__ = <class 'KeyError'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of KeyError object>
__dict__ = {}
__dir__ = <built-in method __dir__ of KeyError object>
__doc__ = 'Mapping key not found.'
__eq__ = <method-wrapper '__eq__' of KeyError object>
__format__ = <built-in method __format__ of KeyError object>
__ge__ = <method-wrapper '__ge__' of KeyError object>
__getattribute__ = <method-wrapper '__getattribute__' of KeyError object>
__gt__ = <method-wrapper '__gt__' of KeyError object>
__hash__ = <method-wrapper '__hash__' of KeyError object>
__init__ = <method-wrapper '__init__' of KeyError object>
__init_subclass__ = <built-in method __init_subclass__ of type object>
__le__ = <method-wrapper '__le__' of KeyError object>
__lt__ = <method-wrapper '__lt__' of KeyError object>
__ne__ = <method-wrapper '__ne__' of KeyError object>
__new__ = <built-in method __new__ of type object>
__reduce__ = <built-in method __reduce__ of KeyError object>
__reduce_ex__ = <built-in method __reduce_ex__ of KeyError object>
__repr__ = <method-wrapper '__repr__' of KeyError object>
__setattr__ = <method-wrapper '__setattr__' of KeyError object>
__setstate__ = <built-in method __setstate__ of KeyError object>
__sizeof__ = <built-in method __sizeof__ of KeyError object>
__str__ = <method-wrapper '__str__' of KeyError object>
__subclasshook__ = <built-in method __subclasshook__ of type object>
__suppress_context__ = False
__traceback__ = <traceback object>
args = ('network_ipam_refs',)
with_traceback = <built-in method with_traceback of KeyError object>

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

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

2.644 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:28 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=0x7fb4d4592d60>, *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=0x7fb4d4592d60>
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=0x7fb4d4592d60>)
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': 'e5bc6742-5980-4305...2/project/0c65bd56-f689-4f6b-921b-6cc94b08e6d9'}}
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.030 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:34 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=0x7fb4d4385520>, *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=0x7fb4d4385520>
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=0x7fb4d4385520>)
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=0x7fb4d4385520>
self.config_basic = <bound method RPBase.config_basic of <scripts.ro...p_interface[ci_sanity,sanity] id=0x7fb4d4385520>>

/contrail-test/scripts/routing_policy/base.py in config_basic(self=<scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7fb4d4385520>)
40 vn2_fixture = self.create_vn(vn2_name, vn2_subnets)
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')
test_vm undefined
self = <scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7fb4d4385520>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...p_interface[ci_sanity,sanity] id=0x7fb4d4385520>>
vn_fixture = <vn_test.VNFixture object>
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=0x7fb4d4385520>, vn_fixture=<vn_test.VNFixture object>, vm_name='test_vm', image_name='cirros', port_ids=None, **kwargs={})
275 assert port_obj.verify_on_setup()
276 port_ids = [port_obj.uuid]
277 vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
278 vm_name=vm_name,
279 image_name=image_name,
vm_fixture undefined
self = <scripts.routing_policy.test_routing_policy.Test...rp_interface[ci_sanity,sanity] id=0x7fb4d4385520>
self.create_only_vm = <bound method GenericTestBase.create_only_vm of ...ipts.routing_policy.test_routing_policy.TestRP'>>
vn_fixture = <vn_test.VNFixture object>
vm_name = 'test_vm'
image_name = 'cirros'
port_ids = None
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>)
231 self.port_ids = port_ids
232
233 objs = self.orch.create_vm(
234 project_uuid=self.project_id,
235 image_name=self.image_name,
objs undefined
self = <VMFixture: test_vm>
self.orch = <openstack.OpenstackOrchestrator object>
self.orch.create_vm = <bound method OpenstackOrchestrator.create_vm of <openstack.OpenstackOrchestrator object>>
project_uuid undefined
self.project_id = '76378fa7-f63c-4b3d-a7b5-03d063d68f4f'
image_name undefined
self.image_name = 'cirros'
flavor undefined
self.flavor = 'contrail_flavor_tiny'
vm_name undefined
self.vm_name = 'test_vm'
vn_objs undefined
self.vn_objs = [{'network': {'id': '88d9dc7e-1c61-44ad-9eef-01c2...port_security_enabled': True, 'description': ''}}]
node_name undefined
self.node_name = None
zone undefined
self.zone = None
sg_ids undefined
self.sg_ids = []
count undefined
self.count = 1
userdata undefined
self.userdata = None
port_ids undefined
self.port_ids = None
fixed_ips undefined
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': '88d9dc7e-1c61-44ad-9eef-01c2...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '76378fa7-f63c-4b3d-a7b5-03d063d68f4f', '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 = ['88d9dc7e-1c61-44ad-9eef-01c293e8e1ab']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '76378fa7-f63c-4b3d-a7b5-03d063d68f4f', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='76378fa7-f63c-4b3d-a7b5-03d063d68f4f', image_name='cirros', vm_name='test_vm', vn_ids=['88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'], node_name='cn-jenkins-deploy-platform-ansible-os-3949-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-3949-1')
604
605 zone = zone + ":" + node_name if node_name else zone
606 self.obj.servers.create(name=vm_name, image=image,
607 security_groups=sg_ids,
608 flavor=flavor, nics=nics_list,
self = <nova_test.NovaHelper object>
self.obj = <novaclient.v2.client.Client object>
self.obj.servers = <novaclient.v2.servers.ServerManager object>
self.obj.servers.create = <bound method ServerManager.create of <novaclient.v2.servers.ServerManager object>>
name undefined
vm_name = 'test_vm'
image = <RequestIdProxy at 0x7fb4d2a4b1c0 for image>
security_groups undefined
sg_ids = []
flavor = <Flavor: contrail_flavor_tiny>
nics undefined
nics_list = [{'net-id': '88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'}]
config_drive = False
key_name undefined
self.key = 'ctest_ctest-TestRP-78345186ctest-TestRP-78345186key1'
availability_zone undefined
zone = 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1'
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='test_vm', image=<RequestIdProxy at 0x7fb4d2a4b1c0 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-78345186ctest-TestRP-78345186key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'}], 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 0x7fb4d2a4b1c0 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-3949-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRP-78345186ctest-TestRP-78345186key1', ...}

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='test_vm', image=<RequestIdProxy at 0x7fb4d2a4b1c0 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-78345186ctest-TestRP-78345186key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
843 body['server']['hypervisor_hostname'] = hypervisor_hostname
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
self = <novaclient.v2.servers.ServerManager object>
self._create = <bound method Manager._create of <novaclient.v2.servers.ServerManager object>>
body = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRP-78345186ctest-TestRP-78345186key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'}]}}
response_key = 'server'
return_raw = False
kwargs = {}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRP-78345186ctest-TestRP-78345186key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'}]}}, 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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRP-78345186ctest-TestRP-78345186key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'}]}}
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.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRP-78345186ctest-TestRP-78345186key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'}]}}})
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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRP-78345186ctest-TestRP-78345186key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'}]}}}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestRP-78345186ctest-TestRP-78345186key1', 'max_count': 1, 'min_count': 1, 'name': 'test_vm', 'networks': [{'uuid': '88d9dc7e-1c61-44ad-9eef-01c293e8e1ab'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorxNAZPS6VVuqY82hrnzemptF5hNnNL7c_OYK2bqe...DCLSeQOqwTFe4QvQ8BPkG1dik4Ct83qK9lLLwNaNM6KeXDuxg'}})
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.9/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network 88d9dc7e-1c61-44ad-9eef-01c293e8e1ab requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 88d9dc7e-1c61-44ad-9eef-01c293e8e1ab requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-ad6f6f50-ffae-4db3-a85b-10b5f34e9972)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network 88d9dc7e-1c61-44ad-9eef-01c293e8e1ab requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-ad6f6f50-ffae-4db3-a85b-10b5f34e9972', '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 88d9dc7e-1c61-44ad-9eef-01c293e8e1ab requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-ad6f6f50-ffae-4db3-a85b-10b5f34e9972'
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 42, in config_basic
test_vm = self.create_vm(vn_fixture, 'test_vm',
File "/contrail-test/common/base.py", line 277, in create_vm
vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
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 233, in create
objs = self.orch.create_vm(
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 606, in create_vm
self.obj.servers.create(name=vm_name, image=image,
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 845, in _boot
return self._create('/servers', body, response_key,
File "/usr/local/lib/python3.9/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network 88d9dc7e-1c61-44ad-9eef-01c293e8e1ab requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-ad6f6f50-ffae-4db3-a85b-10b5f34e9972)

2.258 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:39 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=0x7fb4d436f910>, *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=0x7fb4d436f910>
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=0x7fb4d436f910>)
23 @preposttest_wrapper
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
self = <scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7fb4d436f910>
self.verify_svc_chain = <bound method VerifySvcChain.verify_svc_chain of...n_network_datapath[ci_sanity] id=0x7fb4d436f910>>
svc_img_name undefined
service_mode undefined
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=0x7fb4d436f910>, *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=0x7fb4d436f910>
self.config_svc_chain = <bound method ConfigSvcChain.config_svc_chain of...n_network_datapath[ci_sanity] id=0x7fb4d436f910>>
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=0x7fb4d436f910>, 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={})
440 mgmt_vn_subnets,
441 mgmt_vn_fixture,
442 mgmt_vn_fq_name) = self._get_vn_for_config(mgmt_vn_name,
443 mgmt_vn_subnets,
444 mgmt_vn_fixture,
mgmt_vn_fq_name undefined
self = <scripts.svc_firewall.test_svc_fw.TestSvcRegr.te...in_network_datapath[ci_sanity] id=0x7fb4d436f910>
self._get_vn_for_config = <bound method ConfigSvcChain._get_vn_for_config ...n_network_datapath[ci_sanity] id=0x7fb4d436f910>>
mgmt_vn_name = None

/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=0x7fb4d436f910>, vn_name='ctest-mgmt_vn-06711312', vn_subnets=['106.12.108.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=0x7fb4d436f910>
self.config_vn = <bound method ConfigSvcChain.config_vn of <scrip...n_network_datapath[ci_sanity] id=0x7fb4d436f910>>
vn_name = 'ctest-mgmt_vn-06711312'
vn_subnets = ['106.12.108.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=0x7fb4d436f910>, vn_name='ctest-mgmt_vn-06711312', vn_net=['106.12.108.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': '8857dd63-b2ac-4e94...2/project/9656c20d-04f0-40d9-b9ae-3cdb95830e35'}}
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 25, in test_svc_in_network_datapath
return self.verify_svc_chain(svc_img_name='cirros_in_net', service_mode='in-network',
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 442, in config_svc_chain
mgmt_vn_fq_name) = self._get_vn_for_config(mgmt_vn_name,
File "/contrail-test/common/servicechain/config.py", line 357, in _get_vn_for_config
vn_fixture = vn_fixture or self.config_vn(vn_name, vn_subnets, **kwargs)
File "/contrail-test/common/servicechain/config.py", line 139, in config_vn
assert vn_fixture.verify_on_setup()
File "/contrail-test/fixtures/vn_test.py", line 576, in verify_on_setup
if not self.verify_vn_in_api_server():
File "/contrail-test/tcutils/util.py", line 84, in f_retry
result = f(*args, **kwargs) # first attempt
File "/contrail-test/fixtures/vn_test.py", line 640, in verify_vn_in_api_server
for ipam in self.api_s_vn_obj['virtual-network']['network_ipam_refs']:
KeyError: 'network_ipam_refs'

1.583 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:44 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=0x7fb4d4330400>, *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=0x7fb4d4330400>
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=0x7fb4d4330400>)
92 vn_quantum_obj = self.orch.get_vn_obj_if_present(
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'
vm_fixture = {}
vm_name = 'ctest-vm1-test-39417379'
self = <scripts.vdns.test_vdns_basic.TestvDNSBasic0.tes...me_vn[ci_sanity,sanity,suite1] id=0x7fb4d4330400>
self.useFixture = <bound method TestCase.useFixture of <scripts.vd...e_vn[ci_sanity,sanity,suite1] id=0x7fb4d4330400>>
global VMFixture = <class 'vm_test.VMFixture'>
project_name undefined
self.inputs = <common.contrail_test_init.ContrailTestInit object>
self.inputs.project_name = 'ctest-TestvDNSBasic0-93321812'
connections undefined
self.connections = <common.connections.ContrailConnections object>
vn_obj undefined
vn_quantum_obj = {'network': {'id': 'a5ae1f8a-40c5-44fc-878f-7db5...port_security_enabled': True, 'description': ''}}
image_name undefined

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

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-vm1-test-39417379>)
231 self.port_ids = port_ids
232
233 objs = self.orch.create_vm(
234 project_uuid=self.project_id,
235 image_name=self.image_name,
objs undefined
self = <VMFixture: ctest-vm1-test-39417379>
self.orch = <openstack.OpenstackOrchestrator object>
self.orch.create_vm = <bound method OpenstackOrchestrator.create_vm of <openstack.OpenstackOrchestrator object>>
project_uuid undefined
self.project_id = 'a6d48f99-0447-42d4-85d1-dbe40f088188'
image_name undefined
self.image_name = 'cirros'
flavor undefined
self.flavor = 'contrail_flavor_tiny'
vm_name undefined
self.vm_name = 'ctest-vm1-test-39417379'
vn_objs undefined
self.vn_objs = [{'network': {'id': 'a5ae1f8a-40c5-44fc-878f-7db5...port_security_enabled': True, 'description': ''}}]
node_name undefined
self.node_name = None
zone undefined
self.zone = None
sg_ids undefined
self.sg_ids = []
count undefined
self.count = 1
userdata undefined
self.userdata = None
port_ids undefined
self.port_ids = []
fixed_ips undefined
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-vm1-test-39417379', image_name='cirros', vn_objs=[{'network': {'id': 'a5ae1f8a-40c5-44fc-878f-7db5...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': [], 'project_uuid': 'a6d48f99-0447-42d4-85d1-dbe40f088188', '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-39417379'
image_name = 'cirros'
vn_ids = ['a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': [], 'project_uuid': 'a6d48f99-0447-42d4-85d1-dbe40f088188', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='a6d48f99-0447-42d4-85d1-dbe40f088188', image_name='cirros', vm_name='ctest-vm1-test-39417379', vn_ids=['a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'], node_name='cn-jenkins-deploy-platform-ansible-os-3949-1', sg_ids=[], count=1, userdata=None, flavor=<Flavor: contrail_flavor_tiny>, port_ids=[], fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1')
604
605 zone = zone + ":" + node_name if node_name else zone
606 self.obj.servers.create(name=vm_name, image=image,
607 security_groups=sg_ids,
608 flavor=flavor, nics=nics_list,
self = <nova_test.NovaHelper object>
self.obj = <novaclient.v2.client.Client object>
self.obj.servers = <novaclient.v2.servers.ServerManager object>
self.obj.servers.create = <bound method ServerManager.create of <novaclient.v2.servers.ServerManager object>>
name undefined
vm_name = 'ctest-vm1-test-39417379'
image = <RequestIdProxy at 0x7fb4d25e3500 for image>
security_groups undefined
sg_ids = []
flavor = <Flavor: contrail_flavor_tiny>
nics undefined
nics_list = [{'net-id': 'a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'}]
config_drive = False
key_name undefined
self.key = 'ctest_ctest-TestvDNSBasic0-93321812ctest-TestvDNSBasic0-93321812key1'
availability_zone undefined
zone = 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1'
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-vm1-test-39417379', image=<RequestIdProxy at 0x7fb4d25e3500 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-93321812ctest-TestvDNSBasic0-93321812key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'}], 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-39417379', <RequestIdProxy at 0x7fb4d25e3500 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-3949-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestvDNSBasic0-93321812ctest-TestvDNSBasic0-93321812key1', ...}

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-vm1-test-39417379', image=<RequestIdProxy at 0x7fb4d25e3500 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-93321812ctest-TestvDNSBasic0-93321812key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
843 body['server']['hypervisor_hostname'] = hypervisor_hostname
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
self = <novaclient.v2.servers.ServerManager object>
self._create = <bound method Manager._create of <novaclient.v2.servers.ServerManager object>>
body = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestvDNSBasic0-93321812ctest-TestvDNSBasic0-93321812key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-39417379', 'networks': [{'uuid': 'a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'}]}}
response_key = 'server'
return_raw = False
kwargs = {}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestvDNSBasic0-93321812ctest-TestvDNSBasic0-93321812key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-39417379', 'networks': [{'uuid': 'a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'}]}}, 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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestvDNSBasic0-93321812ctest-TestvDNSBasic0-93321812key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-39417379', 'networks': [{'uuid': 'a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'}]}}
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.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestvDNSBasic0-93321812ctest-TestvDNSBasic0-93321812key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-39417379', 'networks': [{'uuid': 'a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'}]}}})
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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestvDNSBasic0-93321812ctest-TestvDNSBasic0-93321812key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-39417379', 'networks': [{'uuid': 'a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'}]}}}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestvDNSBasic0-93321812ctest-TestvDNSBasic0-93321812key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vm1-test-39417379', 'networks': [{'uuid': 'a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorxNJKC9rTSol_U9U_bkIhFtaYKrZZwNXBg8Yjmst...yFF3tMFMrKL-Ob_ldPqW0pm2wtoVxRabLx1LTQzA0NOmx4sRk'}})
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.9/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-3c36eed1-c53e-4ae7-8213-397153942dab)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-3c36eed1-c53e-4ae7-8213-397153942dab', '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 a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-3c36eed1-c53e-4ae7-8213-397153942dab'
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 94, in test_vdns_ping_same_vn
vm_fixture[vm_name] = self.useFixture(
File "/usr/local/lib/python3.9/site-packages/testtools/testcase.py", line 756, in useFixture
reraise(*exc_info)
File "/usr/local/lib/python3.9/site-packages/testtools/_compat3x.py", line 16, in reraise
raise exc_obj.with_traceback(exc_tb)
File "/usr/local/lib/python3.9/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 233, in create
objs = self.orch.create_vm(
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 606, in create_vm
self.obj.servers.create(name=vm_name, image=image,
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 845, in _boot
return self._create('/servers', body, response_key,
File "/usr/local/lib/python3.9/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network a5ae1f8a-40c5-44fc-878f-7db51b2ae1d0 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-3c36eed1-c53e-4ae7-8213-397153942dab)

2.784 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.9.21: /usr/bin/python3
Wed Aug 27 14:16: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.vm_regression.test_vm.TestBasicVMVNx.te...anity,quick_sanity,vrouter_gw] id=0x7fb4d4293520>, *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=0x7fb4d4293520>
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=0x7fb4d4293520>)
2860 create_result = True
2861 vn_fixture = self.create_vn(orch=self.orchestrator)
2862 vm1_fixture = self.create_vm(vn_fixture=vn_fixture,
2863 image_name='ubuntu-sshpass',
2864 orch=self.orchestrator)
vm1_fixture undefined
self = <scripts.vm_regression.test_vm.TestBasicVMVNx.te...anity,quick_sanity,vrouter_gw] id=0x7fb4d4293520>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...nity,quick_sanity,vrouter_gw] id=0x7fb4d4293520>>
vn_fixture = <vn_test.VNFixture object>
image_name undefined
orch undefined
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=0x7fb4d4293520>, vn_fixture=<vn_test.VNFixture object>, vm_name=None, image_name='ubuntu-sshpass', port_ids=None, **kwargs={'orch': <openstack.OpenstackOrchestrator object>})
275 assert port_obj.verify_on_setup()
276 port_ids = [port_obj.uuid]
277 vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
278 vm_name=vm_name,
279 image_name=image_name,
vm_fixture undefined
self = <scripts.vm_regression.test_vm.TestBasicVMVNx.te...anity,quick_sanity,vrouter_gw] id=0x7fb4d4293520>
self.create_only_vm = <bound method GenericTestBase.create_only_vm of ... 'scripts.vm_regression.test_vm.TestBasicVMVNx'>>
vn_fixture = <vn_test.VNFixture object>
vm_name = None
image_name = 'ubuntu-sshpass'
port_ids = None
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-77123870-65873271>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestBasicVMVNx-77123870-65873271>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestBasicVMVNx-77123870-65873271>)
231 self.port_ids = port_ids
232
233 objs = self.orch.create_vm(
234 project_uuid=self.project_id,
235 image_name=self.image_name,
objs undefined
self = <VMFixture: ctest-TestBasicVMVNx-77123870-65873271>
self.orch = <openstack.OpenstackOrchestrator object>
self.orch.create_vm = <bound method OpenstackOrchestrator.create_vm of <openstack.OpenstackOrchestrator object>>
project_uuid undefined
self.project_id = '5f1fa9d4-08df-4c70-8b80-8fd91be6fbe8'
image_name undefined
self.image_name = 'cirros'
flavor undefined
self.flavor = 'contrail_flavor_tiny'
vm_name undefined
self.vm_name = 'ctest-TestBasicVMVNx-77123870-65873271'
vn_objs undefined
self.vn_objs = [{'network': {'id': '63555569-73cd-4874-99c8-7e0f...port_security_enabled': True, 'description': ''}}]
node_name undefined
self.node_name = None
zone undefined
self.zone = None
sg_ids undefined
self.sg_ids = []
count undefined
self.count = 1
userdata undefined
self.userdata = None
port_ids undefined
self.port_ids = None
fixed_ips undefined
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestBasicVMVNx-77123870-65873271', image_name='cirros', vn_objs=[{'network': {'id': '63555569-73cd-4874-99c8-7e0f...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '5f1fa9d4-08df-4c70-8b80-8fd91be6fbe8', '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-77123870-65873271'
image_name = 'cirros'
vn_ids = ['63555569-73cd-4874-99c8-7e0ff22a9412']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '5f1fa9d4-08df-4c70-8b80-8fd91be6fbe8', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='5f1fa9d4-08df-4c70-8b80-8fd91be6fbe8', image_name='cirros', vm_name='ctest-TestBasicVMVNx-77123870-65873271', vn_ids=['63555569-73cd-4874-99c8-7e0ff22a9412'], node_name='cn-jenkins-deploy-platform-ansible-os-3949-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-3949-1')
604
605 zone = zone + ":" + node_name if node_name else zone
606 self.obj.servers.create(name=vm_name, image=image,
607 security_groups=sg_ids,
608 flavor=flavor, nics=nics_list,
self = <nova_test.NovaHelper object>
self.obj = <novaclient.v2.client.Client object>
self.obj.servers = <novaclient.v2.servers.ServerManager object>
self.obj.servers.create = <bound method ServerManager.create of <novaclient.v2.servers.ServerManager object>>
name undefined
vm_name = 'ctest-TestBasicVMVNx-77123870-65873271'
image = <RequestIdProxy at 0x7fb4d24f6200 for image>
security_groups undefined
sg_ids = []
flavor = <Flavor: contrail_flavor_tiny>
nics undefined
nics_list = [{'net-id': '63555569-73cd-4874-99c8-7e0ff22a9412'}]
config_drive = False
key_name undefined
self.key = 'ctest_ctest-TestBasicVMVNx-77123870ctest-TestBasicVMVNx-77123870key1'
availability_zone undefined
zone = 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1'
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-TestBasicVMVNx-77123870-65873271', image=<RequestIdProxy at 0x7fb4d24f6200 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-77123870ctest-TestBasicVMVNx-77123870key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '63555569-73cd-4874-99c8-7e0ff22a9412'}], 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-77123870-65873271', <RequestIdProxy at 0x7fb4d24f6200 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-3949-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestBasicVMVNx-77123870ctest-TestBasicVMVNx-77123870key1', ...}

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-TestBasicVMVNx-77123870-65873271', image=<RequestIdProxy at 0x7fb4d24f6200 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-77123870ctest-TestBasicVMVNx-77123870key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '63555569-73cd-4874-99c8-7e0ff22a9412'}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
843 body['server']['hypervisor_hostname'] = hypervisor_hostname
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
self = <novaclient.v2.servers.ServerManager object>
self._create = <bound method Manager._create of <novaclient.v2.servers.ServerManager object>>
body = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVNx-77123870ctest-TestBasicVMVNx-77123870key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-77123870-65873271', 'networks': [{'uuid': '63555569-73cd-4874-99c8-7e0ff22a9412'}]}}
response_key = 'server'
return_raw = False
kwargs = {}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVNx-77123870ctest-TestBasicVMVNx-77123870key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-77123870-65873271', 'networks': [{'uuid': '63555569-73cd-4874-99c8-7e0ff22a9412'}]}}, 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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVNx-77123870ctest-TestBasicVMVNx-77123870key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-77123870-65873271', 'networks': [{'uuid': '63555569-73cd-4874-99c8-7e0ff22a9412'}]}}
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.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVNx-77123870ctest-TestBasicVMVNx-77123870key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-77123870-65873271', 'networks': [{'uuid': '63555569-73cd-4874-99c8-7e0ff22a9412'}]}}})
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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVNx-77123870ctest-TestBasicVMVNx-77123870key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-77123870-65873271', 'networks': [{'uuid': '63555569-73cd-4874-99c8-7e0ff22a9412'}]}}}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVNx-77123870ctest-TestBasicVMVNx-77123870key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVNx-77123870-65873271', 'networks': [{'uuid': '63555569-73cd-4874-99c8-7e0ff22a9412'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorxNPSdMrT5RJGbxlN6Y4vVB2VnWX201pe293rs5n...6cdIk-nVEfkWa-zsESVtQ4tBlsBPxefm9RDURMXg7zd1hvsS8'}})
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.9/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network 63555569-73cd-4874-99c8-7e0ff22a9412 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 63555569-73cd-4874-99c8-7e0ff22a9412 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-35584dd4-5911-4cc4-8696-c91abb469c03)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network 63555569-73cd-4874-99c8-7e0ff22a9412 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-35584dd4-5911-4cc4-8696-c91abb469c03', '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 63555569-73cd-4874-99c8-7e0ff22a9412 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-35584dd4-5911-4cc4-8696-c91abb469c03'
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 2862, in test_vm_file_trf_scp_tests
vm1_fixture = self.create_vm(vn_fixture=vn_fixture,
File "/contrail-test/common/base.py", line 277, in create_vm
vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
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 233, in create
objs = self.orch.create_vm(
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 606, in create_vm
self.obj.servers.create(name=vm_name, image=image,
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 845, in _boot
return self._create('/servers', body, response_key,
File "/usr/local/lib/python3.9/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network 63555569-73cd-4874-99c8-7e0ff22a9412 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-35584dd4-5911-4cc4-8696-c91abb469c03)

1.296 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:52 2025

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

/contrail-test/tcutils/wrappers.py in wrapper(self=<scripts.vm_regression.test_vm_basic.TestBasicVM...dev_sanity_dpdk,sanity,suite1] id=0x7fb4d4293940>, *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=0x7fb4d4293940>
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=0x7fb4d4293940>)
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=0x7fb4d4293940>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...ev_sanity_dpdk,sanity,suite1] id=0x7fb4d4293940>>
vn_ids undefined
vn_fixture = <vn_test.VNFixture object>
vn_fixture.uuid = 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'
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=0x7fb4d4293940>, vn_fixture=None, vm_name=None, image_name='cirros', port_ids=None, **kwargs={'vn_ids': ['cd6a4694-0d7a-4b0a-bfb2-3d6e21073487']})
275 assert port_obj.verify_on_setup()
276 port_ids = [port_obj.uuid]
277 vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
278 vm_name=vm_name,
279 image_name=image_name,
vm_fixture undefined
self = <scripts.vm_regression.test_vm_basic.TestBasicVM...dev_sanity_dpdk,sanity,suite1] id=0x7fb4d4293940>
self.create_only_vm = <bound method GenericTestBase.create_only_vm of ...ipts.vm_regression.test_vm_basic.TestBasicVMVN'>>
vn_fixture = None
vm_name = None
image_name = 'cirros'
port_ids = None
kwargs = {'vn_ids': ['cd6a4694-0d7a-4b0a-bfb2-3d6e21073487']}

/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': ['cd6a4694-0d7a-4b0a-bfb2-3d6e21073487']})
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-79851289-52564632>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestBasicVMVN-79851289-52564632>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestBasicVMVN-79851289-52564632>)
231 self.port_ids = port_ids
232
233 objs = self.orch.create_vm(
234 project_uuid=self.project_id,
235 image_name=self.image_name,
objs undefined
self = <VMFixture: ctest-TestBasicVMVN-79851289-52564632>
self.orch = <openstack.OpenstackOrchestrator object>
self.orch.create_vm = <bound method OpenstackOrchestrator.create_vm of <openstack.OpenstackOrchestrator object>>
project_uuid undefined
self.project_id = '825c74a0-d604-4eae-93f1-1c37b925a73c'
image_name undefined
self.image_name = 'cirros'
flavor undefined
self.flavor = 'contrail_flavor_tiny'
vm_name undefined
self.vm_name = 'ctest-TestBasicVMVN-79851289-52564632'
vn_objs undefined
self.vn_objs = [{'network': {'id': 'cd6a4694-0d7a-4b0a-bfb2-3d6e...port_security_enabled': True, 'description': ''}}]
node_name undefined
self.node_name = None
zone undefined
self.zone = None
sg_ids undefined
self.sg_ids = []
count undefined
self.count = 1
userdata undefined
self.userdata = None
port_ids undefined
self.port_ids = None
fixed_ips undefined
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestBasicVMVN-79851289-52564632', image_name='cirros', vn_objs=[{'network': {'id': 'cd6a4694-0d7a-4b0a-bfb2-3d6e...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '825c74a0-d604-4eae-93f1-1c37b925a73c', '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-79851289-52564632'
image_name = 'cirros'
vn_ids = ['cd6a4694-0d7a-4b0a-bfb2-3d6e21073487']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '825c74a0-d604-4eae-93f1-1c37b925a73c', 'sg_ids': [], 'userdata': None, 'zone': None}

/contrail-test/fixtures/nova_test.py in create_vm(self=<nova_test.NovaHelper object>, project_uuid='825c74a0-d604-4eae-93f1-1c37b925a73c', image_name='cirros', vm_name='ctest-TestBasicVMVN-79851289-52564632', vn_ids=['cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'], node_name='cn-jenkins-deploy-platform-ansible-os-3949-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-3949-1')
604
605 zone = zone + ":" + node_name if node_name else zone
606 self.obj.servers.create(name=vm_name, image=image,
607 security_groups=sg_ids,
608 flavor=flavor, nics=nics_list,
self = <nova_test.NovaHelper object>
self.obj = <novaclient.v2.client.Client object>
self.obj.servers = <novaclient.v2.servers.ServerManager object>
self.obj.servers.create = <bound method ServerManager.create of <novaclient.v2.servers.ServerManager object>>
name undefined
vm_name = 'ctest-TestBasicVMVN-79851289-52564632'
image = <RequestIdProxy at 0x7fb4d235d040 for image>
security_groups undefined
sg_ids = []
flavor = <Flavor: contrail_flavor_tiny>
nics undefined
nics_list = [{'net-id': 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'}]
config_drive = False
key_name undefined
self.key = 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1'
availability_zone undefined
zone = 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1'
min_count undefined
count = 1
max_count undefined
userdata = None

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-TestBasicVMVN-79851289-52564632', image=<RequestIdProxy at 0x7fb4d235d040 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-79851289ctest-TestBasicVMVN-79851289key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'}], 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-79851289-52564632', <RequestIdProxy at 0x7fb4d235d040 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-3949-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', ...}

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-TestBasicVMVN-79851289-52564632', image=<RequestIdProxy at 0x7fb4d235d040 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-79851289ctest-TestBasicVMVN-79851289key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
843 body['server']['hypervisor_hostname'] = hypervisor_hostname
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
self = <novaclient.v2.servers.ServerManager object>
self._create = <bound method Manager._create of <novaclient.v2.servers.ServerManager object>>
body = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-52564632', 'networks': [{'uuid': 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'}]}}
response_key = 'server'
return_raw = False
kwargs = {}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-52564632', 'networks': [{'uuid': 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'}]}}, 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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-52564632', 'networks': [{'uuid': 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'}]}}
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.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-52564632', 'networks': [{'uuid': 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'}]}}})
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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-52564632', 'networks': [{'uuid': 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'}]}}}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-52564632', 'networks': [{'uuid': 'cd6a4694-0d7a-4b0a-bfb2-3d6e21073487'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorxNTYpxtT4tirerZ6gabdduRVZ797I9H9uipuGri...YtTe4Vulb_r4IEK5WpPcygjxGoT8-m9TnqHPByiudPdfNLuQk'}})
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.9/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network cd6a4694-0d7a-4b0a-bfb2-3d6e21073487 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network cd6a4694-0d7a-4b0a-bfb2-3d6e21073487 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-ed4ab72b-2464-4b5e-b935-a68e2b0de9a7)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network cd6a4694-0d7a-4b0a-bfb2-3d6e21073487 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-ed4ab72b-2464-4b5e-b935-a68e2b0de9a7', '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 cd6a4694-0d7a-4b0a-bfb2-3d6e21073487 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-ed4ab72b-2464-4b5e-b935-a68e2b0de9a7'
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 277, in create_vm
vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
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 233, in create
objs = self.orch.create_vm(
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 606, in create_vm
self.obj.servers.create(name=vm_name, image=image,
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 845, in _boot
return self._create('/servers', body, response_key,
File "/usr/local/lib/python3.9/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network cd6a4694-0d7a-4b0a-bfb2-3d6e21073487 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-ed4ab72b-2464-4b5e-b935-a68e2b0de9a7)

1.387 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.9.21: /usr/bin/python3
Wed Aug 27 14:16:54 2025

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

/contrail-test/tcutils/wrappers.py in wrapper(self=<scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7fb4d42937c0>, *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=0x7fb4d42937c0>
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=0x7fb4d42937c0>)
52
53 vn_fixture = self.create_vn(af='v4')
54 vm1_fixture = self.create_vm(vn_fixture=vn_fixture,
55 image_name='cirros',
56 userdata='/tmp/metadata_script.txt')
vm1_fixture undefined
self = <scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7fb4d42937c0>
self.create_vm = <bound method GenericTestBase.create_vm of <scri...nity,ci_sanity,sanity,suite1] id=0x7fb4d42937c0>>
vn_fixture = <vn_test.VNFixture object>
image_name undefined
userdata undefined

/contrail-test/common/base.py in create_vm(self=<scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7fb4d42937c0>, vn_fixture=<vn_test.VNFixture object>, vm_name=None, image_name='cirros', port_ids=None, **kwargs={'userdata': '/tmp/metadata_script.txt'})
275 assert port_obj.verify_on_setup()
276 port_ids = [port_obj.uuid]
277 vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
278 vm_name=vm_name,
279 image_name=image_name,
vm_fixture undefined
self = <scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7fb4d42937c0>
self.create_only_vm = <bound method GenericTestBase.create_only_vm of ...ipts.vm_regression.test_vm_basic.TestBasicVMVN'>>
vn_fixture = <vn_test.VNFixture object>
vm_name = None
image_name = 'cirros'
port_ids = None
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-79851289-37745285>
vm_obj.setUp = <bound method VMFixture.setUp of <VMFixture: ctest-TestBasicVMVN-79851289-37745285>>

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

/contrail-test/fixtures/vm_test.py in create(self=<VMFixture: ctest-TestBasicVMVN-79851289-37745285>)
231 self.port_ids = port_ids
232
233 objs = self.orch.create_vm(
234 project_uuid=self.project_id,
235 image_name=self.image_name,
objs undefined
self = <VMFixture: ctest-TestBasicVMVN-79851289-37745285>
self.orch = <openstack.OpenstackOrchestrator object>
self.orch.create_vm = <bound method OpenstackOrchestrator.create_vm of <openstack.OpenstackOrchestrator object>>
project_uuid undefined
self.project_id = '825c74a0-d604-4eae-93f1-1c37b925a73c'
image_name undefined
self.image_name = 'cirros'
flavor undefined
self.flavor = 'contrail_flavor_tiny'
vm_name undefined
self.vm_name = 'ctest-TestBasicVMVN-79851289-37745285'
vn_objs undefined
self.vn_objs = [{'network': {'id': 'b36cd0cd-9abb-48ed-80df-3951...port_security_enabled': True, 'description': ''}}]
node_name undefined
self.node_name = None
zone undefined
self.zone = None
sg_ids undefined
self.sg_ids = []
count undefined
self.count = 1
userdata undefined
self.userdata = '/tmp/metadata_script.txt'
port_ids undefined
self.port_ids = None
fixed_ips undefined
self.fixed_ips = []

/contrail-test/fixtures/openstack.py in create_vm(self=<openstack.OpenstackOrchestrator object>, vm_name='ctest-TestBasicVMVN-79851289-37745285', image_name='cirros', vn_objs=[{'network': {'id': 'b36cd0cd-9abb-48ed-80df-3951...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '825c74a0-d604-4eae-93f1-1c37b925a73c', '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-79851289-37745285'
image_name = 'cirros'
vn_ids = ['b36cd0cd-9abb-48ed-80df-39516194a902']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '825c74a0-d604-4eae-93f1-1c37b925a73c', '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='825c74a0-d604-4eae-93f1-1c37b925a73c', image_name='cirros', vm_name='ctest-TestBasicVMVN-79851289-37745285', vn_ids=['b36cd0cd-9abb-48ed-80df-39516194a902'], node_name='cn-jenkins-deploy-platform-ansible-os-3949-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-3949-1')
604
605 zone = zone + ":" + node_name if node_name else zone
606 self.obj.servers.create(name=vm_name, image=image,
607 security_groups=sg_ids,
608 flavor=flavor, nics=nics_list,
self = <nova_test.NovaHelper object>
self.obj = <novaclient.v2.client.Client object>
self.obj.servers = <novaclient.v2.servers.ServerManager object>
self.obj.servers.create = <bound method ServerManager.create of <novaclient.v2.servers.ServerManager object>>
name undefined
vm_name = 'ctest-TestBasicVMVN-79851289-37745285'
image = <RequestIdProxy at 0x7fb4d235dec0 for image>
security_groups undefined
sg_ids = []
flavor = <Flavor: contrail_flavor_tiny>
nics undefined
nics_list = [{'net-id': 'b36cd0cd-9abb-48ed-80df-39516194a902'}]
config_drive = False
key_name undefined
self.key = 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1'
availability_zone undefined
zone = 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1'
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.9/site-packages/novaclient/v2/servers.py in create(self=<novaclient.v2.servers.ServerManager object>, name='ctest-TestBasicVMVN-79851289-37745285', image=<RequestIdProxy at 0x7fb4d235dec0 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-79851289ctest-TestBasicVMVN-79851289key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'b36cd0cd-9abb-48ed-80df-39516194a902'}], 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-79851289-37745285', <RequestIdProxy at 0x7fb4d235dec0 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-3949-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', ...}

/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py in _boot(self=<novaclient.v2.servers.ServerManager object>, response_key='server', name='ctest-TestBasicVMVN-79851289-37745285', image=<RequestIdProxy at 0x7fb4d235dec0 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-79851289ctest-TestBasicVMVN-79851289key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3949-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'b36cd0cd-9abb-48ed-80df-39516194a902'}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
843 body['server']['hypervisor_hostname'] = hypervisor_hostname
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
self = <novaclient.v2.servers.ServerManager object>
self._create = <bound method Manager._create of <novaclient.v2.servers.ServerManager object>>
body = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-37745285', 'networks': [{'uuid': 'b36cd0cd-9abb-48ed-80df-39516194a902'}], 'user_data': 'IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRp...8IHRlZSAvdG1wL291dHB1dC50eHQKICAgICAgICAgICAgICAg'}}
response_key = 'server'
return_raw = False
kwargs = {}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-37745285', 'networks': [{'uuid': 'b36cd0cd-9abb-48ed-80df-39516194a902'}], '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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-37745285', 'networks': [{'uuid': 'b36cd0cd-9abb-48ed-80df-39516194a902'}], '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.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-37745285', 'networks': [{'uuid': 'b36cd0cd-9abb-48ed-80df-39516194a902'}], '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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-37745285', 'networks': [{'uuid': 'b36cd0cd-9abb-48ed-80df-39516194a902'}], 'user_data': 'IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRp...8IHRlZSAvdG1wL291dHB1dC50eHQKICAgICAgICAgICAgICAg'}}}

/usr/local/lib/python3.9/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-3949-1', 'flavorRef': '8db9f424-a0b7-44c4-bf21-409bd72f2095', 'imageRef': '5849dffd-e671-49d9-8759-09c120a3b4a0', 'key_name': 'ctest_ctest-TestBasicVMVN-79851289ctest-TestBasicVMVN-79851289key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-TestBasicVMVN-79851289-37745285', 'networks': [{'uuid': 'b36cd0cd-9abb-48ed-80df-39516194a902'}], 'user_data': 'IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRp...8IHRlZSAvdG1wL291dHB1dC50eHQKICAgICAgICAgICAgICAg'}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorxNTYpxtT4tirerZ6gabdduRVZ797I9H9uipuGri...YtTe4Vulb_r4IEK5WpPcygjxGoT8-m9TnqHPByiudPdfNLuQk'}})
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.9/site-packages/novaclient/exceptions.py'>
exceptions.from_response = <function from_response>
resp = <Response [400]>
body = {'badRequest': {'code': 400, 'message': 'Network b36cd0cd-9abb-48ed-80df-39516194a902 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network b36cd0cd-9abb-48ed-80df-39516194a902 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-ed594e05-7df5-485c-af4f-c9dd3918aa88)
__cause__ = None
__class__ = <class 'novaclient.exceptions.BadRequest'>
__context__ = None
__delattr__ = <method-wrapper '__delattr__' of BadRequest object>
__dict__ = {'code': 400, 'details': None, 'message': 'Network b36cd0cd-9abb-48ed-80df-39516194a902 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-ed594e05-7df5-485c-af4f-c9dd3918aa88', '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 b36cd0cd-9abb-48ed-80df-39516194a902 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-ed594e05-7df5-485c-af4f-c9dd3918aa88'
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 54, in test_metadata_service
vm1_fixture = self.create_vm(vn_fixture=vn_fixture,
File "/contrail-test/common/base.py", line 277, in create_vm
vm_fixture = self.create_only_vm(vn_fixture=vn_fixture,
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 233, in create
objs = self.orch.create_vm(
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 606, in create_vm
self.obj.servers.create(name=vm_name, image=image,
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/v2/servers.py", line 845, in _boot
return self._create('/servers', body, response_key,
File "/usr/local/lib/python3.9/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.9/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.9/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network b36cd0cd-9abb-48ed-80df-39516194a902 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-ed594e05-7df5-485c-af4f-c9dd3918aa88)

1.344 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.9.21: /usr/bin/python3
Wed Aug 27 14:16: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=<scripts.vm_regression.test_vm_basic.TestBasicVM...anity,ci_sanity,sanity,suite1] id=0x7fb4d4293be0>, *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=0x7fb4d4293be0>
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=0x7fb4d4293be0>)
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.258 Log File
Properties »

Back to top

TestCase

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

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

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

/contrail-test/tcutils/wrappers.py in wrapper(self=<serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fec6a2450d0>, *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=0x7fec6a2450d0>
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=0x7fec6a2450d0>)
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=0x7fec6a2450d0>
self.create_vn = <bound method BaseRbac.create_vn of <serial_scri...lobal_share[ci_sanity,sanity] id=0x7fec6a2450d0>>
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=0x7fec6a2450d0>, connections=<common.connections.ContrailConnections object>, verify=False, option='contrail', **kwargs={'shared': True})
214 def create_vn(self, connections=None, 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:
vn_fixture undefined
self = <serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fec6a2450d0>
self.create_fixture = <bound method BaseRbac.create_fixture of <serial...lobal_share[ci_sanity,sanity] id=0x7fec6a2450d0>>
global VNFixture = <class 'vn_test.VNFixture'>
connections = <common.connections.ContrailConnections object>
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=0x7fec6a2450d0>, 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=0x7fec6a2450d0>
self.useFixture = <bound method TestCase.useFixture of <serial_scr...lobal_share[ci_sanity,sanity] id=0x7fec6a2450d0>>
fixturecls = <class 'vn_test.VNFixture'>
kwargs = {'connections': <common.connections.ContrailConnections object>, 'option': 'contrail', 'shared': True}

/usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fec6a2450d0>, 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.9/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.9/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac.TestRbac.test_per...global_share[ci_sanity,sanity] id=0x7fec6a2450d0>, 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-29076357-66069274'
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-29076357-66069274', 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 0x7fec690686a0>>, 'virtual-network')
self.api_vn_obj = <vnc_api.gen.resource_client.VirtualNetwork object>

/usr/local/lib/python3.9/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.9/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>)
829 'DELETE')
830 for ref in ref_new - ref_orig:
831 self.ref_update(
832 res_type, obj.uuid, ref_name, ref[0], list(ref[1]),
833 'ADD', ref[2])
self = <vnc_api_test.TestVncApi object>
self.ref_update = <bound method VncApi.ref_update of <vnc_api_test.TestVncApi object>>
res_type = 'virtual-network'
obj = <vnc_api.gen.resource_client.VirtualNetwork object>
obj.uuid = 'db56f81b-276c-4d7d-b1bd-17728f0d39e1'
ref_name = 'network_ipam_refs'
ref = ('61ff6aaf-a900-4162-b482-17489a9e5587', ('default-domain', 'default-project', 'default-network-ipam'), ipam_subnets = [subnet = ip_prefix = 25.252.26.6...None, dhcp_relay_server = []], host_routes = None)
builtinlist = <class 'list'>

/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py in wrapper(self=<vnc_api_test.TestVncApi object>, *args=('virtual-network', 'db56f81b-276c-4d7d-b1bd-17728f0d39e1', 'network_ipam_refs', '61ff6aaf-a900-4162-b482-17489a9e5587', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 25.252.26.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', 'db56f81b-276c-4d7d-b1bd-17728f0d39e1', 'network_ipam_refs', '61ff6aaf-a900-4162-b482-17489a9e5587', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 25.252.26.6...None, dhcp_relay_server = []], host_routes = None)
kwargs = {}

/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='db56f81b-276c-4d7d-b1bd-17728f0d39e1', ref_type='network-ipam', ref_uuid='61ff6aaf-a900-4162-b482-17489a9e5587', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 25.252.26.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.9/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='db56f81b-276c-4d7d-b1bd-17728f0d39e1', ref_type='network-ipam', ref_uuid='61ff6aaf-a900-4162-b482-17489a9e5587', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 25.252.26.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": "db56f81b-27... "dhcp_relay_server": []}], "host_routes": null}}'

/usr/local/lib/python3.9/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": "db56f81b-27... "dhcp_relay_server": []}], "host_routes": null}}', retry_on_error=True, retry_after_authn=False, retry_count=30)
1124 raise ConnectionError("Unable to retrive the api server root url.")
1125
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)
self = <vnc_api_test.TestVncApi object>
self._request = <bound method VncApi._request of <vnc_api_test.TestVncApi object>>
op = 1
url = '/ref-update'
data = '{"type": "virtual-network", "uuid": "db56f81b-27... "dhcp_relay_server": []}], "host_routes": null}}'
retry_on_error = True
retry_after_authn = False
retry_count = 30

/usr/local/lib/python3.9/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": "db56f81b-27... "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 216, in create_vn
vn_fixture = self.create_fixture(VNFixture, connections=connections,
File "/contrail-test/serial_scripts/rbac/base.py", line 354, in create_fixture
return self.useFixture(fixturecls(**kwargs))
File "/usr/local/lib/python3.9/site-packages/testtools/testcase.py", line 756, in useFixture
reraise(*exc_info)
File "/usr/local/lib/python3.9/site-packages/testtools/_compat3x.py", line 16, in reraise
raise exc_obj.with_traceback(exc_tb)
File "/usr/local/lib/python3.9/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.9/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 831, in _object_update
self.ref_update(
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 1364, in ref_update
raise he
File "/usr/local/lib/python3.9/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.9/site-packages/vnc_api/vnc_api.py", line 1126, in _request_server
return self._request(
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 1208, in _request
raise HttpError(status, content)
vnc_api.exceptions.HttpError: HTTP Status: 500 Content: 'NoneType' object is not iterable

70.004 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.9.21: /usr/bin/python3
Wed Aug 27 14:18:27 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=0x7fec6a245c70>, *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=0x7fec6a245c70>
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=0x7fec6a245c70>)
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=0x7fec6a245c70>
self.create_vn = <bound method BaseRbac.create_vn of <serial_scri...wner[ci_sanity,sanity,suite1] id=0x7fec6a245c70>>
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=0x7fec6a245c70>, connections=<common.connections.ContrailConnections object>, verify=False, option='contrail', **kwargs={})
214 def create_vn(self, connections=None, 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:
vn_fixture undefined
self = <serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fec6a245c70>
self.create_fixture = <bound method BaseRbac.create_fixture of <serial...wner[ci_sanity,sanity,suite1] id=0x7fec6a245c70>>
global VNFixture = <class 'vn_test.VNFixture'>
connections = <common.connections.ContrailConnections object>
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=0x7fec6a245c70>, 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=0x7fec6a245c70>
self.useFixture = <bound method TestCase.useFixture of <serial_scr...wner[ci_sanity,sanity,suite1] id=0x7fec6a245c70>>
fixturecls = <class 'vn_test.VNFixture'>
kwargs = {'connections': <common.connections.ContrailConnections object>, 'option': 'contrail'}

/usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fec6a245c70>, 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.9/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.9/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...owner[ci_sanity,sanity,suite1] id=0x7fec6a245c70>, 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-66220669-75279116'
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-66220669-75279116', 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 0x7fec68d65490>>, 'virtual-network')
self.api_vn_obj = <vnc_api.gen.resource_client.VirtualNetwork object>

/usr/local/lib/python3.9/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.9/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>)
829 'DELETE')
830 for ref in ref_new - ref_orig:
831 self.ref_update(
832 res_type, obj.uuid, ref_name, ref[0], list(ref[1]),
833 'ADD', ref[2])
self = <vnc_api_test.TestVncApi object>
self.ref_update = <bound method VncApi.ref_update of <vnc_api_test.TestVncApi object>>
res_type = 'virtual-network'
obj = <vnc_api.gen.resource_client.VirtualNetwork object>
obj.uuid = '715124d0-5844-4ab0-9bd5-b4d5baf25200'
ref_name = 'network_ipam_refs'
ref = ('61ff6aaf-a900-4162-b482-17489a9e5587', ('default-domain', 'default-project', 'default-network-ipam'), ipam_subnets = [subnet = ip_prefix = 202.17.92.0...None, dhcp_relay_server = []], host_routes = None)
builtinlist = <class 'list'>

/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py in wrapper(self=<vnc_api_test.TestVncApi object>, *args=('virtual-network', '715124d0-5844-4ab0-9bd5-b4d5baf25200', 'network_ipam_refs', '61ff6aaf-a900-4162-b482-17489a9e5587', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 202.17.92.0...None, dhcp_relay_server = []], host_routes = None), **kwargs={})
50 retry_on_error=False)
51 self._parse_homepage(homepage)
52 return func(self, *args, **kwargs)
53 return wrapper
54
func = <function VncApi.ref_update>
self = <vnc_api_test.TestVncApi object>
args = ('virtual-network', '715124d0-5844-4ab0-9bd5-b4d5baf25200', 'network_ipam_refs', '61ff6aaf-a900-4162-b482-17489a9e5587', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 202.17.92.0...None, dhcp_relay_server = []], host_routes = None)
kwargs = {}

/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='715124d0-5844-4ab0-9bd5-b4d5baf25200', ref_type='network-ipam', ref_uuid='61ff6aaf-a900-4162-b482-17489a9e5587', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 202.17.92.0...None, dhcp_relay_server = []], host_routes = None)
1362 if he.status_code == 404:
1363 return None
1364 raise he
1365
1366 return json.loads(content)['uuid']
he undefined

/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='715124d0-5844-4ab0-9bd5-b4d5baf25200', ref_type='network-ipam', ref_uuid='61ff6aaf-a900-4162-b482-17489a9e5587', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 202.17.92.0...None, dhcp_relay_server = []], host_routes = None)
1358 uri = self._action_uri['ref-update']
1359 try:
1360 content = self._request_server(OP_POST, uri, data=json_body)
1361 except HttpError as he:
1362 if he.status_code == 404:
content undefined
self = <vnc_api_test.TestVncApi object>
self._request_server = <bound method VncApi._request_server of <vnc_api_test.TestVncApi object>>
global OP_POST = 1
uri = '/ref-update'
data undefined
json_body = '{"type": "virtual-network", "uuid": "715124d0-58... "dhcp_relay_server": []}], "host_routes": null}}'

/usr/local/lib/python3.9/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": "715124d0-58... "dhcp_relay_server": []}], "host_routes": null}}', retry_on_error=True, retry_after_authn=False, retry_count=30)
1124 raise ConnectionError("Unable to retrive the api server root url.")
1125
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)
self = <vnc_api_test.TestVncApi object>
self._request = <bound method VncApi._request of <vnc_api_test.TestVncApi object>>
op = 1
url = '/ref-update'
data = '{"type": "virtual-network", "uuid": "715124d0-58... "dhcp_relay_server": []}], "host_routes": null}}'
retry_on_error = True
retry_after_authn = False
retry_count = 30

/usr/local/lib/python3.9/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": "715124d0-58... "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 216, in create_vn
vn_fixture = self.create_fixture(VNFixture, connections=connections,
File "/contrail-test/serial_scripts/rbac/base.py", line 354, in create_fixture
return self.useFixture(fixturecls(**kwargs))
File "/usr/local/lib/python3.9/site-packages/testtools/testcase.py", line 756, in useFixture
reraise(*exc_info)
File "/usr/local/lib/python3.9/site-packages/testtools/_compat3x.py", line 16, in reraise
raise exc_obj.with_traceback(exc_tb)
File "/usr/local/lib/python3.9/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.9/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 831, in _object_update
self.ref_update(
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 1364, in ref_update
raise he
File "/usr/local/lib/python3.9/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.9/site-packages/vnc_api/vnc_api.py", line 1126, in _request_server
return self._request(
File "/usr/local/lib/python3.9/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

69.598 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.9.21: /usr/bin/python3
Wed Aug 27 14:19:35 2025

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

/contrail-test/tcutils/wrappers.py in wrapper(self=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fec6a245dc0>, *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=0x7fec6a245dc0>
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=0x7fec6a245dc0>)
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=0x7fec6a245dc0>
self.create_vn = <bound method BaseRbac.create_vn of <serial_scri...oles[ci_sanity,sanity,suite1] id=0x7fec6a245dc0>>
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=0x7fec6a245dc0>, connections=<common.connections.ContrailConnections object>, verify=True, option='contrail', **kwargs={})
214 def create_vn(self, connections=None, 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:
vn_fixture undefined
self = <serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fec6a245dc0>
self.create_fixture = <bound method BaseRbac.create_fixture of <serial...oles[ci_sanity,sanity,suite1] id=0x7fec6a245dc0>>
global VNFixture = <class 'vn_test.VNFixture'>
connections = <common.connections.ContrailConnections object>
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=0x7fec6a245dc0>, 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=0x7fec6a245dc0>
self.useFixture = <bound method TestCase.useFixture of <serial_scr...oles[ci_sanity,sanity,suite1] id=0x7fec6a245dc0>>
fixturecls = <class 'vn_test.VNFixture'>
kwargs = {'connections': <common.connections.ContrailConnections object>, 'option': 'contrail'}

/usr/local/lib/python3.9/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fec6a245dc0>, 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.9/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.9/site-packages/testtools/testcase.py in useFixture(self=<serial_scripts.rbac.test_rbac_basic.TestRbacBas...roles[ci_sanity,sanity,suite1] id=0x7fec6a245dc0>, 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-21739495-78855555'
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-21739495-78855555', 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 0x7fec68dc3700>>, 'virtual-network')
self.api_vn_obj = <vnc_api.gen.resource_client.VirtualNetwork object>

/usr/local/lib/python3.9/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.9/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>)
829 'DELETE')
830 for ref in ref_new - ref_orig:
831 self.ref_update(
832 res_type, obj.uuid, ref_name, ref[0], list(ref[1]),
833 'ADD', ref[2])
self = <vnc_api_test.TestVncApi object>
self.ref_update = <bound method VncApi.ref_update of <vnc_api_test.TestVncApi object>>
res_type = 'virtual-network'
obj = <vnc_api.gen.resource_client.VirtualNetwork object>
obj.uuid = '1217d7fa-13eb-4109-835d-1b3b0836d1ae'
ref_name = 'network_ipam_refs'
ref = ('61ff6aaf-a900-4162-b482-17489a9e5587', ('default-domain', 'default-project', 'default-network-ipam'), ipam_subnets = [subnet = ip_prefix = 133.200.71....None, dhcp_relay_server = []], host_routes = None)
builtinlist = <class 'list'>

/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py in wrapper(self=<vnc_api_test.TestVncApi object>, *args=('virtual-network', '1217d7fa-13eb-4109-835d-1b3b0836d1ae', 'network_ipam_refs', '61ff6aaf-a900-4162-b482-17489a9e5587', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 133.200.71....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', '1217d7fa-13eb-4109-835d-1b3b0836d1ae', 'network_ipam_refs', '61ff6aaf-a900-4162-b482-17489a9e5587', ['default-domain', 'default-project', 'default-network-ipam'], 'ADD', ipam_subnets = [subnet = ip_prefix = 133.200.71....None, dhcp_relay_server = []], host_routes = None)
kwargs = {}

/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='1217d7fa-13eb-4109-835d-1b3b0836d1ae', ref_type='network-ipam', ref_uuid='61ff6aaf-a900-4162-b482-17489a9e5587', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 133.200.71....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.9/site-packages/vnc_api/vnc_api.py in ref_update(self=<vnc_api_test.TestVncApi object>, obj_type='virtual-network', obj_uuid='1217d7fa-13eb-4109-835d-1b3b0836d1ae', ref_type='network-ipam', ref_uuid='61ff6aaf-a900-4162-b482-17489a9e5587', ref_fq_name=['default-domain', 'default-project', 'default-network-ipam'], operation='ADD', attr=ipam_subnets = [subnet = ip_prefix = 133.200.71....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": "1217d7fa-13... "dhcp_relay_server": []}], "host_routes": null}}'

/usr/local/lib/python3.9/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": "1217d7fa-13... "dhcp_relay_server": []}], "host_routes": null}}', retry_on_error=True, retry_after_authn=False, retry_count=30)
1124 raise ConnectionError("Unable to retrive the api server root url.")
1125
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)
self = <vnc_api_test.TestVncApi object>
self._request = <bound method VncApi._request of <vnc_api_test.TestVncApi object>>
op = 1
url = '/ref-update'
data = '{"type": "virtual-network", "uuid": "1217d7fa-13... "dhcp_relay_server": []}], "host_routes": null}}'
retry_on_error = True
retry_after_authn = False
retry_count = 30

/usr/local/lib/python3.9/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": "1217d7fa-13... "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 216, in create_vn
vn_fixture = self.create_fixture(VNFixture, connections=connections,
File "/contrail-test/serial_scripts/rbac/base.py", line 354, in create_fixture
return self.useFixture(fixturecls(**kwargs))
File "/usr/local/lib/python3.9/site-packages/testtools/testcase.py", line 756, in useFixture
reraise(*exc_info)
File "/usr/local/lib/python3.9/site-packages/testtools/_compat3x.py", line 16, in reraise
raise exc_obj.with_traceback(exc_tb)
File "/usr/local/lib/python3.9/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.9/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 831, in _object_update
self.ref_update(
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 52, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/vnc_api/vnc_api.py", line 1364, in ref_update
raise he
File "/usr/local/lib/python3.9/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.9/site-packages/vnc_api/vnc_api.py", line 1126, in _request_server
return self._request(
File "/usr/local/lib/python3.9/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

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

Back to top