summaryrefslogtreecommitdiff
path: root/openstackclient/network/v2/network.py
diff options
context:
space:
mode:
authorPierre Hanselmann <pierre.hanselmann@gmail.com>2017-10-31 15:35:10 +0100
committerJens Harbott <j.harbott@x-ion.de>2018-04-23 08:37:27 +0000
commitb8754e15e7adc9a04587f67c83febaf49b64f18c (patch)
treedab7a03949dbfa5601639e677dbd580a23a3eb1a /openstackclient/network/v2/network.py
parentb59de7b8494ddbde3570780214378cdb2208c482 (diff)
downloadpython-openstackclient-b8754e15e7adc9a04587f67c83febaf49b64f18c.tar.gz
Add dns-domain support to Network object
Add "dns-domain" parameter to Network class. Also check backend extensions and send an error message in case of an argument (like dns-domain) is sent and the extension is missing (dns-integration in this case). Change-Id: I7303658c27d9b9f2d8381ccea0b29e96909cab54 Closes-Bug: 1633214 Partial-Bug: 1547736
Diffstat (limited to 'openstackclient/network/v2/network.py')
-rw-r--r--openstackclient/network/v2/network.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py
index d1c7f005..0fdf62c9 100644
--- a/openstackclient/network/v2/network.py
+++ b/openstackclient/network/v2/network.py
@@ -134,6 +134,9 @@ def _get_attrs_network(client_manager, parsed_args):
attrs['qos_policy_id'] = _qos_policy.id
if 'no_qos_policy' in parsed_args and parsed_args.no_qos_policy:
attrs['qos_policy_id'] = None
+ # Update DNS network options
+ if parsed_args.dns_domain:
+ attrs['dns_domain'] = parsed_args.dns_domain
return attrs
@@ -171,6 +174,13 @@ def _add_additional_network_options(parser):
dest='segmentation_id',
help=_("VLAN ID for VLAN networks or Tunnel ID for "
"GENEVE/GRE/VXLAN networks"))
+ parser.add_argument(
+ '--dns-domain',
+ metavar='<dns-domain>',
+ dest='dns_domain',
+ help=_("Set DNS domain for this network "
+ "(requires DNS integration extension)")
+ )
# TODO(sindhu): Use the SDK resource mapped attribute names once the
@@ -308,8 +318,10 @@ class CreateNetwork(common.NetworkAndComputeShowOne):
attrs['vlan_transparent'] = True
if parsed_args.no_transparent_vlan:
attrs['vlan_transparent'] = False
+ with common.check_missing_extension_if_error(
+ self.app.client_manager.network, attrs):
+ obj = client.create_network(**attrs)
- obj = client.create_network(**attrs)
# tags cannot be set when created, so tags need to be set later.
_tag.update_tags_for_set(client, obj, parsed_args)
display_columns, columns = _get_columns_network(obj)
@@ -690,7 +702,9 @@ class SetNetwork(command.Command):
attrs = _get_attrs_network(self.app.client_manager, parsed_args)
if attrs:
- client.update_network(obj, **attrs)
+ with common.check_missing_extension_if_error(
+ self.app.client_manager.network, attrs):
+ client.update_network(obj, **attrs)
# tags is a subresource and it needs to be updated separately.
_tag.update_tags_for_set(client, obj, parsed_args)