)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"39361f1b2cc878c8d0147b6cdb07a69f3be94efc","unresolved":false,"context_lines":[{"line_number":7270,"context_line":"                self._disk_resize(image, size)"},{"line_number":7271,"context_line":"            if info[\u0027type\u0027] \u003d\u003d \u0027raw\u0027 and CONF.use_cow_images:"},{"line_number":7272,"context_line":"                self._disk_raw_to_qcow2(info[\u0027path\u0027])"},{"line_number":7273,"context_line":""},{"line_number":7274,"context_line":"        disk_info \u003d blockinfo.get_disk_info(CONF.libvirt.virt_type,"},{"line_number":7275,"context_line":"                                            instance,"},{"line_number":7276,"context_line":"                                            image_meta,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_9f80c18c","side":"PARENT","line":7273,"updated":"2016-02-24 15:44:50.000000000","message":"Nice find, let\u0027s get rid of needless format conversions!  (So, reading the bug (and the commit that added the above lines) you\u0027re addressing, so no one seems to remember the rationale for this additional conversion... :-))","commit_id":"076d5e779d15ccffe9abafa66f1c6a95148ca883"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ad997007c5656dd912b1c362e0bbbb9270e80bfe","unresolved":false,"context_lines":[{"line_number":7307,"context_line":""},{"line_number":7308,"context_line":"        # resize disks. only \"disk\" and \"disk.local\" are necessary."},{"line_number":7309,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7310,"context_line":"        for info in disk_info:"},{"line_number":7311,"context_line":"            size \u003d self._disk_size_from_instance(instance, info)"},{"line_number":7312,"context_line":"            if resize_instance:"},{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_ef2a608f","side":"PARENT","line":7310,"updated":"2016-03-09 12:15:34.000000000","message":"What you want do to is probably to check that whether info[\u0027path\u0027].endswith(\u0027disk\u0027) or info[\u0027path\u0027].endswith(\u0027disk.local\u0027).","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"8f7d9c40704e3bde5994f48024e7ecad63cab1ab","unresolved":false,"context_lines":[{"line_number":7307,"context_line":""},{"line_number":7308,"context_line":"        # resize disks. only \"disk\" and \"disk.local\" are necessary."},{"line_number":7309,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7310,"context_line":"        for info in disk_info:"},{"line_number":7311,"context_line":"            size \u003d self._disk_size_from_instance(instance, info)"},{"line_number":7312,"context_line":"            if resize_instance:"},{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_ea6a45b2","side":"PARENT","line":7310,"in_reply_to":"5aef4532_01c79c96","updated":"2016-03-09 14:27:11.000000000","message":"I feel like that would yet more unfathomable tight-coupling in some already messy code. I don\u0027t want to touch it in this patch. It requires a proper cleanup.","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"3cac2aa8eddbbfaba247bf92e5126b1785b98ae1","unresolved":false,"context_lines":[{"line_number":7307,"context_line":""},{"line_number":7308,"context_line":"        # resize disks. only \"disk\" and \"disk.local\" are necessary."},{"line_number":7309,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7310,"context_line":"        for info in disk_info:"},{"line_number":7311,"context_line":"            size \u003d self._disk_size_from_instance(instance, info)"},{"line_number":7312,"context_line":"            if resize_instance:"},{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_beb40782","side":"PARENT","line":7310,"in_reply_to":"5aef4532_9e382b3f","updated":"2016-03-09 13:45:36.000000000","message":"Ah true, so can we also remove the comment above?","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"01728370c1c7c7b53d66db3fd6ebf7d4e23d6c33","unresolved":false,"context_lines":[{"line_number":7307,"context_line":""},{"line_number":7308,"context_line":"        # resize disks. only \"disk\" and \"disk.local\" are necessary."},{"line_number":7309,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7310,"context_line":"        for info in disk_info:"},{"line_number":7311,"context_line":"            size \u003d self._disk_size_from_instance(instance, info)"},{"line_number":7312,"context_line":"            if resize_instance:"},{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_9e382b3f","side":"PARENT","line":7310,"in_reply_to":"5aef4532_bb07f916","updated":"2016-03-09 13:43:12.000000000","message":"Hmm, no. Everything about this is wrong. For example, it doesn\u0027t take into account multiple ephemeral disks called disk.ephN. Should it do swap disks?\n\nThat\u0027s for another day, and another patch, though. For the moment I\u0027d just like to delete the code below, which is definitely wrong in all cases.","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"dcab371f21479c37c43b7b1f36d62dcc658a2b2c","unresolved":false,"context_lines":[{"line_number":7307,"context_line":""},{"line_number":7308,"context_line":"        # resize disks. only \"disk\" and \"disk.local\" are necessary."},{"line_number":7309,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7310,"context_line":"        for info in disk_info:"},{"line_number":7311,"context_line":"            size \u003d self._disk_size_from_instance(instance, info)"},{"line_number":7312,"context_line":"            if resize_instance:"},{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_01c79c96","side":"PARENT","line":7310,"in_reply_to":"5aef4532_beb40782","updated":"2016-03-09 13:53:36.000000000","message":"So you can actually discriminate disk.config instead ? like:\n\n  if not info[\u0027path\u0027].endswith(\u0027disk.config\u0027):\n    ...\n\nBut actually this method is called when resize and  Nova only support resize on root disk.","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"112665be4a54df2f6455db8ea8350cf818a72d97","unresolved":false,"context_lines":[{"line_number":7307,"context_line":""},{"line_number":7308,"context_line":"        # resize disks. only \"disk\" and \"disk.local\" are necessary."},{"line_number":7309,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7310,"context_line":"        for info in disk_info:"},{"line_number":7311,"context_line":"            size \u003d self._disk_size_from_instance(instance, info)"},{"line_number":7312,"context_line":"            if resize_instance:"},{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_9d62e83c","side":"PARENT","line":7310,"in_reply_to":"5aef4532_ea6a45b2","updated":"2016-03-09 15:49:19.000000000","message":"I do not think the code is messy, I think you\u0027ve well pointed out a bug so we should to ensure we are converting only disk and disk.local.\n\nPlease let me know whether that fix your issue and so can you update your patch to add this condition ?","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"231a0736ffb911c7d5978e4337c93b5f2fd81b66","unresolved":false,"context_lines":[{"line_number":7307,"context_line":""},{"line_number":7308,"context_line":"        # resize disks. only \"disk\" and \"disk.local\" are necessary."},{"line_number":7309,"context_line":"        disk_info \u003d jsonutils.loads(disk_info)"},{"line_number":7310,"context_line":"        for info in disk_info:"},{"line_number":7311,"context_line":"            size \u003d self._disk_size_from_instance(instance, info)"},{"line_number":7312,"context_line":"            if resize_instance:"},{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_bb07f916","side":"PARENT","line":7310,"in_reply_to":"5aef4532_ef2a608f","updated":"2016-03-09 13:15:59.000000000","message":"Maybe add this check to the if below?","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ad997007c5656dd912b1c362e0bbbb9270e80bfe","unresolved":false,"context_lines":[{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"},{"line_number":7314,"context_line":"                                                info[\u0027type\u0027])"},{"line_number":7315,"context_line":"                self._disk_resize(image, size)"},{"line_number":7316,"context_line":"            if info[\u0027type\u0027] \u003d\u003d \u0027raw\u0027 and CONF.use_cow_images:"},{"line_number":7317,"context_line":"                self._disk_raw_to_qcow2(info[\u0027path\u0027])"},{"line_number":7318,"context_line":""},{"line_number":7319,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_4f06f486","side":"PARENT","line":7316,"updated":"2016-03-09 12:15:34.000000000","message":"You can\u0027t do something like that because we loose the fact that nova.conf was configured to use_cow_images.","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"8f7d9c40704e3bde5994f48024e7ecad63cab1ab","unresolved":false,"context_lines":[{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"},{"line_number":7314,"context_line":"                                                info[\u0027type\u0027])"},{"line_number":7315,"context_line":"                self._disk_resize(image, size)"},{"line_number":7316,"context_line":"            if info[\u0027type\u0027] \u003d\u003d \u0027raw\u0027 and CONF.use_cow_images:"},{"line_number":7317,"context_line":"                self._disk_raw_to_qcow2(info[\u0027path\u0027])"},{"line_number":7318,"context_line":""},{"line_number":7319,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_2abd4d02","side":"PARENT","line":7316,"in_reply_to":"5aef4532_017f9c15","updated":"2016-03-09 14:27:11.000000000","message":"Yeah, this code is still wrong. It\u0027s always wrong, regardless of what disks it\u0027s processing. Fixing which disks it\u0027s processing is a separate patch requiring much more thought.\n\nFor this patch, I just want to remove this code, which is always wrong.","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"112665be4a54df2f6455db8ea8350cf818a72d97","unresolved":false,"context_lines":[{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"},{"line_number":7314,"context_line":"                                                info[\u0027type\u0027])"},{"line_number":7315,"context_line":"                self._disk_resize(image, size)"},{"line_number":7316,"context_line":"            if info[\u0027type\u0027] \u003d\u003d \u0027raw\u0027 and CONF.use_cow_images:"},{"line_number":7317,"context_line":"                self._disk_raw_to_qcow2(info[\u0027path\u0027])"},{"line_number":7318,"context_line":""},{"line_number":7319,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_fde68c13","side":"PARENT","line":7316,"in_reply_to":"5aef4532_2abd4d02","updated":"2016-03-09 15:49:19.000000000","message":"Hum this part of code is not wrong; If you are migrating an instance using raw disk to a host which have that use_cow_images\u0027s option enabled to its nova.conf, we should to convert disk to qcow2,  this part of code is responsible to do that work.","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"01728370c1c7c7b53d66db3fd6ebf7d4e23d6c33","unresolved":false,"context_lines":[{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"},{"line_number":7314,"context_line":"                                                info[\u0027type\u0027])"},{"line_number":7315,"context_line":"                self._disk_resize(image, size)"},{"line_number":7316,"context_line":"            if info[\u0027type\u0027] \u003d\u003d \u0027raw\u0027 and CONF.use_cow_images:"},{"line_number":7317,"context_line":"                self._disk_raw_to_qcow2(info[\u0027path\u0027])"},{"line_number":7318,"context_line":""},{"line_number":7319,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_5e7b438c","side":"PARENT","line":7316,"in_reply_to":"5aef4532_3b6acaee","updated":"2016-03-09 13:43:12.000000000","message":"What Lee said. Given that the re-conversion was done above in _disk_resize, the deleted code is always wrong.","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"231a0736ffb911c7d5978e4337c93b5f2fd81b66","unresolved":false,"context_lines":[{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"},{"line_number":7314,"context_line":"                                                info[\u0027type\u0027])"},{"line_number":7315,"context_line":"                self._disk_resize(image, size)"},{"line_number":7316,"context_line":"            if info[\u0027type\u0027] \u003d\u003d \u0027raw\u0027 and CONF.use_cow_images:"},{"line_number":7317,"context_line":"                self._disk_raw_to_qcow2(info[\u0027path\u0027])"},{"line_number":7318,"context_line":""},{"line_number":7319,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_3b6acaee","side":"PARENT","line":7316,"in_reply_to":"5aef4532_4f06f486","updated":"2016-03-09 13:15:59.000000000","message":"How do we loose that? The above _disk_resize call would ensure any qcow2 disk that was converted to RAW would already be back to qcow2 by this point. \n\nAll this is doing at present is converting disks that were originally RAW and thus not converted by the call to _disk_resize.","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"dcab371f21479c37c43b7b1f36d62dcc658a2b2c","unresolved":false,"context_lines":[{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"},{"line_number":7314,"context_line":"                                                info[\u0027type\u0027])"},{"line_number":7315,"context_line":"                self._disk_resize(image, size)"},{"line_number":7316,"context_line":"            if info[\u0027type\u0027] \u003d\u003d \u0027raw\u0027 and CONF.use_cow_images:"},{"line_number":7317,"context_line":"                self._disk_raw_to_qcow2(info[\u0027path\u0027])"},{"line_number":7318,"context_line":""},{"line_number":7319,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_017f9c15","side":"PARENT","line":7316,"in_reply_to":"5aef4532_5e7b438c","updated":"2016-03-09 13:53:36.000000000","message":"Please see my comment line 7310","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"d5d827ba8df626ac726ed3ae20259978851f791f","unresolved":false,"context_lines":[{"line_number":7313,"context_line":"                image \u003d imgmodel.LocalFileImage(info[\u0027path\u0027],"},{"line_number":7314,"context_line":"                                                info[\u0027type\u0027])"},{"line_number":7315,"context_line":"                self._disk_resize(image, size)"},{"line_number":7316,"context_line":"            if info[\u0027type\u0027] \u003d\u003d \u0027raw\u0027 and CONF.use_cow_images:"},{"line_number":7317,"context_line":"                self._disk_raw_to_qcow2(info[\u0027path\u0027])"},{"line_number":7318,"context_line":""},{"line_number":7319,"context_line":"        xml \u003d self._get_guest_xml(context, instance, network_info,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_332b0596","side":"PARENT","line":7316,"in_reply_to":"5aef4532_fde68c13","updated":"2016-03-09 16:18:19.000000000","message":"Eurgh, removing this code would open a security bug when moving from a host with use_cow_images\u003dFalse to use_cow_images\u003dTrue, but not vice versa due to the strange implementation of the Raw backend.\n\nSigh... Yet more tight-coupling and no comments \u003e:(\n\nLooks like this will have to wait until later in my storage pools series.","commit_id":"3d7e403cc7a5d9ebcd9a011d6c2055bfbf56cb05"}]}
