summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-11-08 02:59:53 +0000
committerGerrit Code Review <review@openstack.org>2012-11-08 02:59:53 +0000
commit17c36e75e86833717b754058a574c099c5aaec85 (patch)
tree7751d4664598dea0e8382775f4670e225b9ddf11 /nova/api
parent7f1f2ef86855d436bf7ff9ce7194eb90b857d518 (diff)
parent79cc2a21b645138f70c6ca4b54053f69c0dde81d (diff)
Merge "Decouple EC2 API from using instance id"
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/cloud.py35
-rw-r--r--nova/api/ec2/ec2utils.py4
-rw-r--r--nova/api/metadata/base.py2
3 files changed, 18 insertions, 23 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 8a7471951..9d73673a4 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -696,8 +696,8 @@ class CloudController(object):
else:
ec2_id = instance_id
validate_ec2_id(ec2_id)
- instance_id = ec2utils.ec2_id_to_id(ec2_id)
- instance = self.compute_api.get(context, instance_id)
+ instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, ec2_id)
+ instance = self.compute_api.get(context, instance_uuid)
output = self.compute_api.get_console_output(context, instance)
now = timeutils.utcnow()
return {"InstanceId": ec2_id,
@@ -807,8 +807,8 @@ class CloudController(object):
validate_ec2_id(instance_id)
validate_ec2_id(volume_id)
volume_id = ec2utils.ec2_vol_id_to_uuid(volume_id)
- instance_id = ec2utils.ec2_id_to_id(instance_id)
- instance = self.compute_api.get(context, instance_id)
+ instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, instance_id)
+ instance = self.compute_api.get(context, instance_uuid)
msg = _("Attach volume %(volume_id)s to instance %(instance_id)s"
" at %(device)s") % locals()
LOG.audit(msg, context=context)
@@ -822,7 +822,7 @@ class CloudController(object):
volume = self.volume_api.get(context, volume_id)
return {'attachTime': volume['attach_time'],
'device': volume['mountpoint'],
- 'instanceId': ec2utils.id_to_ec2_inst_id(instance_id),
+ 'instanceId': ec2utils.id_to_ec2_inst_id(instance_uuid),
'requestId': context.request_id,
'status': volume['attach_status'],
'volumeId': ec2utils.id_to_ec2_vol_id(volume_id)}
@@ -921,11 +921,10 @@ class CloudController(object):
raise exception.EC2APIError(
_('attribute not supported: %s') % attribute)
- ec2_instance_id = instance_id
validate_ec2_id(instance_id)
- instance_id = ec2utils.ec2_id_to_id(ec2_instance_id)
- instance = self.compute_api.get(context, instance_id)
- result = {'instance_id': ec2_instance_id}
+ instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, instance_id)
+ instance = self.compute_api.get(context, instance_uuid)
+ result = {'instance_id': instance_id}
fn(instance, result)
return result
@@ -958,8 +957,8 @@ class CloudController(object):
i['previousState'] = _state_description(previous_state['vm_state'],
previous_state['shutdown_terminate'])
try:
- internal_id = ec2utils.ec2_id_to_id(ec2_id)
- instance = self.compute_api.get(context, internal_id)
+ instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, ec2_id)
+ instance = self.compute_api.get(context, instance_uuid)
i['currentState'] = _state_description(instance['vm_state'],
instance['shutdown_terminate'])
except exception.NotFound:
@@ -1154,8 +1153,8 @@ class CloudController(object):
def associate_address(self, context, instance_id, public_ip, **kwargs):
LOG.audit(_("Associate address %(public_ip)s to"
" instance %(instance_id)s") % locals(), context=context)
- instance_id = ec2utils.ec2_id_to_id(instance_id)
- instance = self.compute_api.get(context, instance_id)
+ instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, instance_id)
+ instance = self.compute_api.get(context, instance_uuid)
cached_ipinfo = ec2utils.get_ip_info_for_instance(context, instance)
fixed_ips = cached_ipinfo['fixed_ips'] + cached_ipinfo['fixed_ip6s']
@@ -1249,8 +1248,8 @@ class CloudController(object):
instances = []
for ec2_id in instance_id:
validate_ec2_id(ec2_id)
- _instance_id = ec2utils.ec2_id_to_id(ec2_id)
- instance = self.compute_api.get(context, _instance_id)
+ instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, ec2_id)
+ instance = self.compute_api.get(context, instance_uuid)
instances.append(instance)
return instances
@@ -1513,8 +1512,8 @@ class CloudController(object):
name = kwargs.get('name')
validate_ec2_id(instance_id)
ec2_instance_id = instance_id
- instance_id = ec2utils.ec2_id_to_id(ec2_instance_id)
- instance = self.compute_api.get(context, instance_id)
+ instance_uuid = ec2utils.ec2_inst_id_to_uuid(context, ec2_instance_id)
+ instance = self.compute_api.get(context, instance_uuid)
bdms = self.compute_api.get_instance_bdms(context, instance)
@@ -1544,7 +1543,7 @@ class CloudController(object):
start_time = time.time()
while vm_state != vm_states.STOPPED:
time.sleep(1)
- instance = self.compute_api.get(context, instance_id)
+ instance = self.compute_api.get(context, instance_uuid)
vm_state = instance['vm_state']
# NOTE(yamahata): timeout and error. 1 hour for now for safety.
# Is it too short/long?
diff --git a/nova/api/ec2/ec2utils.py b/nova/api/ec2/ec2utils.py
index de05aa903..997197d38 100644
--- a/nova/api/ec2/ec2utils.py
+++ b/nova/api/ec2/ec2utils.py
@@ -252,10 +252,6 @@ def get_snapshot_uuid_from_int_id(context, int_id):
return db.get_snapshot_uuid_by_ec2_id(context, int_id)
-def ec2_instance_id_to_uuid(context, ec2_id):
- int_id = ec2_id_to_id(ec2_id)
- return db.instance_get(context, int_id)['uuid']
-
_c2u = re.compile('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))')
diff --git a/nova/api/metadata/base.py b/nova/api/metadata/base.py
index 21fb4a7da..469d87d46 100644
--- a/nova/api/metadata/base.py
+++ b/nova/api/metadata/base.py
@@ -110,7 +110,7 @@ class InstanceMetadata():
self.ec2_ids = {}
self.ec2_ids['instance-id'] = ec2utils.id_to_ec2_inst_id(
- instance['id'])
+ instance['uuid'])
self.ec2_ids['ami-id'] = ec2utils.glance_id_to_ec2_id(ctxt,
instance['image_ref'])