Skip to content

Commit ddd8139

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Add reset_state api for compute"
2 parents 4095af1 + c5106b2 commit ddd8139

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

openstack/compute/v2/_proxy.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,19 @@ def change_server_password(self, server, new_password):
435435
server = self._get_resource(_server.Server, server)
436436
server.change_password(self.session, new_password)
437437

438+
def reset_server_state(self, server, state):
439+
"""Reset the state of server
440+
441+
:param server: The server can be either the ID of a server or a
442+
:class:`~openstack.compute.v2.server.Server`.
443+
:param state: The state of the server to be set, `active` or
444+
`error` are valid.
445+
446+
:returns: None
447+
"""
448+
res = self._get_base_resource(server, _server.Server)
449+
res.reset_state(self.session, state)
450+
438451
def reboot_server(self, server, reboot_type):
439452
"""Reboot a server
440453

openstack/compute/v2/server.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,10 @@ def remove_security_group(self, session, security_group):
205205
body = {"removeSecurityGroup": {"name": security_group}}
206206
self._action(session, body)
207207

208+
def reset_state(self, session, state):
209+
body = {"os-resetState": {"state": state}}
210+
self._action(session, body)
211+
208212

209213
class ServerDetail(Server):
210214
base_path = '/servers/detail'

openstack/tests/unit/compute/v2/test_server.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,3 +309,14 @@ def test_remove_security_group(self):
309309
headers = {'Accept': ''}
310310
self.sess.post.assert_called_with(
311311
url, endpoint_filter=sot.service, json=body, headers=headers)
312+
313+
def test_reset_state(self):
314+
sot = server.Server(**EXAMPLE)
315+
316+
self.assertIsNone(sot.reset_state(self.sess, 'active'))
317+
318+
url = 'servers/IDENTIFIER/action'
319+
body = {"os-resetState": {"state": 'active'}}
320+
headers = {'Accept': ''}
321+
self.sess.post.assert_called_with(
322+
url, endpoint_filter=sot.service, json=body, headers=headers)

0 commit comments

Comments
 (0)