)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"0673215fc250a537eb3b1f500f857d1b4af46b49","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[1] http://xenbits.xen.org/docs/unstable/misc/xl-disk-configuration.txt"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Close-Bug: #1326238"},{"line_number":18,"context_line":"Change-Id: Ia52d52a01916fac92dc8e648c462e237c0bfc915"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_5e705e41","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":10},"updated":"2014-08-13 12:22:53.000000000","message":"s/`Close-Bug:`/`Closes-Bug:`","commit_id":"551361decc1586227c8940ac40a7817e219149c7"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"d1757cbb07d8870ff93b0d028cc16baf177ba5a2","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[1] http://xenbits.xen.org/docs/unstable/misc/xl-disk-configuration.txt"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Close-Bug: #1326238"},{"line_number":18,"context_line":"Change-Id: Ia52d52a01916fac92dc8e648c462e237c0bfc915"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_118fb730","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":10},"in_reply_to":"baada198_5e705e41","updated":"2014-08-13 12:31:58.000000000","message":"Indeed","commit_id":"551361decc1586227c8940ac40a7817e219149c7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3f6149343faa0edacd54ad8f62bd314cfb9a73aa","unresolved":false,"context_lines":[{"line_number":11,"context_line":"documentation states that the disk driver \"should not be specified,"},{"line_number":12,"context_line":"in which case libxl will automatically determine the most suitable"},{"line_number":13,"context_line":"backend\" [2]. However, even if libvirt does it OK [3] not setting the"},{"line_number":14,"context_line":"driver name so that libxl choses the best backend, it sets the file"},{"line_number":15,"context_line":"format to \u0027raw\u0027 so that a wrong backend will be chosen by libxl."},{"line_number":16,"context_line":"Since \u0027qdisk\u0027 seems to be the preferred option, it seems be safe"},{"line_number":17,"context_line":"to set it as the backend."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7a8c0949_f0bd9c69","line":14,"updated":"2014-11-06 06:07:47.000000000","message":"s/choses/chooses/","commit_id":"0b857798fc4553f86b193a85c4f0dfc90b4137a4"}],"nova/virt/libvirt/utils.py":[{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"0673215fc250a537eb3b1f500f857d1b4af46b49","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            # Do not specify driver so that the most suitable is automatically"},{"line_number":225,"context_line":"            # selected"},{"line_number":226,"context_line":"            if hypervisor_version \u003e\u003d 4002000:"},{"line_number":227,"context_line":"                return None"},{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_be789af8","line":227,"range":{"start_line":227,"start_character":23,"end_line":227,"end_character":27},"updated":"2014-08-13 12:22:53.000000000","message":"You can use just `return` here without `None`","commit_id":"551361decc1586227c8940ac40a7817e219149c7"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"d1757cbb07d8870ff93b0d028cc16baf177ba5a2","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            # Do not specify driver so that the most suitable is automatically"},{"line_number":225,"context_line":"            # selected"},{"line_number":226,"context_line":"            if hypervisor_version \u003e\u003d 4002000:"},{"line_number":227,"context_line":"                return None"},{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_b12b6b31","line":227,"range":{"start_line":227,"start_character":23,"end_line":227,"end_character":27},"in_reply_to":"baada198_be789af8","updated":"2014-08-13 12:31:58.000000000","message":"I know that, but I\u0027d prefer returning None, as the other condition in the function (see L238)","commit_id":"551361decc1586227c8940ac40a7817e219149c7"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"0673215fc250a537eb3b1f500f857d1b4af46b49","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""},{"line_number":231,"context_line":"            else:"},{"line_number":232,"context_line":"                return \"tap\""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    elif CONF.libvirt.virt_type in (\u0027kvm\u0027, \u0027qemu\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_9e259618","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":17},"updated":"2014-08-13 12:22:53.000000000","message":"I think this condition not needed.","commit_id":"551361decc1586227c8940ac40a7817e219149c7"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"2b3c34bfa0f38cf9fe4dd2f0d9e3b2cd5eaefdee","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""},{"line_number":231,"context_line":"            else:"},{"line_number":232,"context_line":"                return \"tap\""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    elif CONF.libvirt.virt_type in (\u0027kvm\u0027, \u0027qemu\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_4a1c187c","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":17},"in_reply_to":"baada198_919bc778","updated":"2014-08-13 13:45:02.000000000","message":"Sorry, I misunderstood you. You were talking about the \"else\", right?","commit_id":"551361decc1586227c8940ac40a7817e219149c7"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"d1757cbb07d8870ff93b0d028cc16baf177ba5a2","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""},{"line_number":231,"context_line":"            else:"},{"line_number":232,"context_line":"                return \"tap\""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    elif CONF.libvirt.virt_type in (\u0027kvm\u0027, \u0027qemu\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_919bc778","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":17},"in_reply_to":"baada198_9e259618","updated":"2014-08-13 12:31:58.000000000","message":"Why?","commit_id":"551361decc1586227c8940ac40a7817e219149c7"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"6c744392ba506a6678612bceaac0457869108255","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""},{"line_number":231,"context_line":"            else:"},{"line_number":232,"context_line":"                return \"tap\""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    elif CONF.libvirt.virt_type in (\u0027kvm\u0027, \u0027qemu\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_7440e1a2","line":231,"updated":"2014-08-13 13:02:42.000000000","message":"Well I\u0027m fine with this condition (you could omit that else and just return \"tap\" at the end of block, but in the name of the readability I would stick to \u0027else\u0027 here :)).","commit_id":"2df20288c0be380bc159479dce4401f36c35d375"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"142b1fa6d79e8cae30b3246f3af272a10a4175cd","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""},{"line_number":231,"context_line":"            else:"},{"line_number":232,"context_line":"                return \"tap\""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    elif CONF.libvirt.virt_type in (\u0027kvm\u0027, \u0027qemu\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_a5f9651e","line":231,"in_reply_to":"baada198_7440e1a2","updated":"2014-08-13 13:45:53.000000000","message":"Yeah, I misunderstood the other review.","commit_id":"2df20288c0be380bc159479dce4401f36c35d375"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"cbbb6afa5c5a87a10816e3a52cf5956a34d4f6e8","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        else:"},{"line_number":223,"context_line":"            # 4002000 \u003d\u003d 4.2.0"},{"line_number":224,"context_line":"            if hypervisor_version \u003e\u003d 4002000:"},{"line_number":225,"context_line":"                return \u0027qemu\u0027"},{"line_number":226,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":227,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":228,"context_line":"                return \"tap2\""}],"source_content_type":"text/x-python","patch_set":5,"id":"1abeadc6_83602aa6","line":225,"updated":"2014-08-29 16:47:37.000000000","message":"indeed the good value for libvirt to use qdisk is \"qemu\" - http://libvirt.org/git/?p\u003dlibvirt.git;a\u003dblob;f\u003dsrc/libxl/libxl_conf.c;h\u003d1210500858b00b1d10b0bc921ab8b5efc87e630f;hb\u003dHEAD#l792","commit_id":"7d1e13c52448a283439b18143542b4e9f00b8c32"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"d5a8ced89e162f51beff4e81a03b763ab81e358e","unresolved":false,"context_lines":[{"line_number":223,"context_line":"            return \"phy\""},{"line_number":224,"context_line":"        else:"},{"line_number":225,"context_line":"            # 4002000 \u003d\u003d 4.2.0"},{"line_number":226,"context_line":"            if hypervisor_version \u003e\u003d 4002000:"},{"line_number":227,"context_line":"                return \u0027qemu\u0027"},{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""}],"source_content_type":"text/x-python","patch_set":7,"id":"baa201ad_8567cd24","line":227,"range":{"start_line":226,"start_character":37,"end_line":227,"end_character":21},"updated":"2014-10-10 11:39:55.000000000","message":"i","commit_id":"3d1c2f7163c3f7a71eca7eba080e6d6c865f9296"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3f6149343faa0edacd54ad8f62bd314cfb9a73aa","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    If the hypervisor supports multiple backend drivers, then the name"},{"line_number":212,"context_line":"    attribute selects the primary backend driver name, while the optional"},{"line_number":213,"context_line":"    type attribute provides the sub-type.  For example, xen supports a name"},{"line_number":214,"context_line":"    of \"tap\", \"tap2\", \"phy\", or \"file\", with a type of \"aio\" or \"qcow2\","},{"line_number":215,"context_line":"    while qemu only supports a name of \"qemu\", but multiple types including"},{"line_number":216,"context_line":"    \"raw\", \"bochs\", \"qcow2\", and \"qed\"."}],"source_content_type":"text/x-python","patch_set":8,"id":"7a8c0949_d0a6e052","line":213,"updated":"2014-11-06 06:07:47.000000000","message":"The comment here about what xen supports doesn\u0027t match the code change.","commit_id":"0b857798fc4553f86b193a85c4f0dfc90b4137a4"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"e15567289e98c36c145f44a09914cf57c9ed9008","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    If the hypervisor supports multiple backend drivers, then the name"},{"line_number":212,"context_line":"    attribute selects the primary backend driver name, while the optional"},{"line_number":213,"context_line":"    type attribute provides the sub-type.  For example, xen supports a name"},{"line_number":214,"context_line":"    of \"tap\", \"tap2\", \"phy\", or \"file\", with a type of \"aio\" or \"qcow2\","},{"line_number":215,"context_line":"    while qemu only supports a name of \"qemu\", but multiple types including"},{"line_number":216,"context_line":"    \"raw\", \"bochs\", \"qcow2\", and \"qed\"."}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_94d2aad0","line":213,"in_reply_to":"7a8c0949_d0a6e052","updated":"2014-11-12 09:03:04.000000000","message":"Actually this is something taken directly from the libvirt configuration. I will fix it.","commit_id":"0b857798fc4553f86b193a85c4f0dfc90b4137a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3f6149343faa0edacd54ad8f62bd314cfb9a73aa","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        if is_block_dev:"},{"line_number":223,"context_line":"            return \"phy\""},{"line_number":224,"context_line":"        else:"},{"line_number":225,"context_line":"            # 4002000 \u003d\u003d 4.2.0"},{"line_number":226,"context_line":"            if hypervisor_version \u003e\u003d 4002000:"},{"line_number":227,"context_line":"                return \u0027qemu\u0027"},{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a8c0949_f032fc0e","line":225,"updated":"2014-11-06 06:07:47.000000000","message":"I see there was some disagreement over the xen patch in the mailing list, can you point to where it was committed?\n\nIt looks like the patch was proposed after xen 4.2.0 was released, why is 4.2.0 used as the min version check?","commit_id":"0b857798fc4553f86b193a85c4f0dfc90b4137a4"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"e15567289e98c36c145f44a09914cf57c9ed9008","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        if is_block_dev:"},{"line_number":223,"context_line":"            return \"phy\""},{"line_number":224,"context_line":"        else:"},{"line_number":225,"context_line":"            # 4002000 \u003d\u003d 4.2.0"},{"line_number":226,"context_line":"            if hypervisor_version \u003e\u003d 4002000:"},{"line_number":227,"context_line":"                return \u0027qemu\u0027"},{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_df7c4b23","line":225,"in_reply_to":"7a8c0949_f032fc0e","updated":"2014-11-12 09:03:04.000000000","message":"You mean disagreement on the Xen ML? I\u0027ve added a reference to the Xen\u0027s commit in my commit message. Does it fit you?\n\nRegarding the version: the patch to prefer qdisk over blktap was introduced in Xen 4.2, but this does not mean that \"qdisk\" was not supported before. Since blktak is not maintained I think it is better to use qdisk directly. Xen 4.2 was chosen because it was the version in which xend was marked as deprecated.","commit_id":"0b857798fc4553f86b193a85c4f0dfc90b4137a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3f6149343faa0edacd54ad8f62bd314cfb9a73aa","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        else:"},{"line_number":225,"context_line":"            # 4002000 \u003d\u003d 4.2.0"},{"line_number":226,"context_line":"            if hypervisor_version \u003e\u003d 4002000:"},{"line_number":227,"context_line":"                return \u0027qemu\u0027"},{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a8c0949_306f24ff","line":227,"updated":"2014-11-06 06:07:47.000000000","message":"According to this:\n\nhttp://xenbits.xen.org/docs/unstable/misc/xl-disk-configuration.txt\n\nThe backendtype support value is qdisk, not qemu?\n\n--\n\nOh I see, libvirt uses that to set the backendtype to qdisk here:\n\nhttp://libvirt.org/git/?p\u003dlibvirt.git;a\u003dblob;f\u003dsrc/libxl/libxl_conf.c;h\u003d1210500858b00b1d10b0bc921ab8b5efc87e630f;hb\u003dHEAD#l793","commit_id":"0b857798fc4553f86b193a85c4f0dfc90b4137a4"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"e15567289e98c36c145f44a09914cf57c9ed9008","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        else:"},{"line_number":225,"context_line":"            # 4002000 \u003d\u003d 4.2.0"},{"line_number":226,"context_line":"            if hypervisor_version \u003e\u003d 4002000:"},{"line_number":227,"context_line":"                return \u0027qemu\u0027"},{"line_number":228,"context_line":"            # 4000000 \u003d\u003d 4.0.0"},{"line_number":229,"context_line":"            elif hypervisor_version \u003e 4000000:"},{"line_number":230,"context_line":"                return \"tap2\""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_144f9abe","line":227,"in_reply_to":"7a8c0949_306f24ff","updated":"2014-11-12 09:03:04.000000000","message":"As you said, the values is \"qemu\" if you\u0027re using \"xl\" directly. If you\u0027re using libvirt, the value should be \"qemu\" and libvirt will set it to \"qdisk\".","commit_id":"0b857798fc4553f86b193a85c4f0dfc90b4137a4"}]}
