)]}'
{"nova/virt/hyperv/livemigrationops.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"98f763bfde0cc89d4ca1814bc47c525c45f1d47f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        instance_name \u003d instance_ref[\"name\"]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if migrate_data:"},{"line_number":55,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":56,"context_line":"        else:"},{"line_number":57,"context_line":"            shared_storage \u003d ("},{"line_number":58,"context_line":"                self._pathutils.check_remote_instances_dir_shared(dest))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_c28becc1","line":55,"updated":"2016-08-22 19:38:55.000000000","message":"If you\u0027re migrating from an older node to a newer one, this will not work, right? At least it will be unset, and migrate_data might even be None, right?","commit_id":"a5753ad9c4408ab1f726a7fa9e990cf24a50d71a"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"022de64e7fa4ab677940d36a82a17ece3eaa233e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        instance_name \u003d instance_ref[\"name\"]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if migrate_data:"},{"line_number":55,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":56,"context_line":"        else:"},{"line_number":57,"context_line":"            shared_storage \u003d ("},{"line_number":58,"context_line":"                self._pathutils.check_remote_instances_dir_shared(dest))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_86086cdb","line":55,"in_reply_to":"1ac06dbe_3f06521d","updated":"2016-08-24 12:07:50.000000000","message":"Just added an extra check on the object version in the latest patch set.","commit_id":"a5753ad9c4408ab1f726a7fa9e990cf24a50d71a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6e76f3a80c5799c5e45020b623021ded637f0376","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        instance_name \u003d instance_ref[\"name\"]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if migrate_data:"},{"line_number":55,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":56,"context_line":"        else:"},{"line_number":57,"context_line":"            shared_storage \u003d ("},{"line_number":58,"context_line":"                self._pathutils.check_remote_instances_dir_shared(dest))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_fdb44783","line":55,"in_reply_to":"1ac06dbe_3f06521d","updated":"2016-08-24 13:21:54.000000000","message":"Why do you say that? Git blame tells me that it has been registered in tree since Feb of this year..","commit_id":"a5753ad9c4408ab1f726a7fa9e990cf24a50d71a"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"32fed831cb543c11cdd5a65ba4546d35d8232588","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        instance_name \u003d instance_ref[\"name\"]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if migrate_data:"},{"line_number":55,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":56,"context_line":"        else:"},{"line_number":57,"context_line":"            shared_storage \u003d ("},{"line_number":58,"context_line":"                self._pathutils.check_remote_instances_dir_shared(dest))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_3f06521d","line":55,"in_reply_to":"1ac06dbe_bc39b0d9","updated":"2016-08-22 20:55:29.000000000","message":"The LiveMigrateData object is not registered, so it cannot be sent \u0027over the wire\u0027, for which reason this was breaking live migration completely for us. Even though we did not use it at the moment, we had to have at least a stub.\n\nA 1.0 HyperVLiveMigrateData would not reach this point. The same object is being passed between RPC calls during live migration, but at the moment, it is lost as some HyperV driver methods do not return it.\n\nAnyway, I can add an extra check on this field.","commit_id":"a5753ad9c4408ab1f726a7fa9e990cf24a50d71a"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"b44623a2b88d0b972c1d55aaa6360cff85a17bb2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        instance_name \u003d instance_ref[\"name\"]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if migrate_data:"},{"line_number":55,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":56,"context_line":"        else:"},{"line_number":57,"context_line":"            shared_storage \u003d ("},{"line_number":58,"context_line":"                self._pathutils.check_remote_instances_dir_shared(dest))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_cd8b1dc2","line":55,"in_reply_to":"1ac06dbe_c28becc1","updated":"2016-08-22 20:04:01.000000000","message":"The migrate_data would be None at this point as the HyperV pre_live_migration method was not returning it back.\n\nFor this reason, we have the check bellow.","commit_id":"a5753ad9c4408ab1f726a7fa9e990cf24a50d71a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cedd80dfdda16cb69b291000377891dc6aa38ae9","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        instance_name \u003d instance_ref[\"name\"]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if migrate_data:"},{"line_number":55,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":56,"context_line":"        else:"},{"line_number":57,"context_line":"            shared_storage \u003d ("},{"line_number":58,"context_line":"                self._pathutils.check_remote_instances_dir_shared(dest))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_bc39b0d9","line":55,"in_reply_to":"1ac06dbe_cd8b1dc2","updated":"2016-08-22 20:31:21.000000000","message":"I\u0027m not sure that\u0027s the case, otherwise why would this patch have been required?\n\nhttps://review.openstack.org/#/c/285370/\n\nIf we got a 1.0 object here, we would explode trying to lazy-load this parameter.","commit_id":"a5753ad9c4408ab1f726a7fa9e990cf24a50d71a"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"643747fa618bf1545c4f622ebf213c1eb256246c","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        instance_name \u003d instance_ref[\"name\"]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if migrate_data:"},{"line_number":55,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":56,"context_line":"        else:"},{"line_number":57,"context_line":"            shared_storage \u003d ("},{"line_number":58,"context_line":"                self._pathutils.check_remote_instances_dir_shared(dest))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_2c9fd251","line":55,"in_reply_to":"1ac06dbe_fdb44783","updated":"2016-08-24 13:44:34.000000000","message":"By not being registered, I mean this:\nhttps://github.com/openstack/nova/blob/a4d23277338e5c917722055552e4852e0eb55c45/nova/objects/migrate_data.py#L27\n\nThis serves as a \u0027base object\u0027, for which reason it is not registered in the VOO registry and cannot be sent via RPC calls.","commit_id":"a5753ad9c4408ab1f726a7fa9e990cf24a50d71a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b5caa85c6b924669d44a5aedb3fcfdcf507e1652","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        if migrate_data and ("},{"line_number":57,"context_line":"                versionutils.convert_version_to_tuple("},{"line_number":58,"context_line":"                    migrate_data.VERSION) \u003e\u003d (1, 1)):"},{"line_number":59,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":60,"context_line":"        else:"},{"line_number":61,"context_line":"            shared_storage \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"1ac06dbe_58b5a92f","line":58,"updated":"2016-08-24 13:30:39.000000000","message":"This is not the right way to do this. Just do this:\n\n if migrate_data and \u0027is_shared_instance_path\u0027 in migrate_data:","commit_id":"bdd31aa44df0ee0aec1f7b7ba53d7e208608991f"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"49ebc1e035cbb7bb226b999aa55027fa26617494","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        if migrate_data and ("},{"line_number":57,"context_line":"                versionutils.convert_version_to_tuple("},{"line_number":58,"context_line":"                    migrate_data.VERSION) \u003e\u003d (1, 1)):"},{"line_number":59,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":60,"context_line":"        else:"},{"line_number":61,"context_line":"            shared_storage \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"1ac06dbe_2ce35207","line":58,"in_reply_to":"1ac06dbe_58b5a92f","updated":"2016-08-24 13:50:53.000000000","message":"Oh, good point, thanks! I was actually wondering what would be the best way to make this check, but for some reason I\u0027ve missed that out.","commit_id":"bdd31aa44df0ee0aec1f7b7ba53d7e208608991f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b5caa85c6b924669d44a5aedb3fcfdcf507e1652","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        shared_storage \u003d True"},{"line_number":114,"context_line":"        if migrate_data and ("},{"line_number":115,"context_line":"                versionutils.convert_version_to_tuple("},{"line_number":116,"context_line":"                    migrate_data.VERSION) \u003e\u003d (1, 1)):"},{"line_number":117,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":118,"context_line":"        else:"},{"line_number":119,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":8,"id":"1ac06dbe_f83f3585","line":116,"updated":"2016-08-24 13:30:39.000000000","message":"We could default this to False if it is unset in the above method so we don\u0027t have to re-detect here right?","commit_id":"bdd31aa44df0ee0aec1f7b7ba53d7e208608991f"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"49ebc1e035cbb7bb226b999aa55027fa26617494","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        shared_storage \u003d True"},{"line_number":114,"context_line":"        if migrate_data and ("},{"line_number":115,"context_line":"                versionutils.convert_version_to_tuple("},{"line_number":116,"context_line":"                    migrate_data.VERSION) \u003e\u003d (1, 1)):"},{"line_number":117,"context_line":"            shared_storage \u003d migrate_data.is_shared_instance_path"},{"line_number":118,"context_line":"        else:"},{"line_number":119,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":8,"id":"1ac06dbe_4f12005a","line":116,"in_reply_to":"1ac06dbe_f83f3585","updated":"2016-08-24 13:50:53.000000000","message":"By the above method you mean \u0027live_migration\u0027, and actually setting this field there if it\u0027s missing, right?\n\nThe migrate_data object could be entirely missing, but I guess we could create it there.","commit_id":"bdd31aa44df0ee0aec1f7b7ba53d7e208608991f"}]}
