diff options
| author | Trey Morris <trey.morris@rackspace.com> | 2010-12-09 16:41:35 +0000 |
|---|---|---|
| committer | Trey Morris <trey.morris@rackspace.com> | 2010-12-09 16:41:35 +0000 |
| commit | 5f72a004dee0cb8de3f2daee1976fa978f6e51f3 (patch) | |
| tree | 1f5e13c9eb91e5895a3cb8bdf370e8947fa31763 /nova/compute | |
| parent | cc83aa52086f1472a97914b36f7c4ef7ebb52750 (diff) | |
pause from compute.manager <-> xenapi
Diffstat (limited to 'nova/compute')
| -rw-r--r-- | nova/compute/manager.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index dd8d41129..c0339a71f 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -194,6 +194,38 @@ class ComputeManager(manager.Manager): yield self.driver.unrescue(instance_ref) self._update_state(context, instance_id) + @defer.inlineCallbacks + @exception.wrap_exception + def pause_instance(self, context, instance_id): + """Pause an instance on this server.""" + context = context.elevated() + instance_ref = self.db.instance_get(context, instance_id) + + logging.debug('instance %s: pausing', + instance_ref['internal_id']) + self.db.instance_set_state(context, + instance_id, + power_state.NOSTATE, + 'pausing') + yield self.driver.pause(instance_ref) + self._update_state(context, instance_id) + + @defer.inlineCallbacks + @exception.wrap_exception + def resume_instance(self, context, instance_id): + """Resume a paused instance on this server.""" + context = context.elevated() + instance_ref = self.db.instance_get(context, instance_id) + + logging.debug('instance %s: resuming', + instance_ref['internal_id']) + self.db.instance_set_state(context, + instance_id, + power_state.NOSTATE, + 'resume') + yield self.driver.resume(instance_ref) + self._update_state(context, instance_id) + @exception.wrap_exception def get_console_output(self, context, instance_id): """Send the console output for an instance.""" |
