From b37bced0e7279c9974452d9ac2838f6ca8429b2f Mon Sep 17 00:00:00 2001 From: yanyanhu Date: Mon, 21 Dec 2015 04:33:37 -0500 Subject: [PATCH] Fix server action resource call Currently, action resource call of nova server doesn't work correctly in case where action API doesn't have response body. This patch fixes this issue. Change-Id: I016f74507f7d5b5792c77879969bdc271c25f829 Closes-Bug: #1528145 --- openstack/compute/v2/server.py | 12 ++++-------- openstack/tests/unit/compute/v2/test_server.py | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/openstack/compute/v2/server.py b/openstack/compute/v2/server.py index 6d84f9654..3d7438d8e 100644 --- a/openstack/compute/v2/server.py +++ b/openstack/compute/v2/server.py @@ -86,16 +86,12 @@ class Server(resource.Resource): return body - def action(self, session, body, has_response=False): + def action(self, session, body): """Preform server actions given the message body.""" url = utils.urljoin(self.base_path, self.id, 'action') - if has_response: - resp = session.post(url, endpoint_filter=self.service, json=body) - else: - headers = {'Accept': ''} - resp = session.post( - url, endpoint_filter=self.service, json=body, headers=headers) - return resp.json() + headers = {'Accept': ''} + session.post( + url, endpoint_filter=self.service, json=body, headers=headers) def change_password(self, session, new_password): """Change the administrator password to the given password.""" diff --git a/openstack/tests/unit/compute/v2/test_server.py b/openstack/tests/unit/compute/v2/test_server.py index 6a5a0853a..4164e0a84 100644 --- a/openstack/tests/unit/compute/v2/test_server.py +++ b/openstack/tests/unit/compute/v2/test_server.py @@ -45,7 +45,7 @@ class TestServer(testtools.TestCase): def setUp(self): super(TestServer, self).setUp() self.resp = mock.Mock() - self.resp.body = '' + self.resp.body = None self.resp.json = mock.Mock(return_value=self.resp.body) self.sess = mock.Mock() self.sess.post = mock.Mock(return_value=self.resp)