Merge "Add reset_state api for compute"
This commit is contained in:
@@ -435,6 +435,19 @@ class Proxy(proxy2.BaseProxy):
|
||||
server = self._get_resource(_server.Server, server)
|
||||
server.change_password(self.session, new_password)
|
||||
|
||||
def reset_server_state(self, server, state):
|
||||
"""Reset the state of server
|
||||
|
||||
:param server: The server can be either the ID of a server or a
|
||||
:class:`~openstack.compute.v2.server.Server`.
|
||||
:param state: The state of the server to be set, `active` or
|
||||
`error` are valid.
|
||||
|
||||
:returns: None
|
||||
"""
|
||||
res = self._get_base_resource(server, _server.Server)
|
||||
res.reset_state(self.session, state)
|
||||
|
||||
def reboot_server(self, server, reboot_type):
|
||||
"""Reboot a server
|
||||
|
||||
|
||||
@@ -205,6 +205,10 @@ class Server(resource2.Resource, metadata.MetadataMixin):
|
||||
body = {"removeSecurityGroup": {"name": security_group}}
|
||||
self._action(session, body)
|
||||
|
||||
def reset_state(self, session, state):
|
||||
body = {"os-resetState": {"state": state}}
|
||||
self._action(session, body)
|
||||
|
||||
|
||||
class ServerDetail(Server):
|
||||
base_path = '/servers/detail'
|
||||
|
||||
@@ -309,3 +309,14 @@ class TestServer(testtools.TestCase):
|
||||
headers = {'Accept': ''}
|
||||
self.sess.post.assert_called_with(
|
||||
url, endpoint_filter=sot.service, json=body, headers=headers)
|
||||
|
||||
def test_reset_state(self):
|
||||
sot = server.Server(**EXAMPLE)
|
||||
|
||||
self.assertIsNone(sot.reset_state(self.sess, 'active'))
|
||||
|
||||
url = 'servers/IDENTIFIER/action'
|
||||
body = {"os-resetState": {"state": 'active'}}
|
||||
headers = {'Accept': ''}
|
||||
self.sess.post.assert_called_with(
|
||||
url, endpoint_filter=sot.service, json=body, headers=headers)
|
||||
|
||||
Reference in New Issue
Block a user