summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorHa Van Tu <tuhv@vn.fujitsu.com>2017-01-12 09:57:53 +0700
committerDean Troyer <dtroyer@gmail.com>2017-04-05 15:56:52 +0000
commit5ff2cfd042de7afc4323a3b306ff5be1882fba46 (patch)
tree9cb5fc568157e31c5ec01490ca56da89c0e51192 /openstackclient/network
parent65b61d3a9c08a43cc0746ac17fec00682a720913 (diff)
downloadpython-openstackclient-5ff2cfd042de7afc4323a3b306ff5be1882fba46.tar.gz
Add "qos-policy" option to "port create" & "port set"
This patch adds "qos-policy" option to "port create" command, and "qos-policy", "no-qos-policy" options to "port set" command and "qos-policy" option to "port unset". Change-Id: I78072e1ff0dd30a2e23a0fb833ce6ab5cf246016 Co-Authored-By: Nguyen Phuong An <AnNP@vn.fujitsu.com> Co-Authored-By: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com> Partial-Bug: #1612136 Partially-Implements: blueprint network-commands-options
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/v2/port.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py
index 9d598fab..3a32916b 100644
--- a/openstackclient/network/v2/port.py
+++ b/openstackclient/network/v2/port.py
@@ -155,6 +155,13 @@ def _get_attrs(client_manager, parsed_args):
if parsed_args.enable_port_security:
attrs['port_security_enabled'] = True
+ if 'no_qos_policy' in parsed_args and parsed_args.no_qos_policy:
+ attrs['qos_policy_id'] = None
+
+ if parsed_args.qos_policy:
+ attrs['qos_policy_id'] = client_manager.network.find_qos_policy(
+ parsed_args.qos_policy, ignore_missing=False).id
+
return attrs
@@ -337,7 +344,7 @@ class CreatePort(command.ShowOne):
help=_("Name of this port")
)
# TODO(singhj): Add support for extended options:
- # qos,dhcp
+ # dhcp
secgroups = parser.add_mutually_exclusive_group()
secgroups.add_argument(
'--security-group',
@@ -353,6 +360,11 @@ class CreatePort(command.ShowOne):
action='store_true',
help=_("Associate no security groups with this port")
)
+ parser.add_argument(
+ '--qos-policy',
+ metavar='<qos-policy>',
+ help=_("Attach QoS policy to this port (name or ID)")
+ )
port_security = parser.add_mutually_exclusive_group()
port_security.add_argument(
'--enable-port-security',
@@ -403,6 +415,9 @@ class CreatePort(command.ShowOne):
attrs['allowed_address_pairs'] = (
_convert_address_pairs(parsed_args))
+ if parsed_args.qos_policy:
+ attrs['qos_policy_id'] = client.find_qos_policy(
+ parsed_args.qos_policy, ignore_missing=False).id
obj = client.create_port(**attrs)
display_columns, columns = _get_columns(obj)
data = utils.get_item_properties(obj, columns, formatters=_formatters)
@@ -620,6 +635,11 @@ class SetPort(command.Command):
"to overwrite the current binding:profile information.")
)
parser.add_argument(
+ '--qos-policy',
+ metavar='<qos-policy>',
+ help=_("Attach QoS policy to this port (name or ID)")
+ )
+ parser.add_argument(
'port',
metavar="<port>",
help=_("Port to modify (name or ID)")
@@ -675,8 +695,8 @@ class SetPort(command.Command):
client = self.app.client_manager.network
_prepare_fixed_ips(self.app.client_manager, parsed_args)
- attrs = _get_attrs(self.app.client_manager, parsed_args)
obj = client.find_port(parsed_args.port, ignore_missing=False)
+ attrs = _get_attrs(self.app.client_manager, parsed_args)
if parsed_args.no_binding_profile:
attrs['binding:profile'] = {}
@@ -794,6 +814,12 @@ class UnsetPort(command.Command):
"[,mac-address=<mac-address>] (repeat option to set "
"multiple allowed-address pairs)")
)
+ parser.add_argument(
+ '--qos-policy',
+ action='store_true',
+ default=False,
+ help=_("Remove the QoS policy attached to the port")
+ )
return parser
@@ -843,6 +869,8 @@ class UnsetPort(command.Command):
msg = _("Port does not contain allowed-address-pair %s") % addr
raise exceptions.CommandError(msg)
attrs['allowed_address_pairs'] = tmp_addr_pairs
+ if parsed_args.qos_policy:
+ attrs['qos_policy_id'] = None
if attrs:
client.update_port(obj, **attrs)