)]}'
{"nova/compute/api.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"13b74ead654c62cb0c6e1ff4a9a671ba330ed432","unresolved":false,"context_lines":[{"line_number":1713,"context_line":"                pass"},{"line_number":1714,"context_line":"        return {\u0027block_device_mapping\u0027: block_device_mapping}"},{"line_number":1715,"context_line":""},{"line_number":1716,"context_line":"    def get_boot_from_volume(self, context, instance):"},{"line_number":1717,"context_line":"        bdms \u003d self.db.block_device_mapping_get_all_by_instance("},{"line_number":1718,"context_line":"                context, instance[\u0027uuid\u0027])"},{"line_number":1719,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fiqc%3D","line":1716,"updated":"2013-05-06 08:53:28.000000000","message":"This may not always work for libvirt driver and I would prefer not to propagate this misconception in code any longer.\n\nFor more details see https://wiki.openstack.org/wiki/BlockDeviceConfig the section about device_name\n\nAnyway it should not be on the compute API class even if we keep it.","commit_id":"36f9aa62ddfd64158b2cc357ccd79639317582f1"}],"nova/scheduler/driver.py":[{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"2da44ff6a5cb2bc5bc126f697bf2ecd18dff87c9","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        if dest is None:"},{"line_number":260,"context_line":"            instance_type \u003d instance_types.extract_instance_type(instance_ref)"},{"line_number":261,"context_line":"            if not instance_ref[\u0027image_ref\u0027]:"},{"line_number":262,"context_line":"                image \u003d None"},{"line_number":263,"context_line":"            else:"},{"line_number":264,"context_line":"                image \u003d self.image_service.show(context,"},{"line_number":265,"context_line":"                                                instance_ref[\u0027image_ref\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FoBg%3D","line":262,"updated":"2013-05-01 14:13:12.000000000","message":"Shouldn\u0027t this really get the image details from Cinder in this case ? \n\nPassing image details in the request spec in some cases and not others might make filters or weighters go boom","commit_id":"774c55933ecef412b7c73548c78583596abcc0f6"},{"author":{"_account_id":2258,"name":"Dongdong Zhou","email":"dzhou121@gmail.com","username":"dzhou121"},"change_message_id":"bab29cecccda7e2bf7244195ad99e720054725ce","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        if dest is None:"},{"line_number":260,"context_line":"            instance_type \u003d instance_types.extract_instance_type(instance_ref)"},{"line_number":261,"context_line":"            if not instance_ref[\u0027image_ref\u0027]:"},{"line_number":262,"context_line":"                image \u003d None"},{"line_number":263,"context_line":"            else:"},{"line_number":264,"context_line":"                image \u003d self.image_service.show(context,"},{"line_number":265,"context_line":"                                                instance_ref[\u0027image_ref\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fn90%3D","line":262,"in_reply_to":"AAAAOn%2F%2Fn%2BY%3D","updated":"2013-05-01 14:38:37.000000000","message":"Hi Nikola:\n\nI think what Phil meant is that the scheduler needs the image information to decide the host that will be migrated too.\n\nHi Phil:\n\nI think the useful information in glance image is min_disk, min_ram, but these information are not available in Cinder volumes.","commit_id":"774c55933ecef412b7c73548c78583596abcc0f6"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"20e16737ad592c3e85c5c6f58def906854f43437","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        if dest is None:"},{"line_number":260,"context_line":"            instance_type \u003d instance_types.extract_instance_type(instance_ref)"},{"line_number":261,"context_line":"            if not instance_ref[\u0027image_ref\u0027]:"},{"line_number":262,"context_line":"                image \u003d None"},{"line_number":263,"context_line":"            else:"},{"line_number":264,"context_line":"                image \u003d self.image_service.show(context,"},{"line_number":265,"context_line":"                                                instance_ref[\u0027image_ref\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FkPM%3D","line":262,"in_reply_to":"AAAAOn%2F%2Fn78%3D","updated":"2013-05-03 16:50:12.000000000","message":"It was the full image metadata that John refers to that I was thinking of. \n\nScheduler filters and weighing functions should be able to make decisions based on any of that metadata regardless of whether the instance instance is booted from an Image or a volume created form an image.  Its not just min_disk and min_ram that are useful in this context.\n\nFor example we have filters that look for other custom image attributes like license codes.    \n\nSo my point was that request_spec should always contain the image data, but the system needs to sometimes get it from glance and sometimes from cinder.","commit_id":"774c55933ecef412b7c73548c78583596abcc0f6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4f411757ee4822a3acc190ad9d051ba575c529bb","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        if dest is None:"},{"line_number":260,"context_line":"            instance_type \u003d instance_types.extract_instance_type(instance_ref)"},{"line_number":261,"context_line":"            if not instance_ref[\u0027image_ref\u0027]:"},{"line_number":262,"context_line":"                image \u003d None"},{"line_number":263,"context_line":"            else:"},{"line_number":264,"context_line":"                image \u003d self.image_service.show(context,"},{"line_number":265,"context_line":"                                                instance_ref[\u0027image_ref\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fn9I%3D","line":262,"in_reply_to":"AAAAOn%2F%2Fn90%3D","updated":"2013-05-01 14:43:37.000000000","message":"Actually Cinder does have the image metadata, it would probably be worth looking at using the API to gather that information and maintain consistency in the behaviors here as Phil pointed out.","commit_id":"774c55933ecef412b7c73548c78583596abcc0f6"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"4da499346e3aa08d54ccb805267f069f2b845e34","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        if dest is None:"},{"line_number":260,"context_line":"            instance_type \u003d instance_types.extract_instance_type(instance_ref)"},{"line_number":261,"context_line":"            if not instance_ref[\u0027image_ref\u0027]:"},{"line_number":262,"context_line":"                image \u003d None"},{"line_number":263,"context_line":"            else:"},{"line_number":264,"context_line":"                image \u003d self.image_service.show(context,"},{"line_number":265,"context_line":"                                                instance_ref[\u0027image_ref\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fn9g%3D","line":262,"in_reply_to":"AAAAOn%2F%2Fn90%3D","updated":"2013-05-01 14:45:18.000000000","message":"Hey - so this information *is* (sometimes) available in Cinder if the volume was created from an image, and some time ago I added an API extension to be able to get them from Cinder, however this is not used anywhere in Nova at the moment.\n\nIf we are going to use it we should use it everywhere - however it is not as easy to do since it is not always clear which volume is the one being booted from.","commit_id":"774c55933ecef412b7c73548c78583596abcc0f6"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"b3afaefa60f643c0e96adf96ca55befb04c8750b","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        if dest is None:"},{"line_number":260,"context_line":"            instance_type \u003d instance_types.extract_instance_type(instance_ref)"},{"line_number":261,"context_line":"            if not instance_ref[\u0027image_ref\u0027]:"},{"line_number":262,"context_line":"                image \u003d None"},{"line_number":263,"context_line":"            else:"},{"line_number":264,"context_line":"                image \u003d self.image_service.show(context,"},{"line_number":265,"context_line":"                                                instance_ref[\u0027image_ref\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fn78%3D","line":262,"in_reply_to":"AAAAOn%2F%2Fn9g%3D","updated":"2013-05-01 14:50:53.000000000","message":"To be a bit more clear:\n\nI was confused about consistency here because it will not be inconsistent for a single VM lifespan. It will always either have no image or have an image.\n\nScheduler drivers should be able to handle instances with no images, so if they don\u0027t it\u0027s a bug in the driver subclass rather than here - so from that pov - I still think this patch should go in.","commit_id":"774c55933ecef412b7c73548c78583596abcc0f6"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"19f73d1c9b2af6a41c5010450b383497ee3666d8","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        if dest is None:"},{"line_number":260,"context_line":"            instance_type \u003d instance_types.extract_instance_type(instance_ref)"},{"line_number":261,"context_line":"            if not instance_ref[\u0027image_ref\u0027]:"},{"line_number":262,"context_line":"                image \u003d None"},{"line_number":263,"context_line":"            else:"},{"line_number":264,"context_line":"                image \u003d self.image_service.show(context,"},{"line_number":265,"context_line":"                                                instance_ref[\u0027image_ref\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fn%2BY%3D","line":262,"in_reply_to":"AAAAOn%2F%2FoBg%3D","updated":"2013-05-01 14:33:00.000000000","message":"Phil - I am not sure what you mean by this - can you elaborate a bit.\n\nif the instance was started only with a volume and no image - it will never have an image ref (it is set to empty string) and the volume is passed as a block device mapping, so not sure what would be inconsistent in this case?","commit_id":"774c55933ecef412b7c73548c78583596abcc0f6"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"13b74ead654c62cb0c6e1ff4a9a671ba330ed432","unresolved":false,"context_lines":[{"line_number":264,"context_line":"                image \u003d self.image_service.show(context,"},{"line_number":265,"context_line":"                                                instance_ref[\u0027image_ref\u0027])"},{"line_number":266,"context_line":"            # if not boot from image, then try to get the metadata from cinder"},{"line_number":267,"context_line":"            else:"},{"line_number":268,"context_line":"                image \u003d None"},{"line_number":269,"context_line":"                volume \u003d self.volume_service.get("},{"line_number":270,"context_line":"                        context, instance_ref[\u0027boot_from_volume_id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fip8%3D","line":267,"updated":"2013-05-06 08:53:28.000000000","message":"Volume metadata will not be taken into account when booting VMs but will be when migrating - this will result in different decisions being made for the same VM.\n\nWhile this is not the end of the world - I think we should be consistent about how and when we use cinder data","commit_id":"36f9aa62ddfd64158b2cc357ccd79639317582f1"}]}
