diff options
| author | Zuul <zuul@review.opendev.org> | 2020-08-19 15:58:33 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2020-08-19 15:58:33 +0000 |
| commit | 13e7d43b9777dd0719df5fb89ec7946ea761f5cf (patch) | |
| tree | d4a36c43d97d2aac37e594ea60df9f2c051eeabb /openstackclient/network/common.py | |
| parent | 3bcfe983c70c0bc6217b5e685edb379b5d54640c (diff) | |
| parent | e7a8687a2c87a507ce25e042014d6a918e95d035 (diff) | |
| download | python-openstackclient-stable/rocky.tar.gz | |
Merge "Add dns-domain support to Network object" into stable/rockystable/rocky
Diffstat (limited to 'openstackclient/network/common.py')
| -rw-r--r-- | openstackclient/network/common.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/openstackclient/network/common.py b/openstackclient/network/common.py index 37bf1406..d22b2caa 100644 --- a/openstackclient/network/common.py +++ b/openstackclient/network/common.py @@ -12,6 +12,7 @@ # import abc +import contextlib import logging import openstack.exceptions @@ -24,6 +25,30 @@ from openstackclient.i18n import _ LOG = logging.getLogger(__name__) +_required_opt_extensions_map = { + 'allowed_address_pairs': 'allowed-address-pairs', + 'dns_domain': 'dns-integration', + 'dns_name': 'dns-integration', + 'extra_dhcp_opts': 'extra_dhcp_opt', + 'qos_policy_id': 'qos', + 'security_groups': 'security-groups', +} + + +@contextlib.contextmanager +def check_missing_extension_if_error(client_manager, attrs): + # If specified option requires extension, then try to + # find out if it exists. If it does not exist, + # then an exception with the appropriate message + # will be thrown from within client.find_extension + try: + yield + except openstack.exceptions.HttpException: + for opt, ext in _required_opt_extensions_map.items(): + if opt in attrs: + client_manager.find_extension(ext, ignore_missing=False) + raise + @six.add_metaclass(abc.ABCMeta) class NetworkAndComputeCommand(command.Command): |
