diff options
author | Hervé Beraud <hberaud@redhat.com> | 2021-04-15 13:44:42 +0200 |
---|---|---|
committer | Daniel Bengtsson <dbengt@redhat.com> | 2021-04-22 12:31:48 +0200 |
commit | bb5e4cbeb973c6341bf51eea2ebe5d38366167e8 (patch) | |
tree | a1b54841832b596f19ca5efe2449c5d4d661a55c /oslo_config/cfg.py | |
parent | b38217691e3594c323d4a9d98a682e7acfec5a0a (diff) | |
download | oslo-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.py | 22 |
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 |