)]}'
{"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"421f3e351ca875737e3b783deb945d8a4a979bea","unresolved":false,"context_lines":[{"line_number":8534,"context_line":"            \u0027destination_xml\u0027: \u0027\u003cxml/\u003e\u0027,"},{"line_number":8535,"context_line":"        }"},{"line_number":8536,"context_line":"        mock_migrateToURI3.assert_called_once_with("},{"line_number":8537,"context_line":"            drvr._live_migration_uri(\u0027dest\u0027), params\u003dparams, flags\u003d27)"},{"line_number":8538,"context_line":""},{"line_number":8539,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":8540,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f4e5783_0604547a","line":8537,"range":{"start_line":8537,"start_character":67,"end_line":8537,"end_character":69},"updated":"2017-10-12 18:54:57.000000000","message":"Can we not use a magic number here? Or at least add a comment about how you get 27?","commit_id":"895ccdc2aba293f45426665a78722a7e349b95ad"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"bcd9022bf20ab6cfc8c86a85ef277658d4fb2f17","unresolved":false,"context_lines":[{"line_number":8534,"context_line":"            \u0027destination_xml\u0027: \u0027\u003cxml/\u003e\u0027,"},{"line_number":8535,"context_line":"        }"},{"line_number":8536,"context_line":"        mock_migrateToURI3.assert_called_once_with("},{"line_number":8537,"context_line":"            drvr._live_migration_uri(\u0027dest\u0027), params\u003dparams, flags\u003d27)"},{"line_number":8538,"context_line":""},{"line_number":8539,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":8540,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f4e5783_2b168f4a","line":8537,"range":{"start_line":8537,"start_character":67,"end_line":8537,"end_character":69},"in_reply_to":"5f4e5783_0604547a","updated":"2017-10-17 12:52:34.000000000","message":"Magic :) These were already undocumented and I was being lazy. I\u0027ll dig it up.","commit_id":"895ccdc2aba293f45426665a78722a7e349b95ad"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"cccc95b9c647845ef0d1f3df7f96a16fda33d708","unresolved":false,"context_lines":[{"line_number":8534,"context_line":"            \u0027destination_xml\u0027: \u0027\u003cxml/\u003e\u0027,"},{"line_number":8535,"context_line":"        }"},{"line_number":8536,"context_line":"        mock_migrateToURI3.assert_called_once_with("},{"line_number":8537,"context_line":"            drvr._live_migration_uri(\u0027dest\u0027), params\u003dparams, flags\u003d27)"},{"line_number":8538,"context_line":""},{"line_number":8539,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":8540,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f4e5783_aa439041","line":8537,"range":{"start_line":8537,"start_character":67,"end_line":8537,"end_character":69},"in_reply_to":"5f4e5783_2b168f4a","updated":"2017-10-17 17:38:20.000000000","message":"Yep, it would be good to make this better while we\u0027re changing numbers that don\u0027t mean anything to us. I\u0027d rather see something like:\n\n expected_flags \u003d VIR_MIGRATE_X | VIR_MIGRATE_Y\n ...\n flags\u003dexpected_flags","commit_id":"895ccdc2aba293f45426665a78722a7e349b95ad"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"421f3e351ca875737e3b783deb945d8a4a979bea","unresolved":false,"context_lines":[{"line_number":8570,"context_line":"                          True, migrate_data, guest, disk_paths)"},{"line_number":8571,"context_line":"        mock_migrateToURI3.assert_called_once_with("},{"line_number":8572,"context_line":"            drvr._live_migration_uri(\u0027dest\u0027),"},{"line_number":8573,"context_line":"            params\u003dparams, flags\u003d31)"},{"line_number":8574,"context_line":""},{"line_number":8575,"context_line":"    def test_live_migration_raises_exception(self):"},{"line_number":8576,"context_line":"        # Confirms recover method is called when exceptions are raised."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f4e5783_c6f51c85","line":8573,"range":{"start_line":8573,"start_character":33,"end_line":8573,"end_character":35},"updated":"2017-10-12 18:54:57.000000000","message":"Same. Is this the case where migrate_disks is totally absent and should also have VIR_MIGRATE_NON_SHARED_INC removed? Is that why 159 -\u003e 31?","commit_id":"895ccdc2aba293f45426665a78722a7e349b95ad"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e14c6f3a4469cb10d6c7b21e7f7abf9591b8d61b","unresolved":false,"context_lines":[{"line_number":8565,"context_line":"                          False, migrate_data, guest, disk_paths)"},{"line_number":8566,"context_line":"        mock_migrateToURI3.assert_called_once_with("},{"line_number":8567,"context_line":"            drvr._live_migration_uri(\u0027dest\u0027),"},{"line_number":8568,"context_line":"            params\u003dparams, flags\u003d0)"},{"line_number":8569,"context_line":""},{"line_number":8570,"context_line":"    @mock.patch.object(fakelibvirt.virDomain, \"migrateToURI3\")"},{"line_number":8571,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_b5e5d10c","line":8568,"range":{"start_line":8568,"start_character":27,"end_line":8568,"end_character":34},"updated":"2017-10-31 01:25:42.000000000","message":"A test like this would probably be good for asserting VIR_MIGRATE_NON_SHARED_INC is not removed, but you\u0027d have to set block_migration\u003dTrue.","commit_id":"be19fbced32bdf7e1ac37960821b8e29a8cc83f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"45ad5fc231f36df05a8c815605c471461ee7f74c","unresolved":false,"context_lines":[{"line_number":8588,"context_line":""},{"line_number":8589,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":8590,"context_line":"        drvr._live_migration_operation(self.context, instance, \u0027dest\u0027,"},{"line_number":8591,"context_line":"                                       False, migrate_data, guest, [])"},{"line_number":8592,"context_line":""},{"line_number":8593,"context_line":"        params \u003d {"},{"line_number":8594,"context_line":"            \u0027migrate_disks\u0027: [],"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_75e51938","line":8591,"range":{"start_line":8591,"start_character":39,"end_line":8591,"end_character":44},"updated":"2017-10-31 01:23:52.000000000","message":"While this parameter isn\u0027t used in _live_migration_operation, it should be True since it\u0027s the block_migration flag which you have set to True in migrate_data above.","commit_id":"be19fbced32bdf7e1ac37960821b8e29a8cc83f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"45ad5fc231f36df05a8c815605c471461ee7f74c","unresolved":false,"context_lines":[{"line_number":8588,"context_line":""},{"line_number":8589,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":8590,"context_line":"        drvr._live_migration_operation(self.context, instance, \u0027dest\u0027,"},{"line_number":8591,"context_line":"                                       False, migrate_data, guest, [])"},{"line_number":8592,"context_line":""},{"line_number":8593,"context_line":"        params \u003d {"},{"line_number":8594,"context_line":"            \u0027migrate_disks\u0027: [],"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_d5cf2dae","line":8591,"range":{"start_line":8591,"start_character":67,"end_line":8591,"end_character":69},"updated":"2017-10-31 01:23:52.000000000","message":"nit: send device_names\u003d[] or have a local variable for that so people don\u0027t have to look up the parameter to figure out what it is when reading the test.","commit_id":"be19fbced32bdf7e1ac37960821b8e29a8cc83f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"45ad5fc231f36df05a8c815605c471461ee7f74c","unresolved":false,"context_lines":[{"line_number":8591,"context_line":"                                       False, migrate_data, guest, [])"},{"line_number":8592,"context_line":""},{"line_number":8593,"context_line":"        params \u003d {"},{"line_number":8594,"context_line":"            \u0027migrate_disks\u0027: [],"},{"line_number":8595,"context_line":"            \u0027bandwidth\u0027: CONF.libvirt.live_migration_bandwidth,"},{"line_number":8596,"context_line":"            \u0027destination_xml\u0027: \u0027\u003cxml/\u003e\u0027,"},{"line_number":8597,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_55bb3d0d","line":8594,"range":{"start_line":8594,"start_character":29,"end_line":8594,"end_character":31},"updated":"2017-10-31 01:23:52.000000000","message":"This could be your local device_names variable for clarity.","commit_id":"be19fbced32bdf7e1ac37960821b8e29a8cc83f6"}],"nova/virt/libvirt/guest.py":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"c3246bef2530bd3be736bc712d56bfb5b6ce32b3","unresolved":false,"context_lines":[{"line_number":651,"context_line":"                if (flags \u0026 libvirt.VIR_MIGRATE_NON_SHARED_INC !\u003d 0 and"},{"line_number":652,"context_line":"                        not params.get(\u0027migrate_disks\u0027)):"},{"line_number":653,"context_line":"                    flags \u0026\u003d ~libvirt.VIR_MIGRATE_NON_SHARED_INC"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"                if migrate_uri:"},{"line_number":656,"context_line":"                    # In migrateToURI3 this parameter is searched in"},{"line_number":657,"context_line":"                    # the `params` dict"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_99466821","line":654,"updated":"2017-09-26 12:36:14.000000000","message":"Yep, so just for my own understanding, the above is:\n\n   flags \u003d flags \u0026 (Ones\u0027 complement of the flag\n           VIR_MIGRATE_NON_SHARED_INC)\n\nTo unset it.  Okay, looks good. :-)","commit_id":"9bd246c5ae062aa555e0c2d6da4f662ad1a379e9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"421f3e351ca875737e3b783deb945d8a4a979bea","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                # interpreted as \"block migrate all writable disks\" rather than"},{"line_number":646,"context_line":"                # \"don\u0027t block migrate any disks\". This includes attached"},{"line_number":647,"context_line":"                # volumes, which will potentially corrupt data on those"},{"line_number":648,"context_line":"                # volumes. Consequently we need to explitly unset"},{"line_number":649,"context_line":"                # VIR_MIGRATE_NON_SHARED_INC if there are no disks to be block"},{"line_number":650,"context_line":"                # migrated."},{"line_number":651,"context_line":"                if (flags \u0026 libvirt.VIR_MIGRATE_NON_SHARED_INC !\u003d 0 and"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f4e5783_26a63012","line":648,"range":{"start_line":648,"start_character":51,"end_line":648,"end_character":59},"updated":"2017-10-12 18:54:57.000000000","message":"typo","commit_id":"895ccdc2aba293f45426665a78722a7e349b95ad"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"502e657f62d2b3a922ce66942c91564e46191c4a","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                # interpreted as \"block migrate all writable disks\" rather than"},{"line_number":646,"context_line":"                # \"don\u0027t block migrate any disks\". This includes attached"},{"line_number":647,"context_line":"                # volumes, which will potentially corrupt data on those"},{"line_number":648,"context_line":"                # volumes. Consequently we need to explitly unset"},{"line_number":649,"context_line":"                # VIR_MIGRATE_NON_SHARED_INC if there are no disks to be block"},{"line_number":650,"context_line":"                # migrated."},{"line_number":651,"context_line":"                if (flags \u0026 libvirt.VIR_MIGRATE_NON_SHARED_INC !\u003d 0 and"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_dac8aa75","line":648,"range":{"start_line":648,"start_character":51,"end_line":648,"end_character":59},"in_reply_to":"5f4e5783_26a63012","updated":"2017-10-18 13:56:38.000000000","message":"Done","commit_id":"895ccdc2aba293f45426665a78722a7e349b95ad"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8a84e7ae8ea1a5bedf34422516c4d6e91987cb99","unresolved":false,"context_lines":[{"line_number":668,"context_line":"                self._domain.migrateToURI3("},{"line_number":669,"context_line":"                    destination, params\u003dparams, flags\u003dflags)"},{"line_number":670,"context_line":"            else:"},{"line_number":671,"context_line":"                self._domain.migrateToURI2("},{"line_number":672,"context_line":"                    destination, miguri\u003dmigrate_uri, dxml\u003ddomain_xml,"},{"line_number":673,"context_line":"                    flags\u003dflags, bandwidth\u003dbandwidth)"},{"line_number":674,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f4e5783_9eb1364a","line":671,"range":{"start_line":671,"start_character":29,"end_line":671,"end_character":42},"updated":"2017-10-17 19:37:02.000000000","message":"How about this guy? Does he not matter?","commit_id":"895ccdc2aba293f45426665a78722a7e349b95ad"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"a856fc0df84816eeb994956a23d777d14ae675dc","unresolved":false,"context_lines":[{"line_number":668,"context_line":"                self._domain.migrateToURI3("},{"line_number":669,"context_line":"                    destination, params\u003dparams, flags\u003dflags)"},{"line_number":670,"context_line":"            else:"},{"line_number":671,"context_line":"                self._domain.migrateToURI2("},{"line_number":672,"context_line":"                    destination, miguri\u003dmigrate_uri, dxml\u003ddomain_xml,"},{"line_number":673,"context_line":"                    flags\u003dflags, bandwidth\u003dbandwidth)"},{"line_number":674,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_38459171","line":671,"range":{"start_line":671,"start_character":29,"end_line":671,"end_character":42},"in_reply_to":"5f4e5783_9eb1364a","updated":"2017-10-18 08:54:48.000000000","message":"Fortunately no :)","commit_id":"895ccdc2aba293f45426665a78722a7e349b95ad"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"45ad5fc231f36df05a8c815605c471461ee7f74c","unresolved":false,"context_lines":[{"line_number":650,"context_line":"                # migrated."},{"line_number":651,"context_line":"                if (flags \u0026 libvirt.VIR_MIGRATE_NON_SHARED_INC !\u003d 0 and"},{"line_number":652,"context_line":"                        not params.get(\u0027migrate_disks\u0027)):"},{"line_number":653,"context_line":"                    flags \u0026\u003d ~libvirt.VIR_MIGRATE_NON_SHARED_INC"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"                # In migrateToURI3 these parameters are extracted from the"},{"line_number":656,"context_line":"                # `params` dict"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_150945dc","line":653,"updated":"2017-10-31 01:23:52.000000000","message":"I don\u0027t see any tests asserting that you don\u0027t remove VIR_MIGRATE_NON_SHARED_INC, like if migrate_disks is not empty.","commit_id":"be19fbced32bdf7e1ac37960821b8e29a8cc83f6"}]}
