diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-11-08 02:59:53 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-11-08 02:59:53 +0000 |
| commit | 17c36e75e86833717b754058a574c099c5aaec85 (patch) | |
| tree | 7751d4664598dea0e8382775f4670e225b9ddf11 /nova/api | |
| parent | 7f1f2ef86855d436bf7ff9ce7194eb90b857d518 (diff) | |
| parent | 79cc2a21b645138f70c6ca4b54053f69c0dde81d (diff) | |
Merge "Decouple EC2 API from using instance id"
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/ec2/cloud.py | 35 | ||||
| -rw-r--r-- | nova/api/ec2/ec2utils.py | 4 | ||||
| -rw-r--r-- | nova/api/metadata/base.py | 2 |
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']) |
