summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorEd Leafe <ed@leafe.com>2011-08-02 18:23:58 +0000
committerEd Leafe <ed@leafe.com>2011-08-02 18:23:58 +0000
commit2dce2d54d14eed79ac3080e5f9ff6b715d5fc5c1 (patch)
treef2197ebe8cb10f615b84be042030d9346e20fc91 /nova/api
parent85795ff1f8b6a0ff3de634828208d6debd91692f (diff)
parent07d89c29389fe8f2b9f3a398ab99566d151e8e92 (diff)
Added the powerstate changes to the plugin.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/contrib/hosts.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/nova/api/openstack/contrib/hosts.py b/nova/api/openstack/contrib/hosts.py
index b6a4bdb77..94fba910c 100644
--- a/nova/api/openstack/contrib/hosts.py
+++ b/nova/api/openstack/contrib/hosts.py
@@ -79,7 +79,15 @@ class HostController(object):
explanation = _("Invalid status: '%s'") % raw_val
raise webob.exc.HTTPBadRequest(explanation=explanation)
elif key == "powerstate":
- if val in ("reboot", "shutdown"):
+ if val == "startup":
+ # The only valid values for 'state' are 'reboot' or
+ # 'shutdown'. For completeness' sake there is the
+ # 'startup' option to start up a host, but this is not
+ # technically feasible now, as we run the host on the
+ # XenServer box.
+ msg = _("Host startup on XenServer is not supported."))
+ raise webob.exc.HTTPBadRequest(explanation=msg)
+ elif val in ("reboot", "shutdown"):
return self._set_powerstate(req, id, val)
else:
explanation = _("Invalid powerstate: '%s'") % raw_val
@@ -98,10 +106,9 @@ class HostController(object):
return {"host": host, "status": result}
def _set_powerstate(self, req, host, state):
- """Reboots or shuts down the host."""
+ """Reboots or shuts down the host.
+ """
context = req.environ['nova.context']
- LOG.audit(_("Changing powerstate of host %(host)s to %(state)s.")
- % locals())
result = self.compute_api.set_host_powerstate(context, host=host,
state=state)
return {"host": host, "powerstate": result}