)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5937c944e37375e1d18e1380d4869d239b28d976","unresolved":false,"context_lines":[{"line_number":13,"context_line":"size is a total space that ploop directory consumes."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #1528638"},{"line_number":16,"context_line":"Depends-on: Icde0152ba1e735293fdaebde592a43a9242a6c3f"},{"line_number":17,"context_line":"Change-Id: I7bac5511df1f30ded3cea263e6b46e605e20e5fb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"3aaa91ec_da074016","line":16,"updated":"2016-06-24 01:13:30.000000000","message":"You could drop this since the changes are stacked up in the same branch anyway.","commit_id":"0b1fe245c244632e82a318ee90ff5c279eaf94a6"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"157b1dff235965925d93b8903726d57b51de2071","unresolved":false,"context_lines":[{"line_number":14039,"context_line":"        self.assertEqual(info[0][\u0027type\u0027], \u0027ploop\u0027)"},{"line_number":14040,"context_line":"        self.assertEqual(info[0][\u0027path\u0027], \u0027/test/disk\u0027)"},{"line_number":14041,"context_line":"        self.assertEqual(info[0][\u0027disk_size\u0027], 827327254)"},{"line_number":14042,"context_line":"        self.assertEqual(info[0][\u0027over_committed_disk_size\u0027], 20647509226)"},{"line_number":14043,"context_line":""},{"line_number":14044,"context_line":""},{"line_number":14045,"context_line":"class HostStateTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_4ed81654","line":14042,"range":{"start_line":14042,"start_character":8,"end_line":14042,"end_character":74},"updated":"2016-06-22 14:25:46.000000000","message":"I\u0027d like to see virt_disk_size checking here also.","commit_id":"07eab983b8497a8eec10667d443d3df1baeba3f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"69b65e689361e652d873a61a86e0e30b01a93431","unresolved":false,"context_lines":[{"line_number":14056,"context_line":"                    \"\u003c/devices\u003e\u003c/domain\u003e\")"},{"line_number":14057,"context_line":""},{"line_number":14058,"context_line":"        # Preparing mocks"},{"line_number":14059,"context_line":"        vdmock \u003d self.mox.CreateMock(fakelibvirt.virDomain)"},{"line_number":14060,"context_line":"        self.mox.StubOutWithMock(vdmock, \"XMLDesc\")"},{"line_number":14061,"context_line":"        vdmock.XMLDesc(flags\u003d0).AndReturn(dummyxml)"},{"line_number":14062,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_7aa28cfe","line":14059,"updated":"2016-06-24 01:19:07.000000000","message":"We should be using mock for new tests instead of mox.","commit_id":"0b1fe245c244632e82a318ee90ff5c279eaf94a6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"631dcd68229d83a195b8477a2bdcf9b7860194d0","unresolved":false,"context_lines":[{"line_number":14067,"context_line":""},{"line_number":14068,"context_line":"        self.flags(virt_type\u003d\u0027parallels\u0027, group\u003d\u0027libvirt\u0027)"},{"line_number":14069,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":14070,"context_line":"        instance[\u0027vm_mode\u0027] \u003d vm_mode.EXE"},{"line_number":14071,"context_line":"        fake_dom \u003d FakeVirtDomain(fake_xml\u003ddummyxml)"},{"line_number":14072,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"},{"line_number":14073,"context_line":"        mock_get_domain.return_value \u003d fake_dom"}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_a51b0980","line":14070,"updated":"2016-06-24 20:28:57.000000000","message":"We want to remove the dict-compat mixin from instance objects so please use dot notation for accessing fields on an instance object.","commit_id":"a00380c11cd5d345f6e628842d44af04e3662fdb"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"bd3797a4150ee20a86f5f2671086fca2f0fa4eb8","unresolved":false,"context_lines":[{"line_number":6684,"context_line":"                continue"},{"line_number":6685,"context_line":""},{"line_number":6686,"context_line":"            disk_type \u003d driver_nodes[cnt].get(\u0027type\u0027)"},{"line_number":6687,"context_line":"            if disk_type \u003d\u003d \"qcow2\":"},{"line_number":6688,"context_line":"                backing_file \u003d libvirt_utils.get_disk_backing_file(path)"},{"line_number":6689,"context_line":"                virt_size \u003d disk.get_disk_size(path)"},{"line_number":6690,"context_line":"                over_commit_size \u003d int(virt_size) - dk_size"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_b8fff932","side":"PARENT","line":6687,"updated":"2016-06-17 11:38:44.000000000","message":"Can we review this part as:\n\n  if disk_type in (\"qcow2\", \"ploop\"):\n    if disk_type \u003d\u003d \"qcow2\":\n       disk_path \u003d path\n    elif disk_type \u003d\u003d \"ploop\":\n      # Perhaps you can add comment here since it\u0027s specific to\n      # ploop\n      disk_path \u003d os.path.join(path, \u0027root.hds\u0027)\n    backing_file \u003d libvirt_utils.get_disk_backing_file(disk_path)\n    virt_size \u003d disk.get_disk_size(disk_path)\n    over_commit_size \u003d int(virt_size) - dk_size\n  else:\n   ...","commit_id":"11e23346b5f1ef7ca24aa24419a7465ee1f70752"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"bd3797a4150ee20a86f5f2671086fca2f0fa4eb8","unresolved":false,"context_lines":[{"line_number":6647,"context_line":""},{"line_number":6648,"context_line":"        disk_info \u003d []"},{"line_number":6649,"context_line":"        doc \u003d etree.fromstring(xml)"},{"line_number":6650,"context_line":"        if (CONF.libvirt.virt_type \u003d\u003d \u0027parallels\u0027 and"},{"line_number":6651,"context_line":"            doc.find(\u0027os/type\u0027).text \u003d\u003d \u0027exe\u0027):"},{"line_number":6652,"context_line":"            disk_nodes \u003d doc.findall(\u0027.//devices/filesystem\u0027)"},{"line_number":6653,"context_line":"            path_nodes \u003d doc.findall(\u0027.//devices/filesystem/source\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_78e8f1b3","line":6650,"updated":"2016-06-17 11:38:44.000000000","message":"Can we have something like an helper here ?\n\n  def find_nodes(doc, device_type):\n    return (doc.findall(\u0027.//devices/%s\u0027 % device_type),\n            doc.findall(\u0027.//devices/%s/source\u0027 % device_type),\n            doc.findall(\u0027.//devices/%s/driver\u0027 % device_type),\n            doc.findall(\u0027.//devices/%s/target\u0027 % device_type))","commit_id":"0b8c55540066b0cae4d789aa77b6db25cd4fd0ec"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"62e483fe2e9fe46c16034109e7a2c673a7976f3e","unresolved":false,"context_lines":[{"line_number":6681,"context_line":"                    doc.findall(\u0027.//devices/%s/driver\u0027 % device_type),"},{"line_number":6682,"context_line":"                    doc.findall(\u0027.//devices/%s/target\u0027 % device_type))"},{"line_number":6683,"context_line":""},{"line_number":6684,"context_line":"        if (CONF.libvirt.virt_type \u003d\u003d \u0027parallels\u0027 and"},{"line_number":6685,"context_line":"            doc.find(\u0027os/type\u0027).text \u003d\u003d \u0027exe\u0027):"},{"line_number":6686,"context_line":"            (disk_nodes, path_nodes,"},{"line_number":6687,"context_line":"             driver_nodes, target_nodes) \u003d find_nodes(doc, \u0027filesystem\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a9d85d2_c49372f9","line":6684,"updated":"2016-06-20 08:35:11.000000000","message":"Hum I\u0027d do:\n\nif (CONF.libvirt_type \u003d\u003d \u0027parallels\u0027..):\n  node_type \u003d \"filesystem\"\nelse:\n  node_type \u003d \"disk\"\n ... \u003d find_nodes(doc, node_type)","commit_id":"110d42e75599999caa97a22fb7372d1c233209cb"},{"author":{"_account_id":12408,"name":"Maxim Nestratov","email":"mnestratov@virtuozzo.com","username":"mnestratov"},"change_message_id":"b4352c1c2b24b3be90b64eb27141519b6deb2340","unresolved":false,"context_lines":[{"line_number":6737,"context_line":"            if disk_type in (\"qcow2\", \"ploop\"):"},{"line_number":6738,"context_line":"                if disk_type \u003d\u003d \"qcow2\":"},{"line_number":6739,"context_line":"                    disk_path \u003d path"},{"line_number":6740,"context_line":"                elif disk_type \u003d\u003d \"ploop\":"},{"line_number":6741,"context_line":"                    disk_path \u003d os.path.join(path, \u0027root.hds\u0027)"},{"line_number":6742,"context_line":"                backing_file \u003d libvirt_utils.get_disk_backing_file(disk_path)"},{"line_number":6743,"context_line":"                virt_size \u003d disk.get_disk_size(disk_path)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a9d85d2_4c791bf6","line":6740,"range":{"start_line":6740,"start_character":40,"end_line":6740,"end_character":42},"updated":"2016-06-21 14:19:03.000000000","message":"please use https://review.openstack.org/#/c/260636 as this is not the only place calling get_disk_size and get_disk_backing_file","commit_id":"f6555c5cf76d0c14b764f993ed00e299c76ab6d4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a55b03e156b28385da737c828390836fafe6241e","unresolved":false,"context_lines":[{"line_number":6692,"context_line":"                    doc.findall(\u0027.//devices/%s/target\u0027 % device_type))"},{"line_number":6693,"context_line":""},{"line_number":6694,"context_line":"        if (CONF.libvirt.virt_type \u003d\u003d \u0027parallels\u0027 and"},{"line_number":6695,"context_line":"            doc.find(\u0027os/type\u0027).text \u003d\u003d \u0027exe\u0027):"},{"line_number":6696,"context_line":"            node_type \u003d \u0027filesystem\u0027"},{"line_number":6697,"context_line":"        else:"},{"line_number":6698,"context_line":"            node_type \u003d \u0027disk\u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_daf10003","line":6695,"range":{"start_line":6695,"start_character":40,"end_line":6695,"end_character":45},"updated":"2016-06-24 01:21:37.000000000","message":"nit: use vm_mode.EXE like other places in this module that are checking similar conditions.","commit_id":"0b1fe245c244632e82a318ee90ff5c279eaf94a6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"69b65e689361e652d873a61a86e0e30b01a93431","unresolved":false,"context_lines":[{"line_number":6703,"context_line":"        for cnt, path_node in enumerate(path_nodes):"},{"line_number":6704,"context_line":"            disk_type \u003d disk_nodes[cnt].get(\u0027type\u0027)"},{"line_number":6705,"context_line":"            path \u003d path_node.get(\u0027file\u0027) or path_node.get(\u0027dev\u0027)"},{"line_number":6706,"context_line":"            if (CONF.libvirt.virt_type \u003d\u003d \u0027parallels\u0027 and"},{"line_number":6707,"context_line":"                doc.find(\u0027os/type\u0027).text \u003d\u003d \u0027exe\u0027):"},{"line_number":6708,"context_line":"                target \u003d target_nodes[cnt].attrib[\u0027dir\u0027]"},{"line_number":6709,"context_line":"            else:"},{"line_number":6710,"context_line":"                target \u003d target_nodes[cnt].attrib[\u0027dev\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_fa679ce6","line":6707,"range":{"start_line":6706,"start_character":12,"end_line":6707,"end_character":51},"updated":"2016-06-24 01:19:07.000000000","message":"Since you check this above, couldn\u0027t you just check if node_type \u003d\u003d \u0027filesystem\u0027? Or at least set some local boolean variable so we don\u0027t have to check this twice?","commit_id":"0b1fe245c244632e82a318ee90ff5c279eaf94a6"}]}
