)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"39b1320a28682a9dbe49dfb6f2e2026eab94f683","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Update unit tests to be more strict and check for sizes to be correct."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: Bug LP # 1257355"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Ie3be46024f06b9f59af92f5e3918a1958386d4f1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F90g4%3D","line":17,"updated":"2013-12-05 15:44:16.000000000","message":"Should just be: Closes-Bug: #1257355\n\nThat way the parser will link it to launchpad.","commit_id":"5cd459b800f3406511e7bdc15aa7596c525a5b62"},{"author":{"_account_id":6593,"name":"Dirk Mueller","email":"dirk@dmllr.de","username":"dmllr"},"change_message_id":"79eb89ca65bf84b764cd891361251ad9b3fe77f2","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Update unit tests to be more strict and check for sizes to be correct."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: Bug LP # 1257355"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Ie3be46024f06b9f59af92f5e3918a1958386d4f1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F90SQ%3D","line":17,"in_reply_to":"AAAATn%2F90g4%3D","updated":"2013-12-05 16:32:35.000000000","message":"Done","commit_id":"5cd459b800f3406511e7bdc15aa7596c525a5b62"}],"nova/tests/virt/libvirt/test_libvirt.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"39b1320a28682a9dbe49dfb6f2e2026eab94f683","unresolved":false,"context_lines":[{"line_number":3137,"context_line":"        self.mox.StubOutWithMock(conn, \u0027_fetch_instance_kernel_ramdisk\u0027)"},{"line_number":3138,"context_line":"        self.mox.StubOutWithMock(libvirt_driver.libvirt_utils, \u0027create_image\u0027)"},{"line_number":3139,"context_line":""},{"line_number":3140,"context_line":"        disk_info \u003d {\u0027path\u0027: \u0027foo\u0027, \u0027type\u0027: \u0027qcow2\u0027,"},{"line_number":3141,"context_line":"                     \u0027disk_size\u0027: 1 * 1024 ** 3,"},{"line_number":3142,"context_line":"                     \u0027virt_disk_size\u0027: 20 * 1024 ** 3,"},{"line_number":3143,"context_line":"                     \u0027backing_file\u0027: None}"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F90eA%3D","line":3140,"updated":"2013-12-05 15:44:16.000000000","message":"Thanks a bunch for making this more specific!","commit_id":"5cd459b800f3406511e7bdc15aa7596c525a5b62"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"39b1320a28682a9dbe49dfb6f2e2026eab94f683","unresolved":false,"context_lines":[{"line_number":3152,"context_line":"        conn._create_images_and_backing(self.context, self.test_instance,"},{"line_number":3153,"context_line":"                                        \"/fake/instance/dir\", disk_info_json)"},{"line_number":3154,"context_line":""},{"line_number":3155,"context_line":"    def test_create_images_and_backing_raw(self):"},{"line_number":3156,"context_line":"        conn \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"},{"line_number":3157,"context_line":"        self.mox.StubOutWithMock(conn, \u0027_fetch_instance_kernel_ramdisk\u0027)"},{"line_number":3158,"context_line":"        self.mox.StubOutWithMock(libvirt_driver.libvirt_utils, \u0027create_image\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F90dA%3D","line":3155,"updated":"2013-12-05 15:44:16.000000000","message":"Unless I\u0027m missing something here, couldn\u0027t you merge this test with test_create_images_and_backing into a common private method where you pass in the type (qcow2 or raw)?  That would consolidate the code and make it more maintainable.\n\nAlso, for new tests we want to use mock, so extra points there if you do the testing with mock.  See the ML thread here:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2013-December/021148.html","commit_id":"5cd459b800f3406511e7bdc15aa7596c525a5b62"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e6170f7659dbeb15d2ab5082fa30543f2d238b5","unresolved":false,"context_lines":[{"line_number":3152,"context_line":"        conn._create_images_and_backing(self.context, self.test_instance,"},{"line_number":3153,"context_line":"                                        \"/fake/instance/dir\", disk_info_json)"},{"line_number":3154,"context_line":""},{"line_number":3155,"context_line":"    def test_create_images_and_backing_raw(self):"},{"line_number":3156,"context_line":"        conn \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"},{"line_number":3157,"context_line":"        self.mox.StubOutWithMock(conn, \u0027_fetch_instance_kernel_ramdisk\u0027)"},{"line_number":3158,"context_line":"        self.mox.StubOutWithMock(libvirt_driver.libvirt_utils, \u0027create_image\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F90EE%3D","line":3155,"in_reply_to":"AAAATn%2F90H8%3D","updated":"2013-12-05 16:41:40.000000000","message":"I\u0027m OK with the conversion from mox to mock happening later since I think this should be backported (already tagged the bug with havana-backport-potential).","commit_id":"5cd459b800f3406511e7bdc15aa7596c525a5b62"},{"author":{"_account_id":6593,"name":"Dirk Mueller","email":"dirk@dmllr.de","username":"dmllr"},"change_message_id":"79eb89ca65bf84b764cd891361251ad9b3fe77f2","unresolved":false,"context_lines":[{"line_number":3152,"context_line":"        conn._create_images_and_backing(self.context, self.test_instance,"},{"line_number":3153,"context_line":"                                        \"/fake/instance/dir\", disk_info_json)"},{"line_number":3154,"context_line":""},{"line_number":3155,"context_line":"    def test_create_images_and_backing_raw(self):"},{"line_number":3156,"context_line":"        conn \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"},{"line_number":3157,"context_line":"        self.mox.StubOutWithMock(conn, \u0027_fetch_instance_kernel_ramdisk\u0027)"},{"line_number":3158,"context_line":"        self.mox.StubOutWithMock(libvirt_driver.libvirt_utils, \u0027create_image\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F90H8%3D","line":3155,"in_reply_to":"AAAATn%2F90dA%3D","updated":"2013-12-05 16:32:35.000000000","message":"Matt, yes that can be done. will upload a new patchset. \n\nI\u0027d rather have the change from mox to mock in a separate patch set (am willing on work on that as a followup), as I intent to propose this patch as a backport to havana and grizzly and would like to keep it as minimal as possible for that.","commit_id":"5cd459b800f3406511e7bdc15aa7596c525a5b62"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"82a29a5a91d01d2271646f928949b119f50d3da8","unresolved":false,"context_lines":[{"line_number":3167,"context_line":"        self.mox.ReplayAll()"},{"line_number":3168,"context_line":""},{"line_number":3169,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, lambda *args: False)"},{"line_number":3170,"context_line":"        disk_info_json \u003d jsonutils.dumps([{\u0027path\u0027: \u0027foo\u0027, \u0027type\u0027: None,"},{"line_number":3171,"context_line":"                                           \u0027disk_size\u0027: 0,"},{"line_number":3172,"context_line":"                                           \u0027backing_file\u0027: None}])"},{"line_number":3173,"context_line":"        conn._create_images_and_backing(self.context, self.test_instance,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F90DU%3D","side":"PARENT","line":3170,"updated":"2013-12-05 16:44:49.000000000","message":"So this was testing type\u003dNone before, which would have made the code go down what is now the \u0027raw\u0027 path for this test, right?  Do you see value in still having a test that passes None for the type to avoid some type of regression?","commit_id":"49c8d9b7b34d036eeea9f89e077bce8829e9b7e1"},{"author":{"_account_id":6593,"name":"Dirk Mueller","email":"dirk@dmllr.de","username":"dmllr"},"change_message_id":"be4f3b79527172f809f87a0455526e669009f8d6","unresolved":false,"context_lines":[{"line_number":3167,"context_line":"        self.mox.ReplayAll()"},{"line_number":3168,"context_line":""},{"line_number":3169,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, lambda *args: False)"},{"line_number":3170,"context_line":"        disk_info_json \u003d jsonutils.dumps([{\u0027path\u0027: \u0027foo\u0027, \u0027type\u0027: None,"},{"line_number":3171,"context_line":"                                           \u0027disk_size\u0027: 0,"},{"line_number":3172,"context_line":"                                           \u0027backing_file\u0027: None}])"},{"line_number":3173,"context_line":"        conn._create_images_and_backing(self.context, self.test_instance,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9v5Y%3D","side":"PARENT","line":3170,"in_reply_to":"AAAATn%2F90DU%3D","updated":"2013-12-06 12:45:42.000000000","message":"I can add it if you want, but I think type\u003dNone is not a valid type..\n\nafaik it is always initialized by libvirt to \"something\"","commit_id":"49c8d9b7b34d036eeea9f89e077bce8829e9b7e1"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"11804b3352b20eaaa280a1d2c3206257ea0b53bc","unresolved":false,"context_lines":[{"line_number":3167,"context_line":"        self.mox.ReplayAll()"},{"line_number":3168,"context_line":""},{"line_number":3169,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, lambda *args: False)"},{"line_number":3170,"context_line":"        disk_info_json \u003d jsonutils.dumps([{\u0027path\u0027: \u0027foo\u0027, \u0027type\u0027: None,"},{"line_number":3171,"context_line":"                                           \u0027disk_size\u0027: 0,"},{"line_number":3172,"context_line":"                                           \u0027backing_file\u0027: None}])"},{"line_number":3173,"context_line":"        conn._create_images_and_backing(self.context, self.test_instance,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9GzQ%3D","side":"PARENT","line":3170,"in_reply_to":"AAAATn%2F9v5Y%3D","updated":"2013-12-16 18:42:23.000000000","message":"Yes, it should always be initialized to some value by libvirt.","commit_id":"49c8d9b7b34d036eeea9f89e077bce8829e9b7e1"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"39b1320a28682a9dbe49dfb6f2e2026eab94f683","unresolved":false,"context_lines":[{"line_number":4437,"context_line":"    def get_instance_disk_info(self, instance_name, xml\u003dNone,"},{"line_number":4438,"context_line":"                               block_device_info\u003dNone):"},{"line_number":4439,"context_line":"        \"\"\"Preparation block migration."},{"line_number":4440,"context_line":""},{"line_number":4441,"context_line":"        :params instance:"},{"line_number":4442,"context_line":"            nova.db.sqlalchemy.models.Instance object"},{"line_number":4443,"context_line":"            instance object that is migrated."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F90fI%3D","line":4440,"updated":"2013-12-05 15:44:16.000000000","message":"well this is obviously wrong, but not for this patch...","commit_id":"5cd459b800f3406511e7bdc15aa7596c525a5b62"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e6170f7659dbeb15d2ab5082fa30543f2d238b5","unresolved":false,"context_lines":[{"line_number":4437,"context_line":"    def get_instance_disk_info(self, instance_name, xml\u003dNone,"},{"line_number":4438,"context_line":"                               block_device_info\u003dNone):"},{"line_number":4439,"context_line":"        \"\"\"Preparation block migration."},{"line_number":4440,"context_line":""},{"line_number":4441,"context_line":"        :params instance:"},{"line_number":4442,"context_line":"            nova.db.sqlalchemy.models.Instance object"},{"line_number":4443,"context_line":"            instance object that is migrated."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F90EQ%3D","line":4440,"in_reply_to":"AAAATn%2F90Qk%3D","updated":"2013-12-05 16:41:40.000000000","message":"Thanks, commented on that one.","commit_id":"5cd459b800f3406511e7bdc15aa7596c525a5b62"},{"author":{"_account_id":6593,"name":"Dirk Mueller","email":"dirk@dmllr.de","username":"dmllr"},"change_message_id":"79eb89ca65bf84b764cd891361251ad9b3fe77f2","unresolved":false,"context_lines":[{"line_number":4437,"context_line":"    def get_instance_disk_info(self, instance_name, xml\u003dNone,"},{"line_number":4438,"context_line":"                               block_device_info\u003dNone):"},{"line_number":4439,"context_line":"        \"\"\"Preparation block migration."},{"line_number":4440,"context_line":""},{"line_number":4441,"context_line":"        :params instance:"},{"line_number":4442,"context_line":"            nova.db.sqlalchemy.models.Instance object"},{"line_number":4443,"context_line":"            instance object that is migrated."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F90Qk%3D","line":4440,"in_reply_to":"AAAATn%2F90fI%3D","updated":"2013-12-05 16:32:35.000000000","message":"Thanks, submitted separately as https://review.openstack.org/60272","commit_id":"5cd459b800f3406511e7bdc15aa7596c525a5b62"}]}
