summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorChen <dstbtgagt@foxmail.com>2018-05-15 15:25:40 +0800
committerDean Troyer <dtroyer@gmail.com>2019-05-17 20:56:45 +0000
commitc77a9621beaf7748e5ccfecb3ac37fa9602c5bfe (patch)
tree37c2429f9c7b3949065c01730bfd7970aed01cb1 /openstackclient/compute
parent0a2b01fb40624af8c5b611843c120f024255d083 (diff)
downloadpython-openstackclient-c77a9621beaf7748e5ccfecb3ac37fa9602c5bfe.tar.gz
Compute: Add description support for server
This patch adds functionality to configure server's description with: 1 server create 2 server set 3 server unset 4 server rebuild Change-Id: Ic06d97b29e51828b29d7ac5172645c288e4ada9e Story: 2002005 Task: 19640
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 4f672428..4bf3b90a 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -503,6 +503,12 @@ class CreateServer(command.ShowOne):
help=_('User data file to serve from the metadata server'),
)
parser.add_argument(
+ '--description',
+ metavar='<description>',
+ help=_('Set description for the server (supported by '
+ '--os-compute-api-version 2.19 or above)'),
+ )
+ parser.add_argument(
'--availability-zone',
metavar='<zone-name>',
help=_('Select an availability zone for the server'),
@@ -712,6 +718,12 @@ class CreateServer(command.ShowOne):
"exception": e}
)
+ if parsed_args.description:
+ if compute_client.api_version < api_versions.APIVersion("2.19"):
+ msg = _("Description is not supported for "
+ "--os-compute-api-version less than 2.19")
+ raise exceptions.CommandError(msg)
+
block_device_mapping_v2 = []
if volume:
block_device_mapping_v2 = [{'uuid': volume,
@@ -872,6 +884,9 @@ class CreateServer(command.ShowOne):
scheduler_hints=hints,
config_drive=config_drive)
+ if parsed_args.description:
+ boot_kwargs['description'] = parsed_args.description
+
LOG.debug('boot_args: %s', boot_args)
LOG.debug('boot_kwargs: %s', boot_kwargs)
@@ -1530,6 +1545,12 @@ class RebuildServer(command.ShowOne):
'(repeat option to set multiple values)'),
)
parser.add_argument(
+ '--description',
+ metavar='<description>',
+ help=_('New description for the server (supported by '
+ '--os-compute-api-version 2.19 or above'),
+ )
+ parser.add_argument(
'--wait',
action='store_true',
help=_('Wait for rebuild to complete'),
@@ -1557,6 +1578,12 @@ class RebuildServer(command.ShowOne):
kwargs = {}
if parsed_args.property:
kwargs['meta'] = parsed_args.property
+ if parsed_args.description:
+ if server.api_version < api_versions.APIVersion("2.19"):
+ msg = _("Description is not supported for "
+ "--os-compute-api-version less than 2.19")
+ raise exceptions.CommandError(msg)
+ kwargs['description'] = parsed_args.description
server = server.rebuild(image, parsed_args.password, **kwargs)
if parsed_args.wait:
@@ -1968,6 +1995,12 @@ class SetServer(command.Command):
choices=['active', 'error'],
help=_('New server state (valid value: active, error)'),
)
+ parser.add_argument(
+ '--description',
+ metavar='<description>',
+ help=_('New server description (supported by '
+ '--os-compute-api-version 2.19 or above)'),
+ )
return parser
def take_action(self, parsed_args):
@@ -1999,6 +2032,13 @@ class SetServer(command.Command):
msg = _("Passwords do not match, password unchanged")
raise exceptions.CommandError(msg)
+ if parsed_args.description:
+ if server.api_version < api_versions.APIVersion("2.19"):
+ msg = _("Description is not supported for "
+ "--os-compute-api-version less than 2.19")
+ raise exceptions.CommandError(msg)
+ server.update(description=parsed_args.description)
+
class ShelveServer(command.Command):
_description = _("Shelve server(s)")
@@ -2358,6 +2398,13 @@ class UnsetServer(command.Command):
help=_('Property key to remove from server '
'(repeat option to remove multiple values)'),
)
+ parser.add_argument(
+ '--description',
+ dest='description',
+ action='store_true',
+ help=_('Unset server description (supported by '
+ '--os-compute-api-version 2.19 or above)'),
+ )
return parser
def take_action(self, parsed_args):
@@ -2373,6 +2420,16 @@ class UnsetServer(command.Command):
parsed_args.property,
)
+ if parsed_args.description:
+ if compute_client.api_version < api_versions.APIVersion("2.19"):
+ msg = _("Description is not supported for "
+ "--os-compute-api-version less than 2.19")
+ raise exceptions.CommandError(msg)
+ compute_client.servers.update(
+ server,
+ description="",
+ )
+
class UnshelveServer(command.Command):
_description = _("Unshelve server(s)")