2025-08-07 16:38:39,106 - INFO - Domain Default found not creating
2025-08-07 16:38:39,492 - INFO - Project ctest-TestRouters-35961750 not found, creating it
2025-08-07 16:38:40,199 - INFO - Created Project:ctest-TestRouters-35961750, ID : ec02b585-fca1-43cf-b7d3-347db443f2ad
2025-08-07 16:38:42,275 - INFO - ================================================================================
2025-08-07 16:38:42,275 - INFO - STARTING TEST : test_basic_router_behavior
2025-08-07 16:38:42,275 - INFO - TEST DESCRIPTION : Validate a router is able to route packets between two VNs
Create a router
Create 2 VNs, and a VM in each
Add router port from each VN
Ping between VMs
2025-08-07 16:38:42,466 - DEBUG - Nothing to compare xmpp stats {'10.0.0.249': {'10.20.0.17': '0'}} with
2025-08-07 16:38:42,466 - INFO - Initial checks done. Running the testcase now
2025-08-07 16:38:42,466 - INFO -
2025-08-07 16:38:43,301 - DEBUG - Response for create_network : {'network': {'id': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e', 'name': 'ctest-vn1-53954653', 'tenant_id': 'ec02b585fca143cfb7d3347db443f2ad', 'project_id': 'ec02b585fca143cfb7d3347db443f2ad', 'admin_state_up': True, 'shared': False, 'status': 'ACTIVE', 'router:external': False, 'mtu': 0, 'subnets': [], 'fq_name': ['default-domain', 'ctest-TestRouters-35961750', 'ctest-vn1-53954653'], 'port_security_enabled': True, 'description': ''}}
2025-08-07 16:38:43,477 - ERROR - Neutron Exception while creating subnet for vn with id 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e
Traceback (most recent call last):
File "/contrail-test/fixtures/quantum_test.py", line 128, in create_subnet
subnet_rsp = self.obj.create_subnet({'subnet': subnet_req})
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 848, in create_subnet
return self.post(self.subnets_path, body=body)
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 359, in post
headers=headers, params=params)
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 294, in do_request
self._handle_fault_response(status_code, replybody, resp)
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 269, in _handle_fault_response
exception_handler_v20(status_code, error_body)
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 93, in exception_handler_v20
request_ids=request_ids)
neutronclient.common.exceptions.InternalServerError: The server has either erred or is incapable of performing the requested operation.
Neutron server returns request_ids: ['req-ba578978-e0df-43c6-8144-c59f3750afd0']
2025-08-07 16:38:43,506 - INFO - Created VN ctest-vn1-53954653
2025-08-07 16:38:43,571 - DEBUG - VN ctest-vn1-53954653 UUID is 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e
2025-08-07 16:38:44,106 - DEBUG - Response for create_network : {'network': {'id': '45e8c124-9c7d-4b47-a493-6b8557292a73', 'name': 'ctest-vn2-18340395', 'tenant_id': 'ec02b585fca143cfb7d3347db443f2ad', 'project_id': 'ec02b585fca143cfb7d3347db443f2ad', 'admin_state_up': True, 'shared': False, 'status': 'ACTIVE', 'router:external': False, 'mtu': 0, 'subnets': [], 'fq_name': ['default-domain', 'ctest-TestRouters-35961750', 'ctest-vn2-18340395'], 'port_security_enabled': True, 'description': ''}}
2025-08-07 16:38:44,293 - ERROR - Neutron Exception while creating subnet for vn with id 45e8c124-9c7d-4b47-a493-6b8557292a73
Traceback (most recent call last):
File "/contrail-test/fixtures/quantum_test.py", line 128, in create_subnet
subnet_rsp = self.obj.create_subnet({'subnet': subnet_req})
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 848, in create_subnet
return self.post(self.subnets_path, body=body)
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 359, in post
headers=headers, params=params)
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 294, in do_request
self._handle_fault_response(status_code, replybody, resp)
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 269, in _handle_fault_response
exception_handler_v20(status_code, error_body)
File "/usr/local/lib/python3.6/site-packages/neutronclient/v2_0/client.py", line 93, in exception_handler_v20
request_ids=request_ids)
neutronclient.common.exceptions.InternalServerError: The server has either erred or is incapable of performing the requested operation.
Neutron server returns request_ids: ['req-71fa58f2-80fc-4a53-b483-62b7daa2e857']
2025-08-07 16:38:44,318 - INFO - Created VN ctest-vn2-18340395
2025-08-07 16:38:44,379 - DEBUG - VN ctest-vn2-18340395 UUID is 45e8c124-9c7d-4b47-a493-6b8557292a73
2025-08-07 16:38:44,745 - DEBUG - Services list from nova: [, , ]
2025-08-07 16:38:44,927 - DEBUG - Image by name cirros not found
2025-08-07 16:38:44,927 - DEBUG - Installing image cirros
2025-08-07 16:38:44,927 - DEBUG - Image info {'name': 'cirros-0.3.0-x86_64-disk.vmdk.gz', 'webserver': '', 'location': '/images/converts/', 'username': 'cirros', 'password': 'cubswin:)', 'type': 'os', 'flavor': 'contrail_flavor_tiny', 'params': '--container-format bare --disk-format vmdk --property vmware_disktype="sparse" --property vmware_adaptertype="ide" --property hw_scsi_model=virtio-scsi --property hw_disk_bus_model=virtio-scsi --property hw_disk_bus=virtio', 'name_docker': 'phusion-baseimage-enablesshd'}
2025-08-07 16:38:44,930 - DEBUG - Image build path http://nexus.opensdn.io/repository///images/converts//cirros-0.3.0-x86_64-disk.vmdk.gz
2025-08-07 16:38:44,931 - DEBUG - Download image from web http://nexus.opensdn.io/repository///images/converts//cirros-0.3.0-x86_64-disk.vmdk.gz
2025-08-07 16:38:44,956 - DEBUG - Image download (local=True) (proxy=None): Execute cmd: 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
2025-08-07 16:38:45,063 - DEBUG - Image has been downloaded to /contrail-test/images/cirros-0.3.0-x86_64-disk.vmdk.gz
2025-08-07 16:38:45,064 - DEBUG - Unzip image
2025-08-07 16:38:45,064 - DEBUG - Image download (local=True) (proxy=None): Execute cmd: gunzip -f /contrail-test/images/cirros-0.3.0-x86_64-disk.vmdk.gz
2025-08-07 16:38:45,221 - DEBUG - Try to create image in user context
2025-08-07 16:38:45,579 - DEBUG - Image has been created in user context
2025-08-07 16:38:45,579 - DEBUG - Image download (local=True) (proxy=None): Execute cmd: rm -f /contrail-test/images/cirros-0.3.0-x86_64-disk.vmdk
2025-08-07 16:38:45,613 - DEBUG - Downloaded image has been removed
2025-08-07 16:38:45,677 - DEBUG - Uploaded image status = active
2025-08-07 16:38:46,977 - INFO - Deleting VN ctest-vn2-18340395
2025-08-07 16:38:47,173 - DEBUG - Response for deleting network ()
2025-08-07 16:38:47,174 - INFO - Deleting VN ctest-vn1-53954653
2025-08-07 16:38:47,431 - DEBUG - Response for deleting network ()
2025-08-07 16:38:47,560 - ERROR - BadRequest
Python 3.6.8: /usr/bin/python3
Thu Aug 7 16:38:46 2025
A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
/contrail-test/tcutils/wrappers.py in wrapper(self=, *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 =
self =
args = ()
kwargs = {}
/contrail-test/scripts/neutron/test_routers.py in test_basic_router_behavior(self=)
50 vn2_fixture = self.create_vn(vn2_name, vn2_subnets)
51 vn1_vm1_fixture = self.create_vm(vn1_fixture, vn1_vm1_name,
52 image_name='cirros')
53 vn2_vm1_fixture = self.create_vm(vn2_fixture, vn2_vm1_name,
54 image_name='cirros')
image_name undefined
/contrail-test/common/base.py in create_vm(self=, vn_fixture=, vm_name='ctest-vn1-vm1-88048865', image_name='cirros', port_ids=None, **kwargs={})
279 image_name=image_name,
280 port_ids=port_ids,
281 **kwargs)
282 if cleanup:
283 self.addCleanup(vm_fixture.cleanUp)
kwargs = {}
/contrail-test/common/base.py in create_only_vm(cls=, vn_fixture=, vm_name='ctest-vn1-vm1-88048865', image_name='cirros', **kwargs={'port_ids': None})
252 image_name=image_name,
253 **kwargs)
254 vm_obj.setUp()
255 return vm_obj
256 # end create_only_vm
vm_obj =
vm_obj.setUp = >
/contrail-test/fixtures/vm_test.py in setUp(self=)
191 def setUp(self):
192 super(VMFixture, self).setUp()
193 self.create()
194
195 def create(self):
self =
self.create = >
/contrail-test/fixtures/vm_test.py in create(self=)
243 userdata=self.userdata,
244 port_ids=self.port_ids,
245 fixed_ips=self.fixed_ips)
246 self.created = True
247 self.vm_obj = objs[0]
fixed_ips undefined
self =
self.fixed_ips = []
/contrail-test/fixtures/openstack.py in create_vm(self=, vm_name='ctest-vn1-vm1-88048865', image_name='cirros', vn_objs=[{'network': {'id': '7ab2ba77-5a22-4ae8-8292-9ce1...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': 'ec02b585-fca1-43cf-b7d3-347db443f2ad', 'sg_ids': [], 'userdata': None, 'zone': None})
116 except Exception as e:
117 vn_ids.append(vn.uuid) #For the case of VcenterVN obnect in vrouter gw case
118 return self.nova_h.create_vm(vm_name=vm_name, image_name=image_name, vn_ids=vn_ids, **kwargs)
119
120 def delete_vm(self, vm_obj, **kwargs):
self =
self.nova_h =
self.nova_h.create_vm = >
vm_name = 'ctest-vn1-vm1-88048865'
image_name = 'cirros'
vn_ids = ['7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': 'ec02b585-fca1-43cf-b7d3-347db443f2ad', 'sg_ids': [], 'userdata': None, 'zone': None}
/contrail-test/fixtures/nova_test.py in create_vm(self=, project_uuid='ec02b585-fca1-43cf-b7d3-347db443f2ad', image_name='cirros', vm_name='ctest-vn1-vm1-88048865', vn_ids=['7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'], node_name='cn-jenkins-deploy-platform-ansible-os-3773-1', sg_ids=[], count=1, userdata=None, flavor=, port_ids=None, fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1')
609 config_drive=config_drive,
610 key_name=self.key, availability_zone=zone,
611 min_count=count, max_count=count, userdata=userdata)
612 vm_objs = self.get_vm_list(name_pattern=vm_name,
613 project_id=project_uuid)
min_count undefined
count = 1
max_count undefined
userdata = None
/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in create(self=, name='ctest-vn1-vm1-88048865', image=, flavor=, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata=None, key_name='ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}], scheduler_hints=None, config_drive=False, disk_config=None, admin_pass=None, access_ip_v4=None, access_ip_v6=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
1479
1480 response_key = "server" if not reservation_id else "reservation_id"
1481 return self._boot(response_key, *boot_args, **boot_kwargs)
1482
1483 @api_versions.wraps("2.0", "2.18")
self =
self._boot = >
response_key = 'server'
boot_args = ['ctest-vn1-vm1-88048865', , ]
boot_kwargs = {'access_ip_v4': None, 'access_ip_v6': None, 'admin_pass': None, 'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3773-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', ...}
/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in _boot(self=, response_key='server', name='ctest-vn1-vm1-88048865', image=, flavor=, meta=None, files=None, userdata=None, reservation_id=False, return_raw=False, min_count=1, max_count=1, security_groups=[], key_name='ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3773-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
848 def get(self, server):
return_raw = False
kwargs = {}
/usr/local/lib/python3.6/site-packages/novaclient/base.py in _create(self=, url='/servers', body={'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}, response_key='server', return_raw=False, obj_class=None, **kwargs={})
362 obj_class=None, **kwargs):
363 self.run_hooks('modify_body_for_create', body, **kwargs)
364 resp, body = self.api.client.post(url, body=body)
365 if return_raw:
366 return self.convert_into_with_meta(body[response_key], resp)
resp undefined
body = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}
self =
self.api =
self.api.client =
self.api.client.post = >
url = '/servers'
/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py in post(self=, url='/servers', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}})
390
391 def post(self, url, **kwargs):
392 return self.request(url, 'POST', **kwargs)
393
394 def put(self, url, **kwargs):
self =
self.request = >
url = '/servers'
kwargs = {'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}}
/usr/local/lib/python3.6/site-packages/novaclient/client.py in request(self=, url='/servers', method='POST', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3773-1', 'flavorRef': '230c3f60-73d8-4f2b-8736-17666ef3e0e9', 'imageRef': 'e37e4eda-b4f6-4a6c-afdd-921353fa56b5', 'key_name': 'ctest_ctest-TestRouters-35961750ctest-TestRouters-35961750key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-88048865', 'networks': [{'uuid': '7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABolNaRaTfdoAnXeIFttcrBy0tqA8XrhYUXpblkuKNH...kFB1WBlKlqYS3OOfnMxegtPT2V0A7zGJYqSX1sge8H8h5L7ZQ'}})
76 # api_versions.check_headers(resp, self.api_version)
77 if raise_exc and resp.status_code >= 400:
78 raise exceptions.from_response(resp, body, url, method)
79
80 return resp, body
global exceptions =
exceptions.from_response =
resp =
body = {'badRequest': {'code': 400, 'message': 'Network 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-33a50e53-7554-4aa9-94b8-6eb3e9982353)
__cause__ = None
__class__ =
__context__ = None
__delattr__ =
__dict__ = {'code': 400, 'details': None, 'message': 'Network 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-33a50e53-7554-4aa9-94b8-6eb3e9982353', 'url': '/servers'}
__dir__ =
__doc__ = '\n HTTP 400 - Bad request: you sent some malformed data.\n '
__eq__ =
__format__ =
__ge__ =
__getattribute__ =
__gt__ =
__hash__ =
__init__ =
__init_subclass__ =
__le__ =
__lt__ =
__module__ = 'novaclient.exceptions'
__ne__ =
__new__ =
__reduce__ =
__reduce_ex__ =
__repr__ =
__setattr__ =
__setstate__ =
__sizeof__ =
__str__ =
__subclasshook__ =
__suppress_context__ = False
__traceback__ =
__weakref__ = None
args = ()
code = 400
details = None
http_status = 400
message = 'Network 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-33a50e53-7554-4aa9-94b8-6eb3e9982353'
url = '/servers'
with_traceback =
The above is a description of an error in a Python program. Here is
the original traceback:
Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/neutron/test_routers.py", line 52, in test_basic_router_behavior
image_name='cirros')
File "/contrail-test/common/base.py", line 281, in create_vm
**kwargs)
File "/contrail-test/common/base.py", line 254, in create_only_vm
vm_obj.setUp()
File "/contrail-test/fixtures/vm_test.py", line 193, in setUp
self.create()
File "/contrail-test/fixtures/vm_test.py", line 245, in create
fixed_ips=self.fixed_ips)
File "/contrail-test/fixtures/openstack.py", line 118, in create_vm
return self.nova_h.create_vm(vm_name=vm_name, image_name=image_name, vn_ids=vn_ids, **kwargs)
File "/contrail-test/fixtures/nova_test.py", line 611, in create_vm
min_count=count, max_count=count, userdata=userdata)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 846, in _boot
return_raw=return_raw, **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network 7ab2ba77-5a22-4ae8-8292-9ce1dbedd27e requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-33a50e53-7554-4aa9-94b8-6eb3e9982353)
2025-08-07 16:38:47,569 - DEBUG - No XMPP flaps were noticed during the test
2025-08-07 16:38:47,569 - INFO -
2025-08-07 16:38:47,569 - INFO - END TEST : test_basic_router_behavior : FAILED[0:00:05]
2025-08-07 16:38:47,569 - INFO - --------------------------------------------------------------------------------
2025-08-07 16:38:48,524 - INFO - Deleted project: ctest-TestRouters-35961750, ID : ec02b585-fca1-43cf-b7d3-347db443f2ad