summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorEd Leafe <ed@leafe.com>2010-12-31 05:37:30 -0600
committerEd Leafe <ed@leafe.com>2010-12-31 05:37:30 -0600
commitb50433d77207c542ee63b7858eb465bb51ba56ea (patch)
tree605205a7fc615e7294dec62dfd360f23d28ab88d /nova/compute
parentd531e873b97a8ff92d1534811f702e89a8cf60a7 (diff)
downloadnova-b50433d77207c542ee63b7858eb465bb51ba56ea.tar.gz
nova-b50433d77207c542ee63b7858eb465bb51ba56ea.tar.xz
nova-b50433d77207c542ee63b7858eb465bb51ba56ea.zip
Before merge with xenstore-plugin code
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/manager.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index c46587adc..4d8c5e1a5 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -36,6 +36,7 @@ terminating it.
import datetime
import logging
+import string
from nova import exception
from nova import flags
@@ -239,15 +240,21 @@ class ComputeManager(manager.Manager):
power_state.RUNNING)
logging.debug('instance %s: resetting root password',
- instance_ref['name'])
- self.db.instance_set_state(context,
- instance_id,
- power_state.NOSTATE,
- 'resetting_password')
+ instance_ref['name'])
+ self.db.instance_set_state(context, instance_id,
+ power_state.NOSTATE, 'resetting_password')
#### TODO: (dabo) not sure how we will implement this yet.
- self.driver.reset_root_password(instance_ref)
+ new_pass = self._generate_password(12)
+ self.driver.reset_root_password(instance_ref, new_pass)
self._update_state(context, instance_id)
+ def _generate_password(self, length=20):
+ """Generate a random sequence of letters and digits
+ to be used as a password.
+ """
+ chrs = string.letters + string.digits
+ return "".join([random.choice(chrs) for i in xrange(length)])
+
@exception.wrap_exception
def rescue_instance(self, context, instance_id):
"""Rescue an instance on this server."""