Availability zone ignored in ec2 api

Bug #888918 reported by Vladimir
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Vish Ishaya
Diablo
Fix Released
Undecided
Unassigned

Bug Description

The ec2 api parameter incorrectly parsed in api. When i use euca-run-instance with -z myzone, nova ignore this flag and start instance on random chosen host. In logs i can see that api receives that parameter:

2011-11-11 14:57:26,566 DEBUG nova.api [-] arg: Placement.AvailabilityZone val: twinB from (pid=2221) __call__ /usr/lib/pymodul
es/python2.6/nova/api/ec2/__init__.py:241

But then this value is thrown away and instance have started on host 'server-118'.
I suppose there is a mistake in nova/api/ec2/cloud.py in method run_instances:

        instances = self.compute_api.create(context,
            instance_type=instance_types.get_instance_type_by_name(
                kwargs.get('instance_type', None)),
            image_href=self._get_image(context, kwargs['image_id'])['id'],
            min_count=int(kwargs.get('min_count', max_count)),
            max_count=max_count,
            kernel_id=kwargs.get('kernel_id'),
            ramdisk_id=kwargs.get('ramdisk_id'),
            display_name=kwargs.get('display_name'),
            display_description=kwargs.get('display_description'),
            key_name=kwargs.get('key_name'),
            user_data=kwargs.get('user_data'),
            security_group=kwargs.get('security_group'),
            availability_zone=kwargs.get('placement', {}).get(
                                  'AvailabilityZone'),
            block_device_mapping=kwargs.get('block_device_mapping', {}))

While all parameters, retreived from ec2 have lowercase and underscore-delimeted key in kwargs dict, availability_zone still use CamelCase. When i changed this piece of code with this:

        instances = self.compute_api.create(context,
            instance_type=instance_types.get_instance_type_by_name(
                kwargs.get('instance_type', None)),
            image_href=self._get_image(context, kwargs['image_id'])['id'],
            min_count=int(kwargs.get('min_count', max_count)),
            max_count=max_count,
            kernel_id=kwargs.get('kernel_id'),
            ramdisk_id=kwargs.get('ramdisk_id'),
            display_name=kwargs.get('display_name'),
            display_description=kwargs.get('display_description'),
            key_name=kwargs.get('key_name'),
            user_data=kwargs.get('user_data'),
            security_group=kwargs.get('security_group'),
            availability_zone=kwargs.get('placement', {}).get(
                                  'availability_zone'),
            block_device_mapping=kwargs.get('block_device_mapping', {}))

all works fine.

Revision history for this message
Vladimir (dedel) wrote :
Changed in nova:
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Vish Ishaya (vishvananda)
tags: added: diablo-backport
Revision history for this message
Openstack Gerrit (openstack-gerrit) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/1560
Committed: http://github.com/openstack/nova/commit/b6644ffe4360a9d55e138e20e0d453e8ffb2c718
Submitter: Jenkins
Branch: master

 status fixcommitted
 done

commit b6644ffe4360a9d55e138e20e0d453e8ffb2c718
Author: Vishvananda Ishaya <email address hidden>
Date: Fri Nov 11 11:37:03 2011 -0800

    Make run instances respect availability zone

     * includes test
     * fixes bug 888918

    Change-Id: I40985e9dcc153fae53675f3da5e2d5b5763cfca3

Changed in nova:
status: In Progress → Fix Committed
Revision history for this message
Openstack Gerrit (openstack-gerrit) wrote : Fix merged to nova (stable/diablo)

Reviewed: https://review.openstack.org/1832
Committed: http://github.com/openstack/nova/commit/d0b0f76b2b90866b20c2a7cd4d230308972d512a
Submitter: Jenkins
Branch: stable/diablo

 tag in-stable-diablo
 done

commit d0b0f76b2b90866b20c2a7cd4d230308972d512a
Author: Vishvananda Ishaya <email address hidden>
Date: Fri Nov 11 11:37:03 2011 -0800

    Make run instances respect availability zone

     * includes test
     * fixes bug 888918
     * cherry picked from b6644ffe4360a9d55e138e20e0d453e8ffb2c718
     * test had to be updated

    Change-Id: I40985e9dcc153fae53675f3da5e2d5b5763cfca3

Thierry Carrez (ttx)
Changed in nova:
milestone: none → essex-2
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: essex-2 → 2012.1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.