diff options
| author | Vishvananda Ishaya <vishvananda@gmail.com> | 2013-01-11 15:29:07 -0800 |
|---|---|---|
| committer | Vishvananda Ishaya <vishvananda@gmail.com> | 2013-01-11 15:29:07 -0800 |
| commit | f51a285c205e7b2b0e34b198b3d2fc7b035646dc (patch) | |
| tree | 6b17ab72101ebb61adb0d2db868f541a84ca31e7 /nova/api | |
| parent | cd2008c8f7476ba28e826ad40d4db8e94045723c (diff) | |
Implements getPasswordData for ec2
This allows commands like euca-get-password to work.
Related to blueprint get-password
Change-Id: Ifad7f699849694b395e018231f9d94985625eae9
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/ec2/cloud.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index 73a4a02ae..8a3fde834 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) |
