Add 'openstack server migrate (confirm|revert)' commands

While cold migration and resize are essentially the same operation under
the hood, meaning one could use the 'openstack server resize confirm'
and 'openstack server resize revert' commands instead, there is no
reason the operator needs to know this. Add these flags as syntactic
sugar to help simplify operators lives.

The help texts for both the 'openstack server resize' and 'openstack
server migrate' commands are updated to clarify the relationship between
the two operations.

Change-Id: I0cb6304c794bffaec785add9f7b8cf53ab28cacd
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
Stephen Finucane 2019-06-10 17:09:56 +01:00 committed by Dean Troyer
parent a15e4741fa
commit 609988ebac
3 changed files with 34 additions and 5 deletions

View File

@ -1555,7 +1555,15 @@ class LockServer(command.Command):
# then adding the groups doesn't seem to work
class MigrateServer(command.Command):
_description = _("Migrate server to different host")
_description = _("""Migrate server to different host.
A migrate operation is implemented as a resize operation using the same flavor
as the old server. This means that, like resize, migrate works by creating a
new server using the same flavor and copying the contents of the original disk
into a new one. As with resize, the migrate operation is a two-step process for
the user: the first step is to perform the migrate, and the second step is to
either confirm (verify) success and release the old server, or to declare a
revert to release the new server and restart the old one.""")
def get_parser(self, prog_name):
parser = super(MigrateServer, self).get_parser(prog_name)
@ -2159,10 +2167,10 @@ class ResizeServer(command.Command):
_description = _("""Scale server to a new flavor.
A resize operation is implemented by creating a new server and copying the
contents of the original disk into a new one. It is also a two-step process for
the user: the first is to perform the resize, the second is to either confirm
(verify) success and release the old server, or to declare a revert to release
the new server and restart the old one.""")
contents of the original disk into a new one. It is a two-step process for the
user: the first step is to perform the resize, and the second step is to either
confirm (verify) success and release the old server or to declare a revert to
release the new server and restart the old one.""")
def get_parser(self, prog_name):
parser = super(ResizeServer, self).get_parser(prog_name)
@ -2261,6 +2269,12 @@ Confirm (verify) success of resize operation and release the old server.""")
server.confirm_resize()
class MigrateConfirm(ResizeConfirm):
_description = _("""Confirm server migrate.
Confirm (verify) success of migrate operation and release the old server.""")
class ResizeRevert(command.Command):
_description = _("""Revert server resize.
@ -2286,6 +2300,13 @@ one.""")
server.revert_resize()
class MigrateRevert(ResizeRevert):
_description = _("""Revert server migrate.
Revert the migrate operation. Release the new server and restart the old
one.""")
class RestoreServer(command.Command):
_description = _("Restore server(s)")

View File

@ -0,0 +1,6 @@
---
features:
- |
Add ``server migrate confirm`` and ``server migrate revert`` commands.
These are aliases of the ``server resize confirm`` and ``server resize revert``
commands, respectively.

View File

@ -108,6 +108,8 @@ openstack.compute.v2 =
server_list = openstackclient.compute.v2.server:ListServer
server_lock = openstackclient.compute.v2.server:LockServer
server_migrate = openstackclient.compute.v2.server:MigrateServer
server_migrate_confirm = openstackclient.compute.v2.server:MigrateConfirm
server_migrate_revert = openstackclient.compute.v2.server:MigrateRevert
server_pause = openstackclient.compute.v2.server:PauseServer
server_reboot = openstackclient.compute.v2.server:RebootServer
server_rebuild = openstackclient.compute.v2.server:RebuildServer