Merge "Add Caracal Support"
This commit is contained in:
commit
013da845f3
28
.zuul.yaml
28
.zuul.yaml
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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'
|
||||||
|
@ -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)]]
|
||||||
|
@ -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
|
||||||
|
2
tox.ini
2
tox.ini
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user