Fix use of Neutron port ``device_owner`` field
Adapt functional test bundles to test with DVR. Closes-Bug: #1813931 Change-Id: I61466dceb22d4dc769716a4ab1a738525ce67518
This commit is contained in:
parent
42e8dda01e
commit
52af8d8d6d
|
@ -31,6 +31,8 @@ from keystoneauth1 import exceptions as keystone_exceptions
|
|||
from neutronclient.v2_0 import client as neutron_client
|
||||
from novaclient import client as nova_client
|
||||
|
||||
import neutron_lib.constants
|
||||
|
||||
import charm.openstack.octavia as octavia # for constants
|
||||
|
||||
import charmhelpers.core as ch_core
|
||||
|
@ -213,7 +215,21 @@ def get_hm_port(identity_service, local_unit_name, local_unit_address):
|
|||
# before it is created in the local units OVSDB
|
||||
'admin_state_up': False,
|
||||
'binding:host_id': socket.gethostname(),
|
||||
'device_owner': 'Octavia:health-mgr',
|
||||
# NOTE(fnordahl): device_owner has special meaning
|
||||
# for Neutron [0], and things may break if set to
|
||||
# an arbritary value. Using a value known by Neutron
|
||||
# is_dvr_serviced() function [1] gets us the correct
|
||||
# rules appiled to the port to allow IPv6 Router
|
||||
# Advertisement packets through LP: #1813931
|
||||
# 0: https://github.com/openstack/neutron/blob/
|
||||
# 916347b996684c82b29570cd2962df3ea57d4b16/
|
||||
# neutron/plugins/ml2/drivers/openvswitch/
|
||||
# agent/ovs_dvr_neutron_agent.py#L592
|
||||
# 1: https://github.com/openstack/neutron/blob/
|
||||
# 50308c03c960bd6e566f328a790b8e05f5e92ead/
|
||||
# neutron/common/utils.py#L200
|
||||
'device_owner': (
|
||||
neutron_lib.constants.DEVICE_OWNER_LOADBALANCERV2),
|
||||
'security_groups': [
|
||||
health_secgrp['id'],
|
||||
],
|
||||
|
|
|
@ -28,8 +28,6 @@ relations:
|
|||
- neutron-api:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- glance:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-gateway:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- nova-cloud-controller:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
|
@ -40,15 +38,17 @@ relations:
|
|||
- nova-cloud-controller:neutron-api
|
||||
- - neutron-api:neutron-load-balancer
|
||||
- octavia:neutron-api
|
||||
- - neutron-gateway:quantum-network-service
|
||||
- nova-cloud-controller:quantum-network-service
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch:neutron-plugin-api
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- nova-compute:neutron-plugin
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch-octavia:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch-octavia:neutron-plugin-api
|
||||
- - neutron-openvswitch-octavia:neutron-plugin
|
||||
- octavia:neutron-openvswitch
|
||||
- - hacluster-octavia:ha
|
||||
- octavia:ha
|
||||
|
@ -83,14 +83,19 @@ applications:
|
|||
debug: True
|
||||
flat-network-providers: physnet1
|
||||
neutron-security-groups: True
|
||||
neutron-gateway:
|
||||
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||
num_units: 1
|
||||
options:
|
||||
openstack-origin: cloud:bionic-rocky
|
||||
bridge-mappings: physnet1:br-ex
|
||||
debug: True
|
||||
enable-dvr: True
|
||||
neutron-openvswitch:
|
||||
series: bionic
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
options:
|
||||
debug: True
|
||||
enable-local-dhcp-and-metadata: True
|
||||
use-dvr-snat: True
|
||||
prevent-arp-spoofing: False
|
||||
firewall-driver: openvswitch
|
||||
bridge-mappings: physnet1:br-ex
|
||||
neutron-openvswitch-octavia:
|
||||
series: bionic
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
|
@ -121,8 +126,8 @@ applications:
|
|||
charm: ../../../octavia
|
||||
num_units: 3
|
||||
options:
|
||||
debug: True
|
||||
openstack-origin: cloud:bionic-rocky
|
||||
debug: True
|
||||
spare-pool-size: 2
|
||||
loadbalancer-topology: 'ACTIVE_STANDBY'
|
||||
vip: 'ADD YOUR VIP HERE'
|
||||
|
@ -139,3 +144,4 @@ applications:
|
|||
charm: cs:~openstack-charmers-next/octavia-diskimage-retrofit
|
||||
options:
|
||||
amp-image-tag: 'octavia-amphora'
|
||||
retrofit-uca-pocket: rocky
|
||||
|
|
|
@ -28,8 +28,6 @@ relations:
|
|||
- neutron-api:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- glance:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-gateway:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- nova-cloud-controller:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
|
@ -40,15 +38,17 @@ relations:
|
|||
- nova-cloud-controller:neutron-api
|
||||
- - neutron-api:neutron-load-balancer
|
||||
- octavia:neutron-api
|
||||
- - neutron-gateway:quantum-network-service
|
||||
- nova-cloud-controller:quantum-network-service
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch:neutron-plugin-api
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- nova-compute:neutron-plugin
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch-octavia:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch-octavia:neutron-plugin-api
|
||||
- - neutron-openvswitch-octavia:neutron-plugin
|
||||
- octavia:neutron-openvswitch
|
||||
- - glance-simplestreams-sync:juju-info
|
||||
- octavia-diskimage-retrofit:juju-info
|
||||
|
@ -81,14 +81,19 @@ applications:
|
|||
debug: True
|
||||
flat-network-providers: physnet1
|
||||
neutron-security-groups: True
|
||||
neutron-gateway:
|
||||
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||
num_units: 1
|
||||
options:
|
||||
openstack-origin: cloud:bionic-rocky
|
||||
bridge-mappings: physnet1:br-ex
|
||||
debug: True
|
||||
enable-dvr: True
|
||||
neutron-openvswitch:
|
||||
series: bionic
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
options:
|
||||
debug: True
|
||||
enable-local-dhcp-and-metadata: True
|
||||
use-dvr-snat: True
|
||||
prevent-arp-spoofing: False
|
||||
firewall-driver: openvswitch
|
||||
bridge-mappings: physnet1:br-ex
|
||||
neutron-openvswitch-octavia:
|
||||
series: bionic
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
|
@ -116,8 +121,8 @@ applications:
|
|||
charm: ../../../octavia
|
||||
num_units: 3
|
||||
options:
|
||||
debug: True
|
||||
openstack-origin: cloud:bionic-rocky
|
||||
debug: True
|
||||
spare-pool-size: 2
|
||||
loadbalancer-topology: 'ACTIVE_STANDBY'
|
||||
rabbitmq-server:
|
||||
|
@ -133,3 +138,4 @@ applications:
|
|||
charm: cs:~openstack-charmers-next/octavia-diskimage-retrofit
|
||||
options:
|
||||
amp-image-tag: 'octavia-amphora'
|
||||
retrofit-uca-pocket: rocky
|
||||
|
|
|
@ -28,8 +28,6 @@ relations:
|
|||
- neutron-api:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- glance:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-gateway:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- nova-cloud-controller:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
|
@ -40,15 +38,17 @@ relations:
|
|||
- nova-cloud-controller:neutron-api
|
||||
- - neutron-api:neutron-load-balancer
|
||||
- octavia:neutron-api
|
||||
- - neutron-gateway:quantum-network-service
|
||||
- nova-cloud-controller:quantum-network-service
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch:neutron-plugin-api
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- nova-compute:neutron-plugin
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch-octavia:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch-octavia:neutron-plugin-api
|
||||
- - neutron-openvswitch-octavia:neutron-plugin
|
||||
- octavia:neutron-openvswitch
|
||||
- - hacluster-octavia:ha
|
||||
- octavia:ha
|
||||
|
@ -83,14 +83,19 @@ applications:
|
|||
debug: True
|
||||
flat-network-providers: physnet1
|
||||
neutron-security-groups: True
|
||||
neutron-gateway:
|
||||
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||
num_units: 1
|
||||
options:
|
||||
openstack-origin: cloud:bionic-stein
|
||||
bridge-mappings: physnet1:br-ex
|
||||
debug: True
|
||||
enable-dvr: True
|
||||
neutron-openvswitch:
|
||||
series: bionic
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
options:
|
||||
debug: True
|
||||
enable-local-dhcp-and-metadata: True
|
||||
use-dvr-snat: True
|
||||
prevent-arp-spoofing: False
|
||||
firewall-driver: openvswitch
|
||||
bridge-mappings: physnet1:br-ex
|
||||
neutron-openvswitch-octavia:
|
||||
series: bionic
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
|
@ -121,8 +126,8 @@ applications:
|
|||
charm: ../../../octavia
|
||||
num_units: 3
|
||||
options:
|
||||
debug: True
|
||||
openstack-origin: cloud:bionic-stein
|
||||
debug: True
|
||||
spare-pool-size: 2
|
||||
loadbalancer-topology: 'ACTIVE_STANDBY'
|
||||
vip: 'ADD YOUR VIP HERE'
|
||||
|
|
|
@ -28,8 +28,6 @@ relations:
|
|||
- neutron-api:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- glance:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-gateway:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- nova-cloud-controller:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
|
@ -40,15 +38,17 @@ relations:
|
|||
- nova-cloud-controller:neutron-api
|
||||
- - neutron-api:neutron-load-balancer
|
||||
- octavia:neutron-api
|
||||
- - neutron-gateway:quantum-network-service
|
||||
- nova-cloud-controller:quantum-network-service
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch:neutron-plugin-api
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- nova-compute:neutron-plugin
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch-octavia:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch-octavia:neutron-plugin-api
|
||||
- - neutron-openvswitch-octavia:neutron-plugin
|
||||
- octavia:neutron-openvswitch
|
||||
- - glance-simplestreams-sync:juju-info
|
||||
- octavia-diskimage-retrofit:juju-info
|
||||
|
@ -81,14 +81,19 @@ applications:
|
|||
debug: True
|
||||
flat-network-providers: physnet1
|
||||
neutron-security-groups: True
|
||||
neutron-gateway:
|
||||
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||
num_units: 1
|
||||
options:
|
||||
openstack-origin: cloud:bionic-stein
|
||||
bridge-mappings: physnet1:br-ex
|
||||
debug: True
|
||||
enable-dvr: True
|
||||
neutron-openvswitch:
|
||||
series: bionic
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
options:
|
||||
debug: True
|
||||
enable-local-dhcp-and-metadata: True
|
||||
use-dvr-snat: True
|
||||
prevent-arp-spoofing: False
|
||||
firewall-driver: openvswitch
|
||||
bridge-mappings: physnet1:br-ex
|
||||
neutron-openvswitch-octavia:
|
||||
series: bionic
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
|
@ -116,8 +121,8 @@ applications:
|
|||
charm: ../../../octavia
|
||||
num_units: 3
|
||||
options:
|
||||
debug: True
|
||||
openstack-origin: cloud:bionic-stein
|
||||
debug: True
|
||||
spare-pool-size: 2
|
||||
loadbalancer-topology: 'ACTIVE_STANDBY'
|
||||
rabbitmq-server:
|
||||
|
|
|
@ -28,8 +28,6 @@ relations:
|
|||
- neutron-api:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- glance:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-gateway:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
- nova-cloud-controller:amqp
|
||||
- - rabbitmq-server:amqp
|
||||
|
@ -40,15 +38,17 @@ relations:
|
|||
- nova-cloud-controller:neutron-api
|
||||
- - neutron-api:neutron-load-balancer
|
||||
- octavia:neutron-api
|
||||
- - neutron-gateway:quantum-network-service
|
||||
- nova-cloud-controller:quantum-network-service
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch:neutron-plugin-api
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- nova-compute:neutron-plugin
|
||||
- - neutron-openvswitch:neutron-plugin
|
||||
- - rabbitmq-server:amqp
|
||||
- neutron-openvswitch-octavia:amqp
|
||||
- - neutron-api:neutron-plugin-api
|
||||
- neutron-openvswitch-octavia:neutron-plugin-api
|
||||
- - neutron-openvswitch-octavia:neutron-plugin
|
||||
- octavia:neutron-openvswitch
|
||||
- - glance-simplestreams-sync:juju-info
|
||||
- octavia-diskimage-retrofit:juju-info
|
||||
|
@ -76,13 +76,19 @@ applications:
|
|||
debug: True
|
||||
flat-network-providers: physnet1
|
||||
neutron-security-groups: True
|
||||
neutron-gateway:
|
||||
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||
num_units: 1
|
||||
options:
|
||||
bridge-mappings: physnet1:br-ex
|
||||
debug: True
|
||||
enable-dvr: True
|
||||
neutron-openvswitch:
|
||||
series: disco
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
options:
|
||||
debug: True
|
||||
enable-local-dhcp-and-metadata: True
|
||||
use-dvr-snat: True
|
||||
prevent-arp-spoofing: False
|
||||
firewall-driver: openvswitch
|
||||
bridge-mappings: physnet1:br-ex
|
||||
neutron-openvswitch-octavia:
|
||||
series: disco
|
||||
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||
num_units: 0
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
charm_name: octavia
|
||||
gate_bundles:
|
||||
- bionic-stein
|
||||
- bionic-stein-ha
|
||||
- bionic-rocky-ha
|
||||
smoke_bundles:
|
||||
- bionic-stein
|
||||
|
@ -8,8 +8,6 @@ comment: |
|
|||
Holding the ``disco-stein`` bundle pending LP: #1824112
|
||||
The `bionic-rocky-lxd` bundle currently fails due to a bug in LXD.
|
||||
https://github.com/lxc/lxd/issues/4947
|
||||
Holding the ``cosmic-rocky-lxd`` bundle awaiting required changes to CI.
|
||||
Holding the ``cosmic-rocky-ha`` bundle due to it consitently timing out atm.
|
||||
dev_bundles:
|
||||
- disco-stein
|
||||
- bionic-rocky-lxd
|
||||
|
@ -27,6 +25,7 @@ configure:
|
|||
- zaza.openstack.charm_tests.nova.setup.create_flavors
|
||||
- zaza.openstack.charm_tests.nova.setup.manage_ssh_key
|
||||
- zaza.openstack.charm_tests.neutron.setup.basic_overcloud_network
|
||||
- zaza.openstack.charm_tests.octavia.setup.centralized_fip_network
|
||||
- zaza.openstack.charm_tests.octavia.setup.prepare_payload_instance
|
||||
- zaza.openstack.charm_tests.octavia.setup.prepare_payload_instance
|
||||
comment: |
|
||||
|
|
|
@ -2,3 +2,5 @@ keystoneauth1
|
|||
pbr
|
||||
python-novaclient
|
||||
python-neutronclient
|
||||
neutron_lib
|
||||
pytest-runner
|
||||
|
|
|
@ -29,8 +29,11 @@ neutronclient = mock.MagicMock()
|
|||
sys.modules['charms.leadership'] = charms.leadership
|
||||
keystoneauth1 = mock.MagicMock()
|
||||
novaclient = mock.MagicMock()
|
||||
neutron_lib = mock.MagicMock()
|
||||
sys.modules['charms.leadership'] = charms.leadership
|
||||
sys.modules['keystoneauth1'] = keystoneauth1
|
||||
sys.modules['novaclient'] = novaclient
|
||||
sys.modules['neutronclient'] = neutronclient
|
||||
sys.modules['neutronclient.v2_0'] = neutronclient.v2_0
|
||||
sys.modules['neutron_lib'] = neutron_lib
|
||||
sys.modules['neutron_lib.constants'] = neutron_lib.constants
|
||||
|
|
|
@ -143,6 +143,8 @@ class TestAPICrud(test_utils.PatchHelper):
|
|||
self.patch('subprocess.check_output', 'check_output')
|
||||
self.patch('charms.reactive.set_flag', 'set_flag')
|
||||
identity_service = mock.MagicMock()
|
||||
self.patch_object(api_crud, 'neutron_lib')
|
||||
self.neutron_lib.constants.DEVICE_OWNER_LOADBALANCERV2 = 'fakeowner'
|
||||
result = api_crud.get_hm_port(identity_service,
|
||||
'fake-unit-name',
|
||||
'192.0.2.42')
|
||||
|
@ -157,7 +159,7 @@ class TestAPICrud(test_utils.PatchHelper):
|
|||
'port': {
|
||||
'admin_state_up': False,
|
||||
'binding:host_id': 'fakehostname',
|
||||
'device_owner': 'Octavia:health-mgr',
|
||||
'device_owner': 'fakeowner',
|
||||
'security_groups': ['fake-secgrp-uuid'],
|
||||
'name': 'octavia-health-manager-'
|
||||
'fake-unit-name-listen-port',
|
||||
|
|
Loading…
Reference in New Issue