)]}'
{"nova/compute/api.py":[{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"9ee8b4e9cb82bec7c0886690d6360481d0d1b659","unresolved":false,"context_lines":[{"line_number":2294,"context_line":"        # \"raw\", but the image metadata is set to whatever the \"unconverted\""},{"line_number":2295,"context_line":"        # format is.  This can cause strange artifacts, so set the"},{"line_number":2296,"context_line":"        # disk_format to what we know it already is."},{"line_number":2297,"context_line":"        if CONF.force_raw_images:"},{"line_number":2298,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2299,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2300,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_0bf3ed74","line":2297,"updated":"2015-09-24 15:02:25.000000000","message":"Probably CONF.libvirt.snapshot_image_format should be used: https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L1342-L1348\n\nBut honestly both options are valid for libvirt only.\n\nAnd i\u0027m not sure that it\u0027s good to check driver options in api level. Perhaps we should find another way to fix the bug.","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"f478fc64f6cf4932281ffb59770d589691aa5df5","unresolved":false,"context_lines":[{"line_number":2294,"context_line":"        # \"raw\", but the image metadata is set to whatever the \"unconverted\""},{"line_number":2295,"context_line":"        # format is.  This can cause strange artifacts, so set the"},{"line_number":2296,"context_line":"        # disk_format to what we know it already is."},{"line_number":2297,"context_line":"        if CONF.force_raw_images:"},{"line_number":2298,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2299,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2300,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_69e5c7a6","line":2297,"in_reply_to":"9a1a9d01_0bf3ed74","updated":"2015-09-24 19:16:30.000000000","message":"let\u0027s not use driver specific flags on compute manager level","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6b17600b74a3a77a4361e7a4e30876762a036e41","unresolved":false,"context_lines":[{"line_number":2295,"context_line":"        # format is.  This can cause strange artifacts, so set the"},{"line_number":2296,"context_line":"        # disk_format to what we know it already is."},{"line_number":2297,"context_line":"        if CONF.force_raw_images:"},{"line_number":2298,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2299,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2300,"context_line":""},{"line_number":2301,"context_line":"        # Delete properties that are non-inheritable"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_3e76d43e","line":2298,"updated":"2015-09-22 12:44:45.000000000","message":"just a question: why we need do special handle for ami/ari/aki? how about other image format in \n\nhttp://docs.openstack.org/image-guide/content/ch_introduction.html","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c74abea0ba88aa580d51fda8c02b0cadab402fcc","unresolved":false,"context_lines":[{"line_number":2295,"context_line":"        # format is.  This can cause strange artifacts, so set the"},{"line_number":2296,"context_line":"        # disk_format to what we know it already is."},{"line_number":2297,"context_line":"        if CONF.force_raw_images:"},{"line_number":2298,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2299,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2300,"context_line":""},{"line_number":2301,"context_line":"        # Delete properties that are non-inheritable"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_2808c52c","line":2298,"in_reply_to":"ba15a1d1_08e38834","updated":"2015-09-22 19:55:57.000000000","message":"I am not sure some NOTE, TODO or flag needed, but it would be helpful to help people in understanding the reason you mentioned\n\nalso, I am not sure in this case we need update test or real code, just curious","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"f478fc64f6cf4932281ffb59770d589691aa5df5","unresolved":false,"context_lines":[{"line_number":2295,"context_line":"        # format is.  This can cause strange artifacts, so set the"},{"line_number":2296,"context_line":"        # disk_format to what we know it already is."},{"line_number":2297,"context_line":"        if CONF.force_raw_images:"},{"line_number":2298,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2299,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2300,"context_line":""},{"line_number":2301,"context_line":"        # Delete properties that are non-inheritable"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_c98653b9","line":2298,"in_reply_to":"ba15a1d1_08e38834","updated":"2015-09-24 19:16:30.000000000","message":"if it\u0027s only because of tempest tests, i\u0027m strongly -1 for that. Could you clarify this, please?","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"57eea276b84c4115a27df01da76ece12857fbeaf","unresolved":false,"context_lines":[{"line_number":2295,"context_line":"        # format is.  This can cause strange artifacts, so set the"},{"line_number":2296,"context_line":"        # disk_format to what we know it already is."},{"line_number":2297,"context_line":"        if CONF.force_raw_images:"},{"line_number":2298,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2299,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2300,"context_line":""},{"line_number":2301,"context_line":"        # Delete properties that are non-inheritable"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_08e38834","line":2298,"in_reply_to":"ba15a1d1_3e76d43e","updated":"2015-09-22 17:05:34.000000000","message":"The previous iteration didn\u0027t care, and I found out the hard way that Tempest has special tests that require these three \"raw-like\" formats to remain unchanged.\n\nSince they\u0027re essentially raw anyways, it doesn\u0027t hurt anything semantically to leave them alone, and it makes functional testing not explode.","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"9ee8b4e9cb82bec7c0886690d6360481d0d1b659","unresolved":false,"context_lines":[{"line_number":2296,"context_line":"        # disk_format to what we know it already is."},{"line_number":2297,"context_line":"        if CONF.force_raw_images:"},{"line_number":2298,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2299,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2300,"context_line":""},{"line_number":2301,"context_line":"        # Delete properties that are non-inheritable"},{"line_number":2302,"context_line":"        properties \u003d image_meta[\u0027properties\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_4bc1e52d","line":2299,"updated":"2015-09-24 15:02:25.000000000","message":"I doubt it\u0027s correct for xen for instance.","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"57dc832ddd7eb2cd96f142310433a8d520d62283","unresolved":false,"context_lines":[{"line_number":2228,"context_line":"        if CONF.force_raw_images:"},{"line_number":2229,"context_line":"            # These three formats are effectively raw, but their names have"},{"line_number":2230,"context_line":"            # special meaning elsewhere, so leave them alone"},{"line_number":2231,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2232,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2233,"context_line":""},{"line_number":2234,"context_line":"        # Delete properties that are non-inheritable"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_c02a377e","line":2231,"updated":"2016-01-13 15:54:47.000000000","message":"This magic list is in the wrong place. nova.compute.api isn\u0027t a repository of information about image formats. This would be a persistent source of bugs as this list becomes out of date.","commit_id":"18f33c7c5c5b5629f6b61fa0e4be54c0b848f027"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"57dc832ddd7eb2cd96f142310433a8d520d62283","unresolved":false,"context_lines":[{"line_number":2229,"context_line":"            # These three formats are effectively raw, but their names have"},{"line_number":2230,"context_line":"            # special meaning elsewhere, so leave them alone"},{"line_number":2231,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2232,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2233,"context_line":""},{"line_number":2234,"context_line":"        # Delete properties that are non-inheritable"},{"line_number":2235,"context_line":"        properties \u003d image_meta[\u0027properties\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_e0041bc1","line":2232,"updated":"2016-01-13 15:54:47.000000000","message":"force_raw_images means that the nova libvirt driver converted the image to raw when it wrote it to disk, but the images is still not raw. This properly lives in driver code which knows the details of what happens.\n\nEven worse, by changing it here we\u0027re now lying to the driver about what the image format is, which means that we can\u0027t fix the driver\u0027s reliance on automatic format detection, which is a security risk.","commit_id":"18f33c7c5c5b5629f6b61fa0e4be54c0b848f027"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"8f40434cccb383d785a99e560e55ff0d699c671e","unresolved":false,"context_lines":[{"line_number":2229,"context_line":"            # These three formats are effectively raw, but their names have"},{"line_number":2230,"context_line":"            # special meaning elsewhere, so leave them alone"},{"line_number":2231,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2232,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2233,"context_line":""},{"line_number":2234,"context_line":"        # Delete properties that are non-inheritable"},{"line_number":2235,"context_line":"        properties \u003d image_meta[\u0027properties\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_e1e17c9b","line":2232,"in_reply_to":"da6ed579_e0041bc1","updated":"2016-01-13 16:58:20.000000000","message":"There\u0027s no lying going on — when talking about instance snapshots, the disk_format of the original image does not matter at all (it\u0027s been converted), but Nova is silly enough to ask Glance for it anyways and tries to use that misinformation to make decisions about what to do.\n\nAnd it then does the exact wrong thing.  That\u0027s the bug.  There\u0027s plenty of ways to fix that, but I figure \"setting the value to what we already know it should be based on configuration\" is the most foolproof.","commit_id":"18f33c7c5c5b5629f6b61fa0e4be54c0b848f027"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"e21188d9705036c022fb64a3e4d8d7ecf1517efb","unresolved":false,"context_lines":[{"line_number":2229,"context_line":"            # These three formats are effectively raw, but their names have"},{"line_number":2230,"context_line":"            # special meaning elsewhere, so leave them alone"},{"line_number":2231,"context_line":"            if image_meta.get(\u0027disk_format\u0027) not in (\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027):"},{"line_number":2232,"context_line":"                image_meta[\u0027disk_format\u0027] \u003d \u0027raw\u0027"},{"line_number":2233,"context_line":""},{"line_number":2234,"context_line":"        # Delete properties that are non-inheritable"},{"line_number":2235,"context_line":"        properties \u003d image_meta[\u0027properties\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_ca02fa09","line":2232,"in_reply_to":"da6ed579_e1e17c9b","updated":"2016-01-14 22:24:45.000000000","message":"No, it hasn\u0027t already been converted. The driver converts it at the time it downloads it if required when it calls virt.images.fetch_to_raw. Note that that method does automatic format detection on the downloaded image.\n\nOf course, as both the image and its format are user-supplied we still need to do sanity checks on it. However, fixing this will allow us to fix the issue of backend selection in the Raw backend. Note that the Raw backend can currently change type after having been created, which makes no sense. We can fix that by using, but still sanity checking, the user-supplied image format in advance of instantiating a backend. But we can never do that if the nova api lies to the driver about what format the image is in.\n\nHowever you choose to fix this, it needs to happen in the driver.","commit_id":"18f33c7c5c5b5629f6b61fa0e4be54c0b848f027"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"f33fdb506d80a07b578a9cdfadf7cbc917b295db","unresolved":false,"context_lines":[{"line_number":2205,"context_line":"        # NOTE(nic): if we\u0027re making a snapshot, omit the disk and container"},{"line_number":2206,"context_line":"        # formats, since the image may have been converted.  The driver will"},{"line_number":2207,"context_line":"        # populate these later on upload."},{"line_number":2208,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2209,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2210,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"},{"line_number":2211,"context_line":"        return self.image_api.create(context, image_meta)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba63e191_deb53731","line":2208,"updated":"2016-01-20 10:54:42.000000000","message":"Thanks for looking at alternatives. I still have 2 major concerns with this approach, though.\n\nFirstly, disk_format and container_format are actually known. The problem is that we\u0027re not propagating them from the libvirt driver. I would much prefer to fix the problem at source.\n\nSecondly, and more seriously, this creates a unexpected and non-obvious coupling between compute/api and the libvirt driver. A future developer who fixes the problem in the libvirt driver is going to have a wtf moment when they realise that their carefully corrected data still isn\u0027t making its way to glance. Worse, they might not notice, and it\u0027s unlikely to be obvious in review either. I feel that this is more technical debt that we can\u0027t afford in this code.","commit_id":"e4c4f4a91db800420bf3753ec795eff684a59f5d"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"cf5021a05624c80b50616ca4ba0a583ea32e605b","unresolved":false,"context_lines":[{"line_number":2205,"context_line":"        # NOTE(nic): if we\u0027re making a snapshot, omit the disk and container"},{"line_number":2206,"context_line":"        # formats, since the image may have been converted.  The driver will"},{"line_number":2207,"context_line":"        # populate these later on upload."},{"line_number":2208,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2209,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2210,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"},{"line_number":2211,"context_line":"        return self.image_api.create(context, image_meta)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_7e47954b","line":2208,"in_reply_to":"9a68dd71_89793032","updated":"2016-01-21 12:55:32.000000000","message":"You\u0027re absolutely right. I was thrown by the code flow here, because I didn\u0027t realise the api service creates a placeholder image first and passes it to the compute (that\u0027s pretty weird, btw; I wonder why it does that).\n\nAnyway, in that context, this is actually an uncoupling. As you say, the driver adds these fields later, and they aren\u0027t known at this point. Omitting them here makes perfect sense.","commit_id":"e4c4f4a91db800420bf3753ec795eff684a59f5d"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"b33db0ca34d22bd2d49707ab1a8dbc2dd78001b7","unresolved":false,"context_lines":[{"line_number":2205,"context_line":"        # NOTE(nic): if we\u0027re making a snapshot, omit the disk and container"},{"line_number":2206,"context_line":"        # formats, since the image may have been converted.  The driver will"},{"line_number":2207,"context_line":"        # populate these later on upload."},{"line_number":2208,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2209,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2210,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"},{"line_number":2211,"context_line":"        return self.image_api.create(context, image_meta)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_89793032","line":2208,"in_reply_to":"ba63e191_deb53731","updated":"2016-01-20 15:00:59.000000000","message":"I\u0027m going to need you to reproduce this bug and see the error condition for yourself before I entertain the notion of discussing this further.\n\nWhile debate and discussion are almost always healthy, you have available a very small test case that would demonstrate in short order that no, the problem is not one of propagation, and that the failure occurs well before the driver is ever consulted.\n\nYou will save a tremendous amount of time if you familiarize yourself with the reported bug before commenting on the correctness of the proposed fix.","commit_id":"e4c4f4a91db800420bf3753ec795eff684a59f5d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3f46b77a1fb636aceab654de6b79e50bc4267820","unresolved":false,"context_lines":[{"line_number":2264,"context_line":""},{"line_number":2265,"context_line":"        image_meta \u003d self._initialize_instance_snapshot_metadata("},{"line_number":2266,"context_line":"            instance, name, properties)"},{"line_number":2267,"context_line":"        # NOTE(nic): if we\u0027re making a snapshot, omit the disk and container"},{"line_number":2268,"context_line":"        # formats, since the image may have been converted.  The driver will"},{"line_number":2269,"context_line":"        # populate these later on upload."},{"line_number":2270,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5aef4532_d257ff55","line":2267,"updated":"2016-03-10 14:09:29.000000000","message":"Please remove that \u0027NOTE(nic)\u0027 That is basically a comment.\n\nPerhaps you can improve a little bit this comment by indicate that Nova is doing a raw snapshot then based on the properties when uploading to Glance, it is doing conversion so we prefer to erase those properties to let Glance fix them when images uploaded and so Glance doing that conversion is necessary.","commit_id":"3f089bbd94d44bafbd985123155d441c6e7d5b9f"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"865b43d5a0d0572e2c0d37bfe4979fdc1c680fc7","unresolved":false,"context_lines":[{"line_number":2264,"context_line":""},{"line_number":2265,"context_line":"        image_meta \u003d self._initialize_instance_snapshot_metadata("},{"line_number":2266,"context_line":"            instance, name, properties)"},{"line_number":2267,"context_line":"        # NOTE(nic): if we\u0027re making a snapshot, omit the disk and container"},{"line_number":2268,"context_line":"        # formats, since the image may have been converted.  The driver will"},{"line_number":2269,"context_line":"        # populate these later on upload."},{"line_number":2270,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_185f370f","line":2267,"in_reply_to":"5aef4532_d257ff55","updated":"2016-04-13 18:34:29.000000000","message":"Done","commit_id":"3f089bbd94d44bafbd985123155d441c6e7d5b9f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"685733ac978258409a1d5a15665f3cebb5a1e460","unresolved":false,"context_lines":[{"line_number":2299,"context_line":"            instance, name, properties)"},{"line_number":2300,"context_line":"        # if we\u0027re making a snapshot, omit the disk and container formats,"},{"line_number":2301,"context_line":"        # since the image may have been converted to another format, and the"},{"line_number":2302,"context_line":"        # original values won\u0027t be accurate.  The driver will populate these"},{"line_number":2303,"context_line":"        # with the correct values later, on image upload."},{"line_number":2304,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2305,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2306,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_a6ab8288","line":2303,"range":{"start_line":2302,"start_character":46,"end_line":2303,"end_character":57},"updated":"2016-04-25 15:04:45.000000000","message":"Is this true for all of the virt drivers or only the libvirt driver? I guess we could say if there are virt drivers that don\u0027t set these on image upload they are bugs that need separate fixes.","commit_id":"8cfc8a837592c9494608d68db2bac1954c573a4b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"503ac3edc804adfb2bcec190e7f79d195c59e3e1","unresolved":false,"context_lines":[{"line_number":2299,"context_line":"            instance, name, properties)"},{"line_number":2300,"context_line":"        # if we\u0027re making a snapshot, omit the disk and container formats,"},{"line_number":2301,"context_line":"        # since the image may have been converted to another format, and the"},{"line_number":2302,"context_line":"        # original values won\u0027t be accurate.  The driver will populate these"},{"line_number":2303,"context_line":"        # with the correct values later, on image upload."},{"line_number":2304,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2305,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2306,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_de70e774","line":2303,"range":{"start_line":2302,"start_character":46,"end_line":2303,"end_character":57},"in_reply_to":"1a122d0e_03a7bebd","updated":"2016-04-26 15:22:22.000000000","message":"I\u0027ve added the maintainers from xenapi/hyperv/vmware to have them verify this is OK for them.","commit_id":"8cfc8a837592c9494608d68db2bac1954c573a4b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"8629f6250167b0b769fcbadbb02663640b4da14a","unresolved":false,"context_lines":[{"line_number":2300,"context_line":"        # if we\u0027re making a snapshot, omit the disk and container formats,"},{"line_number":2301,"context_line":"        # since the image may have been converted to another format, and the"},{"line_number":2302,"context_line":"        # original values won\u0027t be accurate.  The driver will populate these"},{"line_number":2303,"context_line":"        # with the correct values later, on image upload."},{"line_number":2304,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2305,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2306,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_fa8eaace","line":2303,"in_reply_to":"1a122d0e_9a35f647","updated":"2016-04-25 15:46:06.000000000","message":"It could be interesting to have people involved to other drivers to confirm this.","commit_id":"8cfc8a837592c9494608d68db2bac1954c573a4b"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"6172c6061749a69068f8fa2d40f8a00fb34ce592","unresolved":false,"context_lines":[{"line_number":2299,"context_line":"            instance, name, properties)"},{"line_number":2300,"context_line":"        # if we\u0027re making a snapshot, omit the disk and container formats,"},{"line_number":2301,"context_line":"        # since the image may have been converted to another format, and the"},{"line_number":2302,"context_line":"        # original values won\u0027t be accurate.  The driver will populate these"},{"line_number":2303,"context_line":"        # with the correct values later, on image upload."},{"line_number":2304,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2305,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2306,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_03a7bebd","line":2303,"range":{"start_line":2302,"start_character":46,"end_line":2303,"end_character":57},"in_reply_to":"1a122d0e_a6ab8288","updated":"2016-04-25 22:23:55.000000000","message":"I could change it to \"should populate\" if that would help...","commit_id":"8cfc8a837592c9494608d68db2bac1954c573a4b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"efcfcd5e9eae08441214cdb73abd8f5e7f48070e","unresolved":false,"context_lines":[{"line_number":2300,"context_line":"        # if we\u0027re making a snapshot, omit the disk and container formats,"},{"line_number":2301,"context_line":"        # since the image may have been converted to another format, and the"},{"line_number":2302,"context_line":"        # original values won\u0027t be accurate.  The driver will populate these"},{"line_number":2303,"context_line":"        # with the correct values later, on image upload."},{"line_number":2304,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2305,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2306,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_9a35f647","line":2303,"in_reply_to":"1a122d0e_a6ab8288","updated":"2016-04-25 15:39:08.000000000","message":"Yes that makes sense, I can confirm that libvirt will do it.\n\nThat said I guess virt drivers should do not take into account the type of image returned by glance metadata when booting an instance since that could result a security issue. This information is set as information.","commit_id":"8cfc8a837592c9494608d68db2bac1954c573a4b"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"545b62baa52db3923f7041080261525f75d899b7","unresolved":false,"context_lines":[{"line_number":2299,"context_line":"            instance, name, properties)"},{"line_number":2300,"context_line":"        # if we\u0027re making a snapshot, omit the disk and container formats,"},{"line_number":2301,"context_line":"        # since the image may have been converted to another format, and the"},{"line_number":2302,"context_line":"        # original values won\u0027t be accurate.  The driver will populate these"},{"line_number":2303,"context_line":"        # with the correct values later, on image upload."},{"line_number":2304,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2305,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2306,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"}],"source_content_type":"text/x-python","patch_set":12,"id":"dab17558_592ab22d","line":2303,"range":{"start_line":2302,"start_character":46,"end_line":2303,"end_character":57},"in_reply_to":"1a122d0e_de23c7bb","updated":"2016-05-12 19:31:43.000000000","message":"vmware sets it, as does hyperv. So it looks like we\u0027re good here.","commit_id":"8cfc8a837592c9494608d68db2bac1954c573a4b"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"dfeabdb18696ccd38ff637b6cebcf43ee9c52723","unresolved":false,"context_lines":[{"line_number":2299,"context_line":"            instance, name, properties)"},{"line_number":2300,"context_line":"        # if we\u0027re making a snapshot, omit the disk and container formats,"},{"line_number":2301,"context_line":"        # since the image may have been converted to another format, and the"},{"line_number":2302,"context_line":"        # original values won\u0027t be accurate.  The driver will populate these"},{"line_number":2303,"context_line":"        # with the correct values later, on image upload."},{"line_number":2304,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2305,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2306,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_de23c7bb","line":2303,"range":{"start_line":2302,"start_character":46,"end_line":2303,"end_character":57},"in_reply_to":"1a122d0e_de70e774","updated":"2016-05-05 09:15:58.000000000","message":"Initial checking confirms that when we upload to glance we specify the container format and disk format (http://git.openstack.org/cgit/openstack/nova/tree/plugins/xenserver/xenapi/etc/xapi.d/plugins/glance#n218).\n\nThis change does not seem to modify XenAPI behaviour, so we\u0027re happy.","commit_id":"8cfc8a837592c9494608d68db2bac1954c573a4b"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"ba291e82038d41220f62728c7c7d36926b9765a9","unresolved":false,"context_lines":[{"line_number":2301,"context_line":"        # since the image may have been converted to another format, and the"},{"line_number":2302,"context_line":"        # original values won\u0027t be accurate.  The driver will populate these"},{"line_number":2303,"context_line":"        # with the correct values later, on image upload."},{"line_number":2304,"context_line":"        if image_type \u003d\u003d \u0027snapshot\u0027:"},{"line_number":2305,"context_line":"            image_meta.pop(\u0027disk_format\u0027, None)"},{"line_number":2306,"context_line":"            image_meta.pop(\u0027container_format\u0027, None)"},{"line_number":2307,"context_line":"        return self.image_api.create(context, image_meta)"}],"source_content_type":"text/x-python","patch_set":12,"id":"dab17558_d9ae3e2d","line":2304,"updated":"2016-05-16 08:35:50.000000000","message":"I suspect that bug #1497484 is also actual for backup feature of Nova. Because that following dict cleaning should be done with no conditions. And it should be done in _initialize_instance_snapshot_metadata, since another caller of the function is snapshot_volume_backed, which also removes these values from the dict.","commit_id":"8cfc8a837592c9494608d68db2bac1954c573a4b"}],"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"9ee8b4e9cb82bec7c0886690d6360481d0d1b659","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.project_id \u003d \u0027fake\u0027"},{"line_number":72,"context_line":"        self.context \u003d context.RequestContext(self.user_id,"},{"line_number":73,"context_line":"                                              self.project_id)"},{"line_number":74,"context_line":"        self.flags(force_raw_images\u003dFalse)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _get_vm_states(self, exclude_states\u003dNone):"},{"line_number":77,"context_line":"        vm_state \u003d set([vm_states.ACTIVE, vm_states.BUILDING, vm_states.PAUSED,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_56e6acb0","line":74,"updated":"2015-09-24 15:02:25.000000000","message":"Are you sure that it\u0027s needed? IIANM configuration is reloaded with default values for every test.","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6b17600b74a3a77a4361e7a4e30876762a036e41","unresolved":false,"context_lines":[{"line_number":2001,"context_line":"            if image_meta.get(\u0027disk_format\u0027) \u003d\u003d \u0027raw\u0027:"},{"line_number":2002,"context_line":"                return image"},{"line_number":2003,"context_line":"            else:"},{"line_number":2004,"context_line":"                raise exception.Invalid(\u0027Image not in raw format\u0027)"},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"        with mock.patch.object(self.compute_api.image_api, \u0027create\u0027) as create:"},{"line_number":2007,"context_line":"            create.side_effect \u003d fake_glanceclient"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_3edb341d","line":2004,"updated":"2015-09-22 12:44:45.000000000","message":"the else: is not needed?","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":5280,"name":"Nicolas Simonds","email":"nic@metacloud.com","username":"nicolas.simonds"},"change_message_id":"57eea276b84c4115a27df01da76ece12857fbeaf","unresolved":false,"context_lines":[{"line_number":2001,"context_line":"            if image_meta.get(\u0027disk_format\u0027) \u003d\u003d \u0027raw\u0027:"},{"line_number":2002,"context_line":"                return image"},{"line_number":2003,"context_line":"            else:"},{"line_number":2004,"context_line":"                raise exception.Invalid(\u0027Image not in raw format\u0027)"},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"        with mock.patch.object(self.compute_api.image_api, \u0027create\u0027) as create:"},{"line_number":2007,"context_line":"            create.side_effect \u003d fake_glanceclient"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_6d8336cd","line":2004,"in_reply_to":"ba15a1d1_3edb341d","updated":"2015-09-22 17:05:34.000000000","message":"True, but the code is clearer with it there.\n\nI\u0027m aiming for clarity, not trying to win a round of Python Golf.","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c74abea0ba88aa580d51fda8c02b0cadab402fcc","unresolved":false,"context_lines":[{"line_number":2001,"context_line":"            if image_meta.get(\u0027disk_format\u0027) \u003d\u003d \u0027raw\u0027:"},{"line_number":2002,"context_line":"                return image"},{"line_number":2003,"context_line":"            else:"},{"line_number":2004,"context_line":"                raise exception.Invalid(\u0027Image not in raw format\u0027)"},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"        with mock.patch.object(self.compute_api.image_api, \u0027create\u0027) as create:"},{"line_number":2007,"context_line":"            create.side_effect \u003d fake_glanceclient"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_0397e290","line":2004,"in_reply_to":"ba15a1d1_6d8336cd","updated":"2015-09-22 19:55:57.000000000","message":"unit test is to test the code path and let people know the code flow, so I agree with you if it\u0027s for that purpose","commit_id":"c999a069026dacd2ee4f7363a1202cc055edf47e"}]}
