Allow restore command with name param
when we try to restore an instance, it's already deleted state, so we need to add 'delete=True' as default to restore command, otherwise, the search function can't find the instance whose state is deleted with the given name Change-Id: I81cdc46897d76333452069a691824264ad504518 Closes-Bug: 1534644
This commit is contained in:
parent
51504e713e
commit
6791a8be69
|
@ -380,6 +380,10 @@ class ManagerWithFind(Manager):
|
|||
all_tenants = kwargs['all_tenants']
|
||||
list_kwargs['search_opts']['all_tenants'] = all_tenants
|
||||
searches = [(k, v) for k, v in searches if k != 'all_tenants']
|
||||
if "deleted" in kwargs:
|
||||
deleted = kwargs['deleted']
|
||||
list_kwargs['search_opts']['deleted'] = deleted
|
||||
searches = [(k, v) for k, v in searches if k != 'deleted']
|
||||
|
||||
listing = self.list(**list_kwargs)
|
||||
|
||||
|
|
|
@ -1252,6 +1252,14 @@ class ShellTest(utils.TestCase):
|
|||
self.run_command('restore sample-server')
|
||||
self.assert_called('POST', '/servers/1234/action', {'restore': None})
|
||||
|
||||
def test_restore_withname(self):
|
||||
self.run_command('restore sample-server')
|
||||
self.assert_called('GET',
|
||||
'/servers?deleted=True&name=sample-server', pos=0)
|
||||
self.assert_called('GET', '/servers/1234', pos=1)
|
||||
self.assert_called('POST', '/servers/1234/action', {'restore': None},
|
||||
pos=2)
|
||||
|
||||
def test_delete_two_with_two_existent(self):
|
||||
self.run_command('delete 1234 5678')
|
||||
self.assert_called('DELETE', '/servers/1234', pos=-5)
|
||||
|
|
|
@ -25,4 +25,4 @@ def do_force_delete(cs, args):
|
|||
@cliutils.arg('server', metavar='<server>', help='Name or ID of server.')
|
||||
def do_restore(cs, args):
|
||||
"""Restore a soft-deleted server."""
|
||||
utils.find_resource(cs.servers, args.server).restore()
|
||||
utils.find_resource(cs.servers, args.server, deleted=True).restore()
|
||||
|
|
Loading…
Reference in New Issue