diff options
| author | Josh Kearney <josh.kearney@rackspace.com> | 2011-03-02 23:37:31 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-03-02 23:37:31 +0000 |
| commit | 98e665f870c20d81db13bb9e5402a7b187dfe539 (patch) | |
| tree | 8734c40dbe2d1b37c9f1bb3c042dec08615dcf6d /nova/api | |
| parent | ce5d90ebaf0eb57a396001e6947db3cbc31fe36e (diff) | |
| parent | e34e9dd982870915f8c4dbf84a08bece42b0c592 (diff) | |
Provide the ability to rescue and unrescue a XenServer instance.
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/__init__.py | 2 | ||||
| -rw-r--r-- | nova/api/openstack/servers.py | 22 |
2 files changed, 24 insertions, 0 deletions
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py index b1b38ed2d..2f226d9b5 100644 --- a/nova/api/openstack/__init__.py +++ b/nova/api/openstack/__init__.py @@ -80,6 +80,8 @@ class APIRouter(wsgi.Router): server_members["actions"] = "GET" server_members['suspend'] = 'POST' server_members['resume'] = 'POST' + server_members['rescue'] = 'POST' + server_members['unrescue'] = 'POST' server_members['reset_network'] = 'POST' server_members['inject_network_info'] = 'POST' diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py index 69273ad7b..08b95b46a 100644 --- a/nova/api/openstack/servers.py +++ b/nova/api/openstack/servers.py @@ -335,6 +335,28 @@ class Controller(wsgi.Controller): return faults.Fault(exc.HTTPUnprocessableEntity()) return exc.HTTPAccepted() + def rescue(self, req, id): + """Permit users to rescue the server.""" + context = req.environ["nova.context"] + try: + self.compute_api.rescue(context, id) + except: + readable = traceback.format_exc() + LOG.exception(_("compute.api::rescue %s"), readable) + return faults.Fault(exc.HTTPUnprocessableEntity()) + return exc.HTTPAccepted() + + def unrescue(self, req, id): + """Permit users to unrescue the server.""" + context = req.environ["nova.context"] + try: + self.compute_api.unrescue(context, id) + except: + readable = traceback.format_exc() + LOG.exception(_("compute.api::unrescue %s"), readable) + return faults.Fault(exc.HTTPUnprocessableEntity()) + return exc.HTTPAccepted() + def get_ajax_console(self, req, id): """ Returns a url to an instance's ajaxterm console. """ try: |
