diff options
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/aggregate.py | 4 | ||||
| -rw-r--r-- | openstackclient/compute/v2/console.py | 13 | ||||
| -rw-r--r-- | openstackclient/compute/v2/flavor.py | 24 | ||||
| -rw-r--r-- | openstackclient/compute/v2/keypair.py | 3 | ||||
| -rw-r--r-- | openstackclient/compute/v2/server.py | 36 | ||||
| -rw-r--r-- | openstackclient/compute/v2/server_group.py | 9 | ||||
| -rw-r--r-- | openstackclient/compute/v2/service.py | 3 |
7 files changed, 58 insertions, 34 deletions
diff --git a/openstackclient/compute/v2/aggregate.py b/openstackclient/compute/v2/aggregate.py index 76ba5cc6..7f9161a9 100644 --- a/openstackclient/compute/v2/aggregate.py +++ b/openstackclient/compute/v2/aggregate.py @@ -128,8 +128,8 @@ class DeleteAggregate(command.Command): except Exception as e: result += 1 LOG.error(_("Failed to delete aggregate with name or " - "ID '%(aggregate)s': %(e)s") - % {'aggregate': a, 'e': e}) + "ID '%(aggregate)s': %(e)s"), + {'aggregate': a, 'e': e}) if result > 0: total = len(parsed_args.aggregate) diff --git a/openstackclient/compute/v2/console.py b/openstackclient/compute/v2/console.py index 358df501..25f92108 100644 --- a/openstackclient/compute/v2/console.py +++ b/openstackclient/compute/v2/console.py @@ -126,18 +126,7 @@ class ShowConsoleURL(command.ShowOne): parsed_args.server, ) - data = None - if parsed_args.url_type in ['novnc', 'xvpvnc']: - data = server.get_vnc_console(parsed_args.url_type) - if parsed_args.url_type in ['spice-html5']: - data = server.get_spice_console(parsed_args.url_type) - if parsed_args.url_type in ['rdp-html5']: - data = server.get_rdp_console(parsed_args.url_type) - if parsed_args.url_type in ['serial']: - data = server.get_serial_console(parsed_args.url_type) - if parsed_args.url_type in ['webmks']: - data = server.get_mks_console() - + data = server.get_console_url(parsed_args.url_type) if not data: return ({}, {}) diff --git a/openstackclient/compute/v2/flavor.py b/openstackclient/compute/v2/flavor.py index 7cd22ed7..009c9bd1 100644 --- a/openstackclient/compute/v2/flavor.py +++ b/openstackclient/compute/v2/flavor.py @@ -171,7 +171,7 @@ class CreateFlavor(command.ShowOne): except Exception as e: msg = _("Failed to add project %(project)s access to " "flavor: %(e)s") - LOG.error(msg % {'project': parsed_args.project, 'e': e}) + LOG.error(msg, {'project': parsed_args.project, 'e': e}) if parsed_args.property: try: flavor.set_keys(parsed_args.property) @@ -208,8 +208,7 @@ class DeleteFlavor(command.Command): except Exception as e: result += 1 LOG.error(_("Failed to delete flavor with name or " - "ID '%(flavor)s': %(e)s") - % {'flavor': f, 'e': e}) + "ID '%(flavor)s': %(e)s"), {'flavor': f, 'e': e}) if result > 0: total = len(parsed_args.flavor) @@ -313,6 +312,14 @@ class SetFlavor(command.Command): help=_("Flavor to modify (name or ID)") ) parser.add_argument( + "--no-property", + action="store_true", + help=_("Remove all properties from this flavor " + "(specify both --no-property and --property" + " to remove the current properties before setting" + " new properties.)"), + ) + parser.add_argument( "--property", metavar="<key=value>", action=parseractions.KeyValueAction, @@ -336,6 +343,15 @@ class SetFlavor(command.Command): flavor = _find_flavor(compute_client, parsed_args.flavor) result = 0 + key_list = [] + if parsed_args.no_property: + try: + for key in flavor.get_keys().keys(): + key_list.append(key) + flavor.unset_keys(key_list) + except Exception as e: + LOG.error(_("Failed to clear flavor property: %s"), e) + result += 1 if parsed_args.property: try: flavor.set_keys(parsed_args.property) @@ -395,7 +411,7 @@ class ShowFlavor(command.ShowOne): except Exception as e: msg = _("Failed to get access projects list " "for flavor '%(flavor)s': %(e)s") - LOG.error(msg % {'flavor': parsed_args.flavor, 'e': e}) + LOG.error(msg, {'flavor': parsed_args.flavor, 'e': e}) flavor = resource_flavor._info.copy() flavor.update({ diff --git a/openstackclient/compute/v2/keypair.py b/openstackclient/compute/v2/keypair.py index a63cbfec..2a8524d6 100644 --- a/openstackclient/compute/v2/keypair.py +++ b/openstackclient/compute/v2/keypair.py @@ -106,8 +106,7 @@ class DeleteKeypair(command.Command): except Exception as e: result += 1 LOG.error(_("Failed to delete key with name " - "'%(name)s': %(e)s") - % {'name': n, 'e': e}) + "'%(name)s': %(e)s"), {'name': n, 'e': e}) if result > 0: total = len(parsed_args.name) diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index f9f0df4f..d33c631a 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -402,7 +402,7 @@ class CreateServer(command.ShowOne): parser.add_argument( '--nic', metavar="<net-id=net-uuid,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr," - "port-id=port-uuid>", + "port-id=port-uuid,auto,none>", action='append', default=[], help=_("Create a NIC on the server. " @@ -414,7 +414,8 @@ class CreateServer(command.ShowOne): "v6-fixed-ip: IPv6 fixed address for NIC (optional), " "none: (v2.37+) no network is attached, " "auto: (v2.37+) the compute service will automatically " - "allocate a network."), + "allocate a network. Specifying a --nic of auto or none " + "cannot be used with any other --nic value."), ) parser.add_argument( '--hint', @@ -547,14 +548,21 @@ class CreateServer(command.ShowOne): block_device_mapping_v2.append(mapping) nics = [] - if parsed_args.nic in ('auto', 'none'): - nics = [parsed_args.nic] - else: - for nic_str in parsed_args.nic: + auto_or_none = False + for nic_str in parsed_args.nic: + # Handle the special auto/none cases + if nic_str in ('auto', 'none'): + auto_or_none = True + nics.append(nic_str) + else: nic_info = {"net-id": "", "v4-fixed-ip": "", "v6-fixed-ip": "", "port-id": ""} - nic_info.update(dict(kv_str.split("=", 1) - for kv_str in nic_str.split(","))) + try: + nic_info.update(dict(kv_str.split("=", 1) + for kv_str in nic_str.split(","))) + except ValueError: + msg = _('Invalid --nic argument %s.') % nic_str + raise exceptions.CommandError(msg) if bool(nic_info["net-id"]) == bool(nic_info["port-id"]): msg = _("either net-id or port-id should be specified " "but not both") @@ -581,6 +589,18 @@ class CreateServer(command.ShowOne): raise exceptions.CommandError(msg) nics.append(nic_info) + if nics: + if auto_or_none: + if len(nics) > 1: + msg = _('Specifying a --nic of auto or none cannot ' + 'be used with any other --nic value.') + raise exceptions.CommandError(msg) + nics = nics[0] + else: + # Default to empty list if nothing was specified, let nova side to + # decide the default behavior. + nics = [] + hints = {} for hint in parsed_args.hint: key, _sep, value = hint.partition('=') diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py index 6bcfc6ae..c6e2161f 100644 --- a/openstackclient/compute/v2/server_group.py +++ b/openstackclient/compute/v2/server_group.py @@ -55,10 +55,11 @@ class CreateServerGroup(command.ShowOne): parser.add_argument( '--policy', metavar='<policy>', - action='append', - required=True, + choices=['affinity', 'anti-affinity'], + default='affinity', help=_("Add a policy to <name> " - "(repeat option to add multiple policies)") + "('affinity' or 'anti-affinity', " + "default to 'affinity')") ) return parser @@ -67,7 +68,7 @@ class CreateServerGroup(command.ShowOne): info = {} server_group = compute_client.server_groups.create( name=parsed_args.name, - policies=parsed_args.policy) + policies=[parsed_args.policy]) info.update(server_group._info) columns = _get_columns(info) diff --git a/openstackclient/compute/v2/service.py b/openstackclient/compute/v2/service.py index 9c384f05..7b18c2e5 100644 --- a/openstackclient/compute/v2/service.py +++ b/openstackclient/compute/v2/service.py @@ -50,8 +50,7 @@ class DeleteService(command.Command): except Exception as e: result += 1 LOG.error(_("Failed to delete compute service with " - "ID '%(service)s': %(e)s") - % {'service': s, 'e': e}) + "ID '%(service)s': %(e)s"), {'service': s, 'e': e}) if result > 0: total = len(parsed_args.service) |
