~cerberus/nova/disk_config

« back to all changes in this revision

Viewing changes to nova/api/openstack/contrib/rescue.py

  • Committer: matt.dietz at rackspace
  • Date: 2011-09-19 01:27:16 UTC
  • mfrom: (1511.1.78 nova)
  • Revision ID: matt.dietz@rackspace.com-20110919012716-9skewfhjxza39x7g
Merge from trunk and migration renumbering

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
from webob import exc
19
19
 
20
20
from nova import compute
 
21
from nova import flags
21
22
from nova import log as logging
 
23
from nova import utils
22
24
from nova.api.openstack import extensions as exts
23
25
from nova.api.openstack import faults
24
26
 
25
27
 
 
28
FLAGS = flags.FLAGS
26
29
LOG = logging.getLogger("nova.api.contrib.rescue")
27
30
 
28
31
 
30
33
    """"Ensure errors are not passed along."""
31
34
    def wrapped(*args):
32
35
        try:
33
 
            fn(*args)
 
36
            return fn(*args)
34
37
        except Exception, e:
35
38
            return faults.Fault(exc.HTTPInternalServerError())
36
39
    return wrapped
46
49
    def _rescue(self, input_dict, req, instance_id):
47
50
        """Rescue an instance."""
48
51
        context = req.environ["nova.context"]
49
 
        self.compute_api.rescue(context, instance_id)
 
52
        if input_dict['rescue'] and 'adminPass' in input_dict['rescue']:
 
53
            password = input_dict['rescue']['adminPass']
 
54
        else:
 
55
            password = utils.generate_password(FLAGS.password_length)
 
56
        self.compute_api.rescue(context, instance_id, rescue_password=password)
50
57
 
51
 
        return webob.Response(status_int=202)
 
58
        return {'adminPass': password}
52
59
 
53
60
    @wrap_errors
54
61
    def _unrescue(self, input_dict, req, instance_id):