Merge "Add Caracal Support"

This commit is contained in:
Zuul 2024-11-15 01:38:06 +00:00 committed by Gerrit Code Review
commit 013da845f3
6 changed files with 35 additions and 33 deletions

View File

@ -15,40 +15,40 @@
nodeset: ubuntu-focal nodeset: ubuntu-focal
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py38: - openstack-tox-py38:
nodeset: ubuntu-focal nodeset: ubuntu-focal
# Ignore py38 results until the gate is fixed # Ignore py38 results until the gate is fixed
voting: false voting: false
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py39: - openstack-tox-py39:
nodeset: ubuntu-focal nodeset: ubuntu-focal
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py310: - openstack-tox-py310:
nodeset: ubuntu-jammy nodeset: ubuntu-jammy
# Ignore py310 results until the gate is fixed # Ignore py310 results until the gate is fixed
voting: false voting: false
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py311: - openstack-tox-py311:
nodeset: ubuntu-jammy nodeset: ubuntu-jammy
# Ignore py311 results until the gate is fixed # Ignore py311 results until the gate is fixed
voting: false voting: false
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py312: - openstack-tox-py312:
nodeset: ubuntu-jammy nodeset: ubuntu-noble
# Ignore py311 results until the gate is fixed # Ignore py311 results until the gate is fixed
voting: false voting: false
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- legacy-group-based-policy-dsvm-functional: - legacy-group-based-policy-dsvm-functional:
voting: false voting: false
- legacy-group-based-policy-dsvm-aim: - legacy-group-based-policy-dsvm-aim:
@ -61,37 +61,37 @@
nodeset: ubuntu-focal nodeset: ubuntu-focal
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py38: - openstack-tox-py38:
nodeset: ubuntu-focal nodeset: ubuntu-focal
# Ignore py38 results until the gate is fixed # Ignore py38 results until the gate is fixed
voting: false voting: false
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py39: - openstack-tox-py39:
nodeset: ubuntu-focal nodeset: ubuntu-focal
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py310: - openstack-tox-py310:
nodeset: ubuntu-jammy nodeset: ubuntu-jammy
# Ignore py310 results until the gate is fixed # Ignore py310 results until the gate is fixed
voting: false voting: false
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py311: - openstack-tox-py311:
nodeset: ubuntu-jammy nodeset: ubuntu-jammy
# Ignore py311 results until the gate is fixed # Ignore py311 results until the gate is fixed
voting: false voting: false
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1
- openstack-tox-py312: - openstack-tox-py312:
nodeset: ubuntu-jammy nodeset: ubuntu-noble
# Ignore py311 results until the gate is fixed # Ignore py311 results until the gate is fixed
voting: false voting: false
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/2023.2 override-checkout: stable/2024.1

View File

@ -43,11 +43,11 @@ if [[ $ENABLE_NFP = True ]]; then
# Make sure that your public interface is not attached to any bridge. # Make sure that your public interface is not attached to any bridge.
PUBLIC_INTERFACE= PUBLIC_INTERFACE=
enable_plugin neutron-fwaas http://opendev.org/openstack/neutron-fwaas.git stable/2023.2 enable_plugin neutron-fwaas http://opendev.org/openstack/neutron-fwaas.git stable/2024.1
enable_plugin neutron-lbaas https://opendev.org/openstack/neutron-lbaas.git stable/2023.2 enable_plugin neutron-lbaas https://opendev.org/openstack/neutron-lbaas.git stable/2024.1
enable_plugin neutron https://opendev.org/openstack/neutron.git stable/2023.2 enable_plugin neutron https://opendev.org/openstack/neutron.git stable/2024.1
enable_plugin neutron-vpnaas https://opendev.org/openstack/neutron-vpnaas.git stable/2023.2 enable_plugin neutron-vpnaas https://opendev.org/openstack/neutron-vpnaas.git stable/2024.1
enable_plugin octavia https://opendev.org/openstack/octavia.git stable/2023.2 enable_plugin octavia https://opendev.org/openstack/octavia.git stable/2024.1
fi fi
fi fi

View File

@ -24,6 +24,5 @@ DEVICE_OWNER_SVI_PORT = 'apic:svi'
IPV4_ANY_CIDR = '0.0.0.0/0' IPV4_ANY_CIDR = '0.0.0.0/0'
IPV4_METADATA_CIDR = '169.254.0.0/16' IPV4_METADATA_CIDR = '169.254.0.0/16'
PROMISCUOUS_TYPES = [n_constants.DEVICE_OWNER_DHCP, PROMISCUOUS_TYPES = [n_constants.DEVICE_OWNER_DHCP]
n_constants.DEVICE_OWNER_LOADBALANCER]
PROMISCUOUS_SUFFIX = 'promiscuous' PROMISCUOUS_SUFFIX = 'promiscuous'

View File

@ -446,13 +446,14 @@ class ApicAimTestCase(test_address_scope.AddressScopeTestCase,
req = self.new_create_request('ports', data, self.fmt, as_admin=True) req = self.new_create_request('ports', data, self.fmt, as_admin=True)
return self.deserialize(self.fmt, req.get_response(self.api)) return self.deserialize(self.fmt, req.get_response(self.api))
def _bind_port_to_host(self, port_id, host, **kwargs): def _bind_port_to_host(self, port_id, host, as_admin=False,
as_service=True, **kwargs):
data = {'port': {'binding:host_id': host, data = {'port': {'binding:host_id': host,
'device_owner': 'compute:', 'device_owner': 'compute:',
'device_id': 'someid'}} 'device_id': 'someid'}}
data['port'].update(kwargs) data['port'].update(kwargs)
req = self.new_update_request('ports', data, port_id, req = self.new_update_request('ports', data, port_id,
self.fmt, as_admin=True) self.fmt, as_admin=as_admin, as_service=as_service)
return self.deserialize(self.fmt, req.get_response(self.api)) return self.deserialize(self.fmt, req.get_response(self.api))
def _bind_dhcp_port_to_host(self, port_id, host): def _bind_dhcp_port_to_host(self, port_id, host):
@ -3985,7 +3986,8 @@ class TestAimMapping(ApicAimTestCase):
self.fmt, net_id, fixed_ips=fixed_ips, self.fmt, net_id, fixed_ips=fixed_ips,
tenant_id=project)['port'] tenant_id=project)['port']
port_id = port['id'] port_id = port['id']
port = self._bind_port_to_host(port_id, 'host1')['port'] port = self._bind_port_to_host(port_id, 'host1', as_admin=True,
as_service=False)['port']
port['dns_name'] = '' port['dns_name'] = ''
return net_id, subnet_id, port return net_id, subnet_id, port
@ -5975,7 +5977,7 @@ class TestPortBinding(ApicAimTestCase):
data['binding'].update(kwargs) data['binding'].update(kwargs)
binding_resource = 'ports/%s/bindings' % port_id binding_resource = 'ports/%s/bindings' % port_id
binding_req = self.new_create_request(binding_resource, data, fmt, binding_req = self.new_create_request(binding_resource, data, fmt,
as_admin=True) as_service=True)
return binding_req.get_response(self.api) return binding_req.get_response(self.api)
def _update_port_binding(self, fmt, port_id, host, **kwargs): def _update_port_binding(self, fmt, port_id, host, **kwargs):
@ -6004,7 +6006,7 @@ class TestPortBinding(ApicAimTestCase):
return self._check_code_and_serialize(response, raw_response) return self._check_code_and_serialize(response, raw_response)
def _delete_port_binding(self, port_id, host): def _delete_port_binding(self, port_id, host):
response = self._req( response = self._service_req(
'DELETE', 'ports', fmt=self.fmt, id=port_id, 'DELETE', 'ports', fmt=self.fmt, id=port_id,
subresource='bindings', sub_id=host).get_response(self.api) subresource='bindings', sub_id=host).get_response(self.api)
return response return response
@ -8774,7 +8776,8 @@ class TestExtensionAttributes(ApicAimTestCase):
**erspan_config, as_admin=True)['port'] **erspan_config, as_admin=True)['port']
self.assertEqual(erspan_config.get('apic:erspan_config'), self.assertEqual(erspan_config.get('apic:erspan_config'),
p2['apic:erspan_config']) p2['apic:erspan_config'])
self._bind_port_to_host(p2['id'], 'host1') self._bind_port_to_host(p2['id'], 'host1', as_admin=True,
as_service=False)
source_name = p2['id'] + '-both' source_name = p2['id'] + '-both'
dest_name = '192.168.0.10' + '-' + '1023' dest_name = '192.168.0.10' + '-' + '1023'
source_resources[0].append(aim_resource.SpanVsourceGroup( source_resources[0].append(aim_resource.SpanVsourceGroup(
@ -8817,7 +8820,7 @@ class TestExtensionAttributes(ApicAimTestCase):
span_vdest_group_names=[res.name for res in dest_resources[0]])]) span_vdest_group_names=[res.name for res in dest_resources[0]])])
check_erspan_config(aim_ctx, source_resources, dest_resources) check_erspan_config(aim_ctx, source_resources, dest_resources)
# Unbuind the second port, and verify that no resources are left. # Unbuind the second port, and verify that no resources are left.
self._bind_port_to_host(p2['id'], '') self._bind_port_to_host(p2['id'], '', as_admin=True, as_service=False)
source_resources = [[], [], []] source_resources = [[], [], []]
dest_resources = [ dest_resources = [
[], [], [], [aim_resource.InfraAccBundleGroup(name=host1_pg)]] [], [], [], [aim_resource.InfraAccBundleGroup(name=host1_pg)]]

View File

@ -4,19 +4,19 @@
hacking>=6.0.1 # Apache-2.0 hacking>=6.0.1 # Apache-2.0
# Since version numbers for these are specified in # Since version numbers for these are specified in
# https://releases.openstack.org/constraints/upper/2023.2, they cannot be # https://releases.openstack.org/constraints/upper/2024.1, they cannot be
# referenced as GIT URLs. # referenced as GIT URLs.
neutron neutron
python-heatclient python-heatclient
python-keystoneclient python-keystoneclient
-e git+https://opendev.org/openstack/networking-sfc.git@stable/2023.2#egg=networking-sfc -e git+https://opendev.org/openstack/networking-sfc.git@stable/2024.1#egg=networking-sfc
-e git+https://github.com/noironetworks/apicapi.git@master#egg=apicapi -e git+https://github.com/noironetworks/apicapi.git@master#egg=apicapi
-e git+https://github.com/noironetworks/python-opflex-agent.git@stable/2023.2#egg=neutron-opflex-agent -e git+https://github.com/noironetworks/python-opflex-agent.git@stable/2024.1#egg=neutron-opflex-agent
-e git+https://opendev.org/x/python-group-based-policy-client.git@stable/2023.2#egg=python-group-based-policy-client -e git+https://opendev.org/x/python-group-based-policy-client.git@stable/2024.1#egg=python-group-based-policy-client
coverage!=4.4,>=4.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0
flake8-import-order==0.12 # LGPLv3 flake8-import-order==0.12 # LGPLv3

View File

@ -24,7 +24,7 @@ usedevelop = True
install_command = install_command =
pip install {opts} {packages} pip install {opts} {packages}
deps = deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2023.2} -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.1}
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
whitelist_externals = sh whitelist_externals = sh