summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorjichenjc <jichenjc@cn.ibm.com>2016-02-20 06:32:13 +0800
committerjichenjc <jichenjc@cn.ibm.com>2016-02-23 13:43:37 +0800
commit6902a288f8e403cfa143e5c8946ad39bcb2dc396 (patch)
treec8a87d95314ef551743fe27cc10979e6a25e300f /openstackclient
parent43957d602b70ac718f0eab0fa30be5a4f20a5233 (diff)
downloadpython-openstackclient-6902a288f8e403cfa143e5c8946ad39bcb2dc396.tar.gz
[compute] Support restore server
Server in soft-delete state can be restored, add this command. Change-Id: Id9d7246f89ae65273505f36dcb664996534ae986
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/compute/v2/server.py22
-rw-r--r--openstackclient/tests/compute/v2/test_server.py20
2 files changed, 42 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 4cb94822..7088dd4c 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -1273,6 +1273,28 @@ class ResizeServer(command.Command):
compute_client.servers.revert_resize(server)
+class RestoreServer(command.Command):
+ """Restore server(s)"""
+
+ def get_parser(self, prog_name):
+ parser = super(RestoreServer, self).get_parser(prog_name)
+ parser.add_argument(
+ 'server',
+ metavar='<server>',
+ nargs='+',
+ help=_('Server(s) to restore (name or ID)'),
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ compute_client = self.app.client_manager.compute
+ for server in parsed_args.server:
+ utils.find_resource(
+ compute_client.servers,
+ server
+ ).restore()
+
+
class ResumeServer(command.Command):
"""Resume server(s)"""
diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py
index d379b173..722a51a2 100644
--- a/openstackclient/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/compute/v2/test_server.py
@@ -998,6 +998,26 @@ class TestServerResize(TestServer):
)
+class TestServerRestore(TestServer):
+
+ def setUp(self):
+ super(TestServerRestore, self).setUp()
+
+ # Get the command object to test
+ self.cmd = server.RestoreServer(self.app, None)
+
+ # Set methods to be tested.
+ self.methods = {
+ 'restore': None,
+ }
+
+ def test_server_restore_one_server(self):
+ self.run_method_with_servers('restore', 1)
+
+ def test_server_restore_multi_servers(self):
+ self.run_method_with_servers('restore', 3)
+
+
class TestServerResume(TestServer):
def setUp(self):