summaryrefslogtreecommitdiff
path: root/oslo_config/cfg.py
diff options
context:
space:
mode:
authorHervé Beraud <hberaud@redhat.com>2021-04-15 13:44:42 +0200
committerDaniel Bengtsson <dbengt@redhat.com>2021-04-22 12:31:48 +0200
commitbb5e4cbeb973c6341bf51eea2ebe5d38366167e8 (patch)
treea1b54841832b596f19ca5efe2449c5d4d661a55c /oslo_config/cfg.py
parentb38217691e3594c323d4a9d98a682e7acfec5a0a (diff)
downloadoslo-config-bb5e4cbeb973c6341bf51eea2ebe5d38366167e8.tar.gz
Adding the missing HostDomain config option
The ``HostDomain`` config type have been added few months ago [1] however the config option have been forgotten and this new type isn't importable. When we try to import this type without defining a new related cfg option we get the following issue: ``` AttributeError: module 'oslo_config.cfg' has no attribute 'HostDomain' ``` These changes allow us to import this new type and allow us to use it in our configs: ``` >>> from oslo_config import cfg >>> foo = cfg.HostDomain('foo') >>> foo.type.__call__("1") ... During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "~/oslo.config/oslo_config/types.py", line 893, in __call__ raise ValueError( ValueError: 1 is not a valid host address >>> foo.type.__call__("host_name") 'host_name' ``` Also properly initialize HostDomain because The HostDomain class wasn't calling super in it's __init__() method, which resulted in the type_name not being set properly for instances of that class. [1] https://opendev.org/openstack/oslo.config/commit/6480356928c9ae6169ea1e5a5b5f1df3d6e0dc75 Change-Id: Ie947803f61ba0ef080018e0447de894a400d7975 Closes-Bug: 1924283
Diffstat (limited to 'oslo_config/cfg.py')
-rw-r--r--oslo_config/cfg.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/oslo_config/cfg.py b/oslo_config/cfg.py
index 39a9878..35f0cfb 100644
--- a/oslo_config/cfg.py
+++ b/oslo_config/cfg.py
@@ -1175,6 +1175,28 @@ class HostAddressOpt(Opt):
**kwargs)
+class HostDomainOpt(Opt):
+
+ r"""Option for either an IP or a hostname.
+
+ Like HostAddress with the support of _ character.
+
+ Option with ``type`` :class:`oslo_config.types.HostDomain`
+
+ :param name: the option's name
+ :param version: one of either ``4``, ``6``, or ``None`` to specify
+ either version.
+ :param \*\*kwargs: arbitrary keyword arguments passed to :class:`Opt`
+
+ .. versionadded:: 8.6
+ """
+
+ def __init__(self, name, version=None, **kwargs):
+ super(HostDomainOpt, self).__init__(name,
+ type=types.HostDomain(version),
+ **kwargs)
+
+
class URIOpt(Opt):
r"""Opt with URI type