Gate HostIPContext on OpenStack release
The original implementation in [0] relied on the template content appearing at the ``Stein`` release. With the addition of sharing of this value on the subordinate relation in [1] we need this gating in the context too. 0: Iee73164358745628a4b8658614608bc872771fd1 1: I75cbc5eb97cf3603ffa5a9a49670411288d90520 Change-Id: I2b252fd3512c07bb7bccd388809b0514ebcd5bde Closes-Bug: #1845303
This commit is contained in:
parent
32d7c17b7f
commit
d0028a7dcd
|
@ -45,6 +45,7 @@ from charmhelpers.contrib.openstack.context import (
|
||||||
NeutronAPIContext,
|
NeutronAPIContext,
|
||||||
parse_data_port_mappings
|
parse_data_port_mappings
|
||||||
)
|
)
|
||||||
|
import charmhelpers.contrib.openstack.utils as os_utils
|
||||||
from charmhelpers.core.unitdata import kv
|
from charmhelpers.core.unitdata import kv
|
||||||
|
|
||||||
IPTABLES_HYBRID = 'iptables_hybrid'
|
IPTABLES_HYBRID = 'iptables_hybrid'
|
||||||
|
@ -609,6 +610,8 @@ class HostIPContext(context.OSContextGenerator):
|
||||||
# Use the address used in the neutron-plugin subordinate relation
|
# Use the address used in the neutron-plugin subordinate relation
|
||||||
host_ip = get_relation_ip('neutron-plugin')
|
host_ip = get_relation_ip('neutron-plugin')
|
||||||
|
|
||||||
|
cmp_release = os_utils.CompareOpenStackReleases(
|
||||||
|
os_utils.os_release('neutron-common', base='icehouse'))
|
||||||
# the contents of the Neutron ``host`` configuration option is
|
# the contents of the Neutron ``host`` configuration option is
|
||||||
# referenced throughout a OpenStack deployment, an example being
|
# referenced throughout a OpenStack deployment, an example being
|
||||||
# Neutron port bindings. It's value should not change after a
|
# Neutron port bindings. It's value should not change after a
|
||||||
|
@ -617,7 +620,8 @@ class HostIPContext(context.OSContextGenerator):
|
||||||
# We do want to migrate to using FQDNs so we enable this for new
|
# We do want to migrate to using FQDNs so we enable this for new
|
||||||
# installations.
|
# installations.
|
||||||
db = kv()
|
db = kv()
|
||||||
if db.get('install_version', 0) >= 1910 and host_ip:
|
if (db.get('install_version', 0) >= 1910 and cmp_release >= 'stein' and
|
||||||
|
host_ip):
|
||||||
fqdn = socket.getfqdn(host_ip)
|
fqdn = socket.getfqdn(host_ip)
|
||||||
if '.' in fqdn:
|
if '.' in fqdn:
|
||||||
# only populate the value if getfqdn() is able to find an
|
# only populate the value if getfqdn() is able to find an
|
||||||
|
|
|
@ -987,10 +987,13 @@ class TestHostIPContext(CharmTestCase):
|
||||||
super(TestHostIPContext, self).setUp(context, TO_PATCH)
|
super(TestHostIPContext, self).setUp(context, TO_PATCH)
|
||||||
self.config.side_effect = self.test_config.get
|
self.config.side_effect = self.test_config.get
|
||||||
|
|
||||||
|
@patch.object(context.os_utils, 'os_release')
|
||||||
@patch.object(context.socket, 'getfqdn')
|
@patch.object(context.socket, 'getfqdn')
|
||||||
@patch.object(context, 'kv')
|
@patch.object(context, 'kv')
|
||||||
@patch.object(context, 'get_relation_ip')
|
@patch.object(context, 'get_relation_ip')
|
||||||
def test_host_ip_context(self, _get_relation_ip, _kv, _getfqdn):
|
def test_host_ip_context(self, _get_relation_ip, _kv, _getfqdn,
|
||||||
|
_os_release):
|
||||||
|
_os_release.return_value = 'stein'
|
||||||
_kv.return_value = {'install_version': 0}
|
_kv.return_value = {'install_version': 0}
|
||||||
_getfqdn.return_value = 'some'
|
_getfqdn.return_value = 'some'
|
||||||
ctxt = context.HostIPContext()
|
ctxt = context.HostIPContext()
|
||||||
|
@ -1001,3 +1004,6 @@ class TestHostIPContext(CharmTestCase):
|
||||||
_kv.return_value = {'install_version': 1910}
|
_kv.return_value = {'install_version': 1910}
|
||||||
ctxt = context.HostIPContext()
|
ctxt = context.HostIPContext()
|
||||||
self.assertDictEqual({'host': 'some.hostname'}, ctxt())
|
self.assertDictEqual({'host': 'some.hostname'}, ctxt())
|
||||||
|
_os_release.return_value = 'rocky'
|
||||||
|
ctxt = context.HostIPContext()
|
||||||
|
self.assertDictEqual({}, ctxt())
|
||||||
|
|
Loading…
Reference in New Issue