diff options
| author | Zuul <zuul@review.opendev.org> | 2019-08-01 21:56:43 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2019-08-01 21:56:43 +0000 |
| commit | 6f60f833e87979a1fca066c352dbaf9bb9fd852d (patch) | |
| tree | 6654f24a2dc974ba8be51e172e927db276f078aa /openstackclient/network/v2 | |
| parent | 005a247b60af3153286cd95d91dc97c95e4fa049 (diff) | |
| parent | 68809fce5a1073659001a87aee4f9407affd5d0e (diff) | |
| download | python-openstackclient-6f60f833e87979a1fca066c352dbaf9bb9fd852d.tar.gz | |
Merge "openstack port create support --extra-dhcp-option"
Diffstat (limited to 'openstackclient/network/v2')
| -rw-r--r-- | openstackclient/network/v2/port.py | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py index d42fbb68..e6bfe853 100644 --- a/openstackclient/network/v2/port.py +++ b/openstackclient/network/v2/port.py @@ -280,6 +280,19 @@ def _convert_address_pairs(parsed_args): return ops +def _convert_extra_dhcp_options(parsed_args): + dhcp_options = [] + for opt in parsed_args.extra_dhcp_options: + option = {} + option['opt_name'] = opt['name'] + if 'value' in opt: + option['opt_value'] = opt['value'] + if 'ip-version' in opt: + option['ip_version'] = opt['ip-version'] + dhcp_options.append(option) + return dhcp_options + + class CreatePort(command.ShowOne): _description = _("Create a new port") @@ -350,8 +363,18 @@ class CreatePort(command.ShowOne): metavar='<name>', help=_("Name of this port") ) - # TODO(singhj): Add support for extended options: - # dhcp + parser.add_argument( + '--extra-dhcp-option', + metavar='name=<name>[,value=<value>,ip-version={4,6}]', + default=[], + action=parseractions.MultiKeyValueCommaAction, + dest='extra_dhcp_options', + required_keys=['name'], + optional_keys=['value', "ip-version"], + help=_('Extra DHCP options to be assigned to this port: ' + 'name=<name>[,value=<value>,ip-version={4,6}] ' + '(repeat option to set multiple extra DHCP options)')) + secgroups = parser.add_mutually_exclusive_group() secgroups.add_argument( '--security-group', @@ -425,6 +448,9 @@ class CreatePort(command.ShowOne): attrs['allowed_address_pairs'] = ( _convert_address_pairs(parsed_args)) + if parsed_args.extra_dhcp_options: + attrs["extra_dhcp_opts"] = _convert_extra_dhcp_options(parsed_args) + if parsed_args.qos_policy: attrs['qos_policy_id'] = client.find_qos_policy( parsed_args.qos_policy, ignore_missing=False).id |
