2025-08-25 20:23:24,053 - INFO - Domain Default found not creating
2025-08-25 20:23:24,185 - INFO - Project ctest-TestRouters-29326613 not found, creating it
2025-08-25 20:23:24,663 - INFO - Created Project:ctest-TestRouters-29326613, ID : 351fd960-29a8-48bc-a511-b97b35614126
2025-08-25 20:23:26,022 - INFO - ================================================================================
2025-08-25 20:23:26,022 - INFO - STARTING TEST : test_basic_router_behavior
2025-08-25 20:23:26,022 - 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-25 20:23:26,152 - DEBUG - Nothing to compare xmpp stats {'10.0.0.242': {'10.20.0.17': '0'}} with
2025-08-25 20:23:26,152 - INFO - Initial checks done. Running the testcase now
2025-08-25 20:23:26,152 - INFO -
2025-08-25 20:23:26,742 - DEBUG - Response for create_network : {'network': {'id': 'fba5d949-35d0-4185-83b0-ae52e8321532', 'name': 'ctest-vn1-56232949', 'tenant_id': '351fd96029a848bca511b97b35614126', 'project_id': '351fd96029a848bca511b97b35614126', 'admin_state_up': True, 'shared': False, 'status': 'ACTIVE', 'router:external': False, 'mtu': 0, 'subnets': [], 'fq_name': ['default-domain', 'ctest-TestRouters-29326613', 'ctest-vn1-56232949'], 'port_security_enabled': True, 'description': ''}}
2025-08-25 20:23:26,893 - ERROR - Neutron Exception while creating subnet for vn with id fba5d949-35d0-4185-83b0-ae52e8321532
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-f5d595f3-85b6-4e4e-9380-3774954a4346']
2025-08-25 20:23:26,912 - INFO - Created VN ctest-vn1-56232949
2025-08-25 20:23:26,964 - DEBUG - VN ctest-vn1-56232949 UUID is fba5d949-35d0-4185-83b0-ae52e8321532
2025-08-25 20:23:27,306 - DEBUG - Response for create_network : {'network': {'id': 'b0ae5a82-7cb5-4e5a-b588-ca1041e2b40e', 'name': 'ctest-vn2-16914999', 'tenant_id': '351fd96029a848bca511b97b35614126', 'project_id': '351fd96029a848bca511b97b35614126', 'admin_state_up': True, 'shared': False, 'status': 'ACTIVE', 'router:external': False, 'mtu': 0, 'subnets': [], 'fq_name': ['default-domain', 'ctest-TestRouters-29326613', 'ctest-vn2-16914999'], 'port_security_enabled': True, 'description': ''}}
2025-08-25 20:23:27,491 - ERROR - Neutron Exception while creating subnet for vn with id b0ae5a82-7cb5-4e5a-b588-ca1041e2b40e
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-e93d7324-8d9c-400d-a2aa-28eb0f4757fc']
2025-08-25 20:23:27,508 - INFO - Created VN ctest-vn2-16914999
2025-08-25 20:23:27,560 - DEBUG - VN ctest-vn2-16914999 UUID is b0ae5a82-7cb5-4e5a-b588-ca1041e2b40e
2025-08-25 20:23:27,780 - DEBUG - Services list from nova: [, , ]
2025-08-25 20:23:27,869 - DEBUG - Image by name cirros not found
2025-08-25 20:23:27,870 - DEBUG - Installing image cirros
2025-08-25 20:23:27,870 - 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-25 20:23:27,870 - DEBUG - Image build path http://nexus.opensdn.io/repository///images/converts//cirros-0.3.0-x86_64-disk.vmdk.gz
2025-08-25 20:23:27,870 - DEBUG - Download image from web http://nexus.opensdn.io/repository///images/converts//cirros-0.3.0-x86_64-disk.vmdk.gz
2025-08-25 20:23:27,882 - 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-25 20:23:27,961 - DEBUG - Image has been downloaded to /contrail-test/images/cirros-0.3.0-x86_64-disk.vmdk.gz
2025-08-25 20:23:27,961 - DEBUG - Unzip image
2025-08-25 20:23:27,961 - 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-25 20:23:28,087 - DEBUG - Try to create image in user context
2025-08-25 20:23:28,302 - DEBUG - Image has been created in user context
2025-08-25 20:23:28,303 - DEBUG - Image download (local=True) (proxy=None): Execute cmd: rm -f /contrail-test/images/cirros-0.3.0-x86_64-disk.vmdk
2025-08-25 20:23:28,316 - DEBUG - Downloaded image has been removed
2025-08-25 20:23:28,338 - DEBUG - Uploaded image status = active
2025-08-25 20:23:29,237 - INFO - Deleting VN ctest-vn2-16914999
2025-08-25 20:23:29,336 - DEBUG - Response for deleting network ()
2025-08-25 20:23:29,336 - INFO - Deleting VN ctest-vn1-56232949
2025-08-25 20:23:29,436 - DEBUG - Response for deleting network ()
2025-08-25 20:23:29,565 - ERROR - BadRequest
Python 3.6.8: /usr/bin/python3
Mon Aug 25 20:23:29 2025
A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
/contrail-test/tcutils/wrappers.py in wrapper(self=, *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-17589628', image_name='cirros', port_ids=None, **kwargs={})
279 image_name=image_name,
280 port_ids=port_ids,
281 **kwargs)
282 if cleanup:
283 self.addCleanup(vm_fixture.cleanUp)
kwargs = {}
/contrail-test/common/base.py in create_only_vm(cls=, vn_fixture=, vm_name='ctest-vn1-vm1-17589628', image_name='cirros', **kwargs={'port_ids': None})
252 image_name=image_name,
253 **kwargs)
254 vm_obj.setUp()
255 return vm_obj
256 # end create_only_vm
vm_obj =
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-17589628', image_name='cirros', vn_objs=[{'network': {'id': 'fba5d949-35d0-4185-83b0-ae52...port_security_enabled': True, 'description': ''}}], **kwargs={'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '351fd960-29a8-48bc-a511-b97b35614126', 'sg_ids': [], 'userdata': None, 'zone': None})
116 except Exception as e:
117 vn_ids.append(vn.uuid) #For the case of VcenterVN obnect in vrouter gw case
118 return self.nova_h.create_vm(vm_name=vm_name, image_name=image_name, vn_ids=vn_ids, **kwargs)
119
120 def delete_vm(self, vm_obj, **kwargs):
self =
self.nova_h =
self.nova_h.create_vm = >
vm_name = 'ctest-vn1-vm1-17589628'
image_name = 'cirros'
vn_ids = ['fba5d949-35d0-4185-83b0-ae52e8321532']
kwargs = {'count': 1, 'fixed_ips': [], 'flavor': 'contrail_flavor_tiny', 'node_name': None, 'port_ids': None, 'project_uuid': '351fd960-29a8-48bc-a511-b97b35614126', 'sg_ids': [], 'userdata': None, 'zone': None}
/contrail-test/fixtures/nova_test.py in create_vm(self=, project_uuid='351fd960-29a8-48bc-a511-b97b35614126', image_name='cirros', vm_name='ctest-vn1-vm1-17589628', vn_ids=['fba5d949-35d0-4185-83b0-ae52e8321532'], node_name='cn-jenkins-deploy-platform-ansible-os-3927-1', sg_ids=[], count=1, userdata=None, flavor=, port_ids=None, fixed_ips=[], zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1')
609 config_drive=config_drive,
610 key_name=self.key, availability_zone=zone,
611 min_count=count, max_count=count, userdata=userdata)
612 vm_objs = self.get_vm_list(name_pattern=vm_name,
613 project_id=project_uuid)
min_count undefined
count = 1
max_count undefined
userdata = None
/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in create(self=, name='ctest-vn1-vm1-17589628', image=, flavor=, meta=None, files=None, reservation_id=False, min_count=1, max_count=1, security_groups=[], userdata=None, key_name='ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'fba5d949-35d0-4185-83b0-ae52e8321532'}], scheduler_hints=None, config_drive=False, disk_config=None, admin_pass=None, access_ip_v4=None, access_ip_v6=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
1479
1480 response_key = "server" if not reservation_id else "reservation_id"
1481 return self._boot(response_key, *boot_args, **boot_kwargs)
1482
1483 @api_versions.wraps("2.0", "2.18")
self =
self._boot = >
response_key = 'server'
boot_args = ['ctest-vn1-vm1-17589628', , ]
boot_kwargs = {'access_ip_v4': None, 'access_ip_v6': None, 'admin_pass': None, 'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'config_drive': False, 'disk_config': None, 'files': None, 'host': None, 'hypervisor_hostname': None, 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', ...}
/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py in _boot(self=, response_key='server', name='ctest-vn1-vm1-17589628', 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-29326613ctest-TestRouters-29326613key1', availability_zone='nova:cn-jenkins-deploy-platform-ansible-os-3927-1', block_device_mapping=None, block_device_mapping_v2=None, nics=[{'net-id': 'fba5d949-35d0-4185-83b0-ae52e8321532'}], scheduler_hints=None, config_drive=False, admin_pass=None, disk_config=None, access_ip_v4=None, access_ip_v6=None, description=None, tags=None, trusted_image_certificates=None, host=None, hypervisor_hostname=None, **kwargs={})
844
845 return self._create('/servers', body, response_key,
846 return_raw=return_raw, **kwargs)
847
848 def get(self, server):
return_raw = False
kwargs = {}
/usr/local/lib/python3.6/site-packages/novaclient/base.py in _create(self=, url='/servers', body={'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}, response_key='server', return_raw=False, obj_class=None, **kwargs={})
362 obj_class=None, **kwargs):
363 self.run_hooks('modify_body_for_create', body, **kwargs)
364 resp, body = self.api.client.post(url, body=body)
365 if return_raw:
366 return self.convert_into_with_meta(body[response_key], resp)
resp undefined
body = {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}
self =
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-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}})
390
391 def post(self, url, **kwargs):
392 return self.request(url, 'POST', **kwargs)
393
394 def put(self, url, **kwargs):
self =
self.request = >
url = '/servers'
kwargs = {'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}}
/usr/local/lib/python3.6/site-packages/novaclient/client.py in request(self=, url='/servers', method='POST', **kwargs={'body': {'server': {'availability_zone': 'nova:cn-jenkins-deploy-platform-ansible-os-3927-1', 'flavorRef': '0a52a21d-4dac-40b5-8960-d8f8e89a2511', 'imageRef': '22bccf91-284e-4fde-9d22-ab5c93477ffb', 'key_name': 'ctest_ctest-TestRouters-29326613ctest-TestRouters-29326613key1', 'max_count': 1, 'min_count': 1, 'name': 'ctest-vn1-vm1-17589628', 'networks': [{'uuid': 'fba5d949-35d0-4185-83b0-ae52e8321532'}]}}, 'headers': {'Accept': 'application/json', 'Content-Type': 'application/json', 'User-Agent': 'python-novaclient', 'X-Auth-Token': 'gAAAAABorMY9jqQ9yEX99CERuUfAbyQMfZVqCDO2tU7GlP4P...ZWhkuKLFQA6eQAZjaBltozzHNpnPxWLHkE7OUas-MOkpDqy_s'}})
76 # api_versions.check_headers(resp, self.api_version)
77 if raise_exc and resp.status_code >= 400:
78 raise exceptions.from_response(resp, body, url, method)
79
80 return resp, body
global exceptions =
exceptions.from_response =
resp =
body = {'badRequest': {'code': 400, 'message': 'Network fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on.'}}
url = '/servers'
method = 'POST'
BadRequest: Network fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-9bfb5945-e8a6-489f-8965-65ceff9fdfc2)
__cause__ = None
__class__ =
__context__ = None
__delattr__ =
__dict__ = {'code': 400, 'details': None, 'message': 'Network fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on.', 'method': 'POST', 'request_id': 'req-9bfb5945-e8a6-489f-8965-65ceff9fdfc2', 'url': '/servers'}
__dir__ =
__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 fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on.'
method = 'POST'
request_id = 'req-9bfb5945-e8a6-489f-8965-65ceff9fdfc2'
url = '/servers'
with_traceback =
The above is a description of an error in a Python program. Here is
the original traceback:
Traceback (most recent call last):
File "/contrail-test/tcutils/wrappers.py", line 80, in wrapper
result = function(self, *args, **kwargs)
File "/contrail-test/scripts/neutron/test_routers.py", line 52, in test_basic_router_behavior
image_name='cirros')
File "/contrail-test/common/base.py", line 281, in create_vm
**kwargs)
File "/contrail-test/common/base.py", line 254, in create_only_vm
vm_obj.setUp()
File "/contrail-test/fixtures/vm_test.py", line 193, in setUp
self.create()
File "/contrail-test/fixtures/vm_test.py", line 245, in create
fixed_ips=self.fixed_ips)
File "/contrail-test/fixtures/openstack.py", line 118, in create_vm
return self.nova_h.create_vm(vm_name=vm_name, image_name=image_name, vn_ids=vn_ids, **kwargs)
File "/contrail-test/fixtures/nova_test.py", line 611, in create_vm
min_count=count, max_count=count, userdata=userdata)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 1481, in create
return self._boot(response_key, *boot_args, **boot_kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/v2/servers.py", line 846, in _boot
return_raw=return_raw, **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/base.py", line 364, in _create
resp, body = self.api.client.post(url, body=body)
File "/usr/local/lib/python3.6/site-packages/keystoneauth1/adapter.py", line 392, in post
return self.request(url, 'POST', **kwargs)
File "/usr/local/lib/python3.6/site-packages/novaclient/client.py", line 78, in request
raise exceptions.from_response(resp, body, url, method)
novaclient.exceptions.BadRequest: Network fba5d949-35d0-4185-83b0-ae52e8321532 requires a subnet in order to boot instances on. (HTTP 400) (Request-ID: req-9bfb5945-e8a6-489f-8965-65ceff9fdfc2)
2025-08-25 20:23:29,573 - DEBUG - No XMPP flaps were noticed during the test
2025-08-25 20:23:29,573 - INFO -
2025-08-25 20:23:29,573 - INFO - END TEST : test_basic_router_behavior : FAILED[0:00:03]
2025-08-25 20:23:29,573 - INFO - --------------------------------------------------------------------------------
2025-08-25 20:23:30,285 - INFO - Deleted project: ctest-TestRouters-29326613, ID : 351fd960-29a8-48bc-a511-b97b35614126