diff options
| author | Mark Washenberger <mark.washenberger@rackspace.com> | 2011-03-31 20:47:05 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-03-31 20:47:05 +0000 |
| commit | f01c0b1e575f990164cf80b8897860dd30791ddb (patch) | |
| tree | 1184cde116ddf2aaf3bff675520501acdaf85b4b /nova/api | |
| parent | 230aad2378618538db5fe32c90b145af7c1f2f4d (diff) | |
| parent | f06dbc06847a3f949ce5fb7407e15782a7dc11e3 (diff) | |
Add a change password action to /servers in openstack api v1.1, and associated tests.
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/servers.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py index f7696d918..4e2ebb2bd 100644 --- a/nova/api/openstack/servers.py +++ b/nova/api/openstack/servers.py @@ -288,11 +288,12 @@ class Controller(wsgi.Controller): resize a server""" actions = { - 'reboot': self._action_reboot, - 'resize': self._action_resize, + 'changePassword': self._action_change_password, + 'reboot': self._action_reboot, + 'resize': self._action_resize, 'confirmResize': self._action_confirm_resize, - 'revertResize': self._action_revert_resize, - 'rebuild': self._action_rebuild, + 'revertResize': self._action_revert_resize, + 'rebuild': self._action_rebuild, } input_dict = self._deserialize(req.body, req.get_content_type()) @@ -301,6 +302,9 @@ class Controller(wsgi.Controller): return actions[key](input_dict, req, id) return faults.Fault(exc.HTTPNotImplemented()) + def _action_change_password(self, input_dict, req, id): + return exc.HTTPNotImplemented() + def _action_confirm_resize(self, input_dict, req, id): try: self.compute_api.confirm_resize(req.environ['nova.context'], id) @@ -629,6 +633,19 @@ class ControllerV11(Controller): def _get_addresses_view_builder(self, req): return nova.api.openstack.views.addresses.ViewBuilderV11(req) + def _action_change_password(self, input_dict, req, id): + context = req.environ['nova.context'] + if (not 'changePassword' in input_dict + or not 'adminPass' in input_dict['changePassword']): + msg = _("No adminPass was specified") + return exc.HTTPBadRequest(msg) + password = input_dict['changePassword']['adminPass'] + if not isinstance(password, basestring) or password == '': + msg = _("Invalid adminPass") + return exc.HTTPBadRequest(msg) + self.compute_api.set_admin_password(context, id, password) + return exc.HTTPAccepted() + def _limit_items(self, items, req): return common.limited_by_marker(items, req) |
