)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f823fd51a15bc7785f4133981a961a9dbefe9bf2","unresolved":false,"context_lines":[{"line_number":5258,"context_line":"        #                 block storage or instance path were shared"},{"line_number":5259,"context_line":"        is_shared_block_storage \u003d not block_migration"},{"line_number":5260,"context_line":"        is_shared_instance_path \u003d not block_migration"},{"line_number":5261,"context_line":"        if isinstance(migrate_data, objects.LibvirtLiveMigrateData):"},{"line_number":5262,"context_line":"            is_shared_block_storage \u003d migrate_data.is_shared_block_storage"},{"line_number":5263,"context_line":"            is_shared_instance_path \u003d migrate_data.is_shared_instance_path"},{"line_number":5264,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_ec6783e8","side":"PARENT","line":5261,"range":{"start_line":5261,"start_character":36,"end_line":5261,"end_character":66},"updated":"2016-01-26 16:55:27.000000000","message":"Wait, I thought you wanted to convert to using objects.*?","commit_id":"606e0eeb31246b2173e6e5c07f22d3bc549355f6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"268faf76166451799e023d9aa8c20776f8c736b6","unresolved":false,"context_lines":[{"line_number":5258,"context_line":"        #                 block storage or instance path were shared"},{"line_number":5259,"context_line":"        is_shared_block_storage \u003d not block_migration"},{"line_number":5260,"context_line":"        is_shared_instance_path \u003d not block_migration"},{"line_number":5261,"context_line":"        if isinstance(migrate_data, objects.LibvirtLiveMigrateData):"},{"line_number":5262,"context_line":"            is_shared_block_storage \u003d migrate_data.is_shared_block_storage"},{"line_number":5263,"context_line":"            is_shared_instance_path \u003d migrate_data.is_shared_instance_path"},{"line_number":5264,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_d508e42a","side":"PARENT","line":5261,"range":{"start_line":5261,"start_character":36,"end_line":5261,"end_character":66},"in_reply_to":"9a68dd71_cd80628e","updated":"2016-01-27 08:42:45.000000000","message":"I think this is fine as it is -- we have this in many other places where we want to be specific.","commit_id":"606e0eeb31246b2173e6e5c07f22d3bc549355f6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"af0b9ce4393cc6d550611cec4b5fa3ec7315a067","unresolved":false,"context_lines":[{"line_number":5258,"context_line":"        #                 block storage or instance path were shared"},{"line_number":5259,"context_line":"        is_shared_block_storage \u003d not block_migration"},{"line_number":5260,"context_line":"        is_shared_instance_path \u003d not block_migration"},{"line_number":5261,"context_line":"        if isinstance(migrate_data, objects.LibvirtLiveMigrateData):"},{"line_number":5262,"context_line":"            is_shared_block_storage \u003d migrate_data.is_shared_block_storage"},{"line_number":5263,"context_line":"            is_shared_instance_path \u003d migrate_data.is_shared_instance_path"},{"line_number":5264,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_cd80628e","side":"PARENT","line":5261,"range":{"start_line":5261,"start_character":36,"end_line":5261,"end_character":66},"in_reply_to":"9a68dd71_cfedbf26","updated":"2016-01-27 06:27:25.000000000","message":"I didn\u0027t remember we have that rule","commit_id":"606e0eeb31246b2173e6e5c07f22d3bc549355f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9338b6244899c98c9982fd28a64a45867ad2aa62","unresolved":false,"context_lines":[{"line_number":5258,"context_line":"        #                 block storage or instance path were shared"},{"line_number":5259,"context_line":"        is_shared_block_storage \u003d not block_migration"},{"line_number":5260,"context_line":"        is_shared_instance_path \u003d not block_migration"},{"line_number":5261,"context_line":"        if isinstance(migrate_data, objects.LibvirtLiveMigrateData):"},{"line_number":5262,"context_line":"            is_shared_block_storage \u003d migrate_data.is_shared_block_storage"},{"line_number":5263,"context_line":"            is_shared_instance_path \u003d migrate_data.is_shared_instance_path"},{"line_number":5264,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_5a95453e","side":"PARENT","line":5261,"range":{"start_line":5261,"start_character":36,"end_line":5261,"end_character":66},"in_reply_to":"9a68dd71_d508e42a","updated":"2016-01-27 10:52:17.000000000","message":"*shrug* I guess it just seems like an unnecessary change, I don\u0027t see how it\u0027s any more specific, if we have the convenience of using objects.* then I\u0027d use that where I could (except for objects that aren\u0027t registered like the base LiveMigrateData class which is checked in the virt drivers).\n\nBut I guess I\u0027m in the minority here so I won\u0027t hold this change up on this point.","commit_id":"606e0eeb31246b2173e6e5c07f22d3bc549355f6"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6253d97d583e3cdce2fc67dcdb2d8821a3dfb3e5","unresolved":false,"context_lines":[{"line_number":5258,"context_line":"        #                 block storage or instance path were shared"},{"line_number":5259,"context_line":"        is_shared_block_storage \u003d not block_migration"},{"line_number":5260,"context_line":"        is_shared_instance_path \u003d not block_migration"},{"line_number":5261,"context_line":"        if isinstance(migrate_data, objects.LibvirtLiveMigrateData):"},{"line_number":5262,"context_line":"            is_shared_block_storage \u003d migrate_data.is_shared_block_storage"},{"line_number":5263,"context_line":"            is_shared_instance_path \u003d migrate_data.is_shared_instance_path"},{"line_number":5264,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_cfedbf26","side":"PARENT","line":5261,"range":{"start_line":5261,"start_character":36,"end_line":5261,"end_character":66},"in_reply_to":"9a68dd71_ec6783e8","updated":"2016-01-27 01:19:13.000000000","message":"hi Matt, sorry, I am confused by this comment.\n\nif we want to do an isinstance compare, we should use migrate_data_obj.LibvirtLiveMigrateData, and if we want to declare(create) a new object, we should use objects.*. does this make sense?\n\nIf yes, I think I don\u0027t mess it up here, please see the example in:\nhttps://review.openstack.org/#/c/266668/3/nova/virt/xenapi/vmops.py","commit_id":"606e0eeb31246b2173e6e5c07f22d3bc549355f6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a98b0aff346fb48b9d13294692c67c296095f36a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"from nova import objects"},{"line_number":86,"context_line":"from nova.objects import base as obj_base"},{"line_number":87,"context_line":"from nova.objects import instance as obj_instance"},{"line_number":88,"context_line":"from nova.objects import migrate_data as migrate_data_obj"},{"line_number":89,"context_line":"from nova import paths"},{"line_number":90,"context_line":"from nova import rpc"},{"line_number":91,"context_line":"from nova import safe_utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_a740cb36","line":88,"updated":"2016-01-26 18:11:07.000000000","message":"This is useless any more.","commit_id":"bb84ce331e709dfdfe01f60c8854e9e7d81c17f0"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6253d97d583e3cdce2fc67dcdb2d8821a3dfb3e5","unresolved":false,"context_lines":[{"line_number":85,"context_line":"from nova import objects"},{"line_number":86,"context_line":"from nova.objects import base as obj_base"},{"line_number":87,"context_line":"from nova.objects import instance as obj_instance"},{"line_number":88,"context_line":"from nova.objects import migrate_data as migrate_data_obj"},{"line_number":89,"context_line":"from nova import paths"},{"line_number":90,"context_line":"from nova import rpc"},{"line_number":91,"context_line":"from nova import safe_utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_0fbbd70f","line":88,"in_reply_to":"9a68dd71_a740cb36","updated":"2016-01-27 01:19:13.000000000","message":"@Alex, thanks.\n\nSorry, I don\u0027t get you here, why we need to remove migrate_data_obj?\nWe still use it in lin 5054 and etc. to do instance compare, am I miss something else?","commit_id":"bb84ce331e709dfdfe01f60c8854e9e7d81c17f0"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a98b0aff346fb48b9d13294692c67c296095f36a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"from nova.network import model as network_model"},{"line_number":79,"context_line":"from nova import objects"},{"line_number":80,"context_line":"from nova.objects import fields"},{"line_number":81,"context_line":"from nova.objects import migrate_data as migrate_data_obj"},{"line_number":82,"context_line":"from nova.pci import manager as pci_manager"},{"line_number":83,"context_line":"from nova.pci import utils as pci_utils"},{"line_number":84,"context_line":"from nova import utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_47646f48","line":81,"updated":"2016-01-26 18:11:07.000000000","message":"ditto, this is useless anymore","commit_id":"bb84ce331e709dfdfe01f60c8854e9e7d81c17f0"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6253d97d583e3cdce2fc67dcdb2d8821a3dfb3e5","unresolved":false,"context_lines":[{"line_number":78,"context_line":"from nova.network import model as network_model"},{"line_number":79,"context_line":"from nova import objects"},{"line_number":80,"context_line":"from nova.objects import fields"},{"line_number":81,"context_line":"from nova.objects import migrate_data as migrate_data_obj"},{"line_number":82,"context_line":"from nova.pci import manager as pci_manager"},{"line_number":83,"context_line":"from nova.pci import utils as pci_utils"},{"line_number":84,"context_line":"from nova import utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_6fdcd346","line":81,"in_reply_to":"9a68dd71_47646f48","updated":"2016-01-27 01:19:13.000000000","message":"@Alex, we need it in #5310 yet.\nDo you mean it should be removed after Dan\u0027s patch get merged?\nAt least it should be leaved here in this patch.","commit_id":"bb84ce331e709dfdfe01f60c8854e9e7d81c17f0"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"af0b9ce4393cc6d550611cec4b5fa3ec7315a067","unresolved":false,"context_lines":[{"line_number":78,"context_line":"from nova.network import model as network_model"},{"line_number":79,"context_line":"from nova import objects"},{"line_number":80,"context_line":"from nova.objects import fields"},{"line_number":81,"context_line":"from nova.objects import migrate_data as migrate_data_obj"},{"line_number":82,"context_line":"from nova.pci import manager as pci_manager"},{"line_number":83,"context_line":"from nova.pci import utils as pci_utils"},{"line_number":84,"context_line":"from nova import utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_cda94226","line":81,"in_reply_to":"9a68dd71_6fdcd346","updated":"2016-01-27 06:27:25.000000000","message":"ok...I guess I still have jet-lag....sorry for that.","commit_id":"bb84ce331e709dfdfe01f60c8854e9e7d81c17f0"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4cd75fffacf9a0e42083630a5728ba27f20def8a","unresolved":false,"context_lines":[{"line_number":2190,"context_line":"                raise exception.MigrationError(reason\u003d_(\u0027XAPI supporting \u0027"},{"line_number":2191,"context_line":"                                \u0027relax-xsm-sr-check\u003dtrue required\u0027))"},{"line_number":2192,"context_line":""},{"line_number":2193,"context_line":"        if not isinstance(dest_check_data, migrate_data_obj.LiveMigrateData):"},{"line_number":2194,"context_line":"            obj \u003d objects.XenapiLiveMigrateData()"},{"line_number":2195,"context_line":"            obj.from_legacy_dict(dest_check_data)"},{"line_number":2196,"context_line":"            dest_check_data \u003d obj"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_9901793c","line":2193,"range":{"start_line":2193,"start_character":43,"end_line":2193,"end_character":75},"updated":"2016-01-26 12:28:17.000000000","message":"Why not use objects.LiveMigrateData here? Because it\u0027s not registered?","commit_id":"bb84ce331e709dfdfe01f60c8854e9e7d81c17f0"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f4c4dac7034a6a2aeb9660558b55a9379d8d478c","unresolved":false,"context_lines":[{"line_number":2190,"context_line":"                raise exception.MigrationError(reason\u003d_(\u0027XAPI supporting \u0027"},{"line_number":2191,"context_line":"                                \u0027relax-xsm-sr-check\u003dtrue required\u0027))"},{"line_number":2192,"context_line":""},{"line_number":2193,"context_line":"        if not isinstance(dest_check_data, migrate_data_obj.LiveMigrateData):"},{"line_number":2194,"context_line":"            obj \u003d objects.XenapiLiveMigrateData()"},{"line_number":2195,"context_line":"            obj.from_legacy_dict(dest_check_data)"},{"line_number":2196,"context_line":"            dest_check_data \u003d obj"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_25eb7bb2","line":2193,"range":{"start_line":2193,"start_character":43,"end_line":2193,"end_character":75},"in_reply_to":"9a68dd71_9901793c","updated":"2016-01-26 14:48:52.000000000","message":"Correct.","commit_id":"bb84ce331e709dfdfe01f60c8854e9e7d81c17f0"}]}
