summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-01-15 21:05:03 +0000
committerGerrit Code Review <review@openstack.org>2013-01-15 21:05:03 +0000
commit802148747052580cfca5fa8119d492354332562a (patch)
treeddd027d5908c0ae1f32618e6236cf611c9227d05 /nova/api
parent8d275c735afedca2884196dc6a554165dda84547 (diff)
parentf51a285c205e7b2b0e34b198b3d2fc7b035646dc (diff)
Merge "Implements getPasswordData for ec2"
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/cloud.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 353d08714..414b2e969 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -27,6 +27,7 @@ import time
from nova.api.ec2 import ec2utils
from nova.api.ec2 import inst_state
+from nova.api.metadata import password
from nova.api import validator
from nova import availability_zones
from nova import block_device
@@ -758,6 +759,23 @@ class CloudController(object):
return True
+ def get_password_data(self, context, instance_id, **kwargs):
+ # instance_id may be passed in as a list of instances
+ if isinstance(instance_id, list):
+ ec2_id = instance_id[0]
+ else:
+ ec2_id = instance_id
+ validate_ec2_id(ec2_id)
+ instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, ec2_id)
+ instance = self.compute_api.get(context, instance_uuid)
+ output = password.extract_password(instance)
+ # NOTE(vish): this should be timestamp from the metadata fields
+ # but it isn't important enough to implement properly
+ now = timeutils.utcnow()
+ return {"InstanceId": ec2_id,
+ "Timestamp": now,
+ "passwordData": output}
+
def get_console_output(self, context, instance_id, **kwargs):
LOG.audit(_("Get console output for instance %s"), instance_id,
context=context)