Merge "Add reset_state api for compute"

This commit is contained in:
Jenkins
2016-11-30 18:50:22 +00:00
committed by Gerrit Code Review
3 changed files with 28 additions and 0 deletions

View File

@@ -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

View File

@@ -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'

View File

@@ -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)