)]}'
{"nova/conductor/tasks/live_migrate.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e3164b4c9557679a4e73e24d0f38a7e15c9a503a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    return svc.version \u003e\u003d 36"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def supports_vpmem_live_migration():"},{"line_number":49,"context_line":"    \"\"\"Checks if the commpute host service is new enought to support"},{"line_number":50,"context_line":"    instance live migration with virtual persistent memory."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    :returns: False until live migration with vpmem is supported"},{"line_number":53,"context_line":"    \"\"\""},{"line_number":54,"context_line":"    return False"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class LiveMigrationTask(base.TaskBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_d4280198","line":54,"range":{"start_line":48,"start_character":0,"end_line":54,"end_character":16},"updated":"2020-03-05 05:15:16.000000000","message":"we can add this later, since we want to back-port this patch, this is useless for stable release.","commit_id":"82720afb4c25ca8aa9e3e050cc87b417207a2efd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e3164b4c9557679a4e73e24d0f38a7e15c9a503a","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                       \"source and destination nodes do not support \""},{"line_number":251,"context_line":"                       \"the operation.\")"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def _check_can_migrate_specific_resources(self, src_host, dest_host):"},{"line_number":254,"context_line":"        \"\"\"Checks that an instance can migrate with specific resources."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        For virtual persistent memory resource:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_ef13e85a","line":253,"range":{"start_line":253,"start_character":52,"end_line":253,"end_character":71},"updated":"2020-03-05 05:15:16.000000000","message":"I guess you need those parameters later, we can add them in later patch.","commit_id":"82720afb4c25ca8aa9e3e050cc87b417207a2efd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e3164b4c9557679a4e73e24d0f38a7e15c9a503a","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        has_vpmem \u003d False"},{"line_number":264,"context_line":"        for resource in self.instance.resources:"},{"line_number":265,"context_line":"            if isinstance(resource.metadata, objects.LibvirtVPMEMDevice):"},{"line_number":266,"context_line":"                has_vpmem \u003d True"},{"line_number":267,"context_line":"                break"},{"line_number":268,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_4f0b1c23","line":265,"range":{"start_line":265,"start_character":15,"end_line":265,"end_character":73},"updated":"2020-03-05 05:15:16.000000000","message":"we also can check the resource class at here. A little strange we check the objects.LibvirtVPMEMDevice, since it is virt driver specific object.","commit_id":"82720afb4c25ca8aa9e3e050cc87b417207a2efd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e3164b4c9557679a4e73e24d0f38a7e15c9a503a","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        return source_info, destination_info"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def _call_livem_checks_on_host(self, destination, provider_mapping):"},{"line_number":355,"context_line":"        self._check_can_migrate_pci(self.source, destination)"},{"line_number":356,"context_line":"        try:"},{"line_number":357,"context_line":"            self.migrate_data \u003d self.compute_rpcapi.\\"},{"line_number":358,"context_line":"                check_can_live_migrate_destination(self.context, self.instance,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_af19707a","line":355,"updated":"2020-03-05 05:15:16.000000000","message":"I guess you will invoke your new method at here.","commit_id":"82720afb4c25ca8aa9e3e050cc87b417207a2efd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a18700e3fb1e6db37e9234427da681c38e4f33e3","unresolved":false,"context_lines":[{"line_number":248,"context_line":"            1. check if Instance contains vpmem resources"},{"line_number":249,"context_line":"            2. check if live migration with vpmem is supported"},{"line_number":250,"context_line":"        \"\"\""},{"line_number":251,"context_line":"        if not self.instance.resources:"},{"line_number":252,"context_line":"            return"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        has_vpmem \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_7b188c74","line":251,"updated":"2020-03-14 09:31:24.000000000","message":"I think you needn\u0027t check the \u0027\"resources\" in instance\u0027 since the instance object always assign a value.","commit_id":"14bf75647dc188d7a8f34112ae1b1695de4ac177"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"4c87d81845daf2108db3ec7b2e973251ed2ebfb4","unresolved":false,"context_lines":[{"line_number":248,"context_line":"            1. check if Instance contains vpmem resources"},{"line_number":249,"context_line":"            2. check if live migration with vpmem is supported"},{"line_number":250,"context_line":"        \"\"\""},{"line_number":251,"context_line":"        if not self.instance.resources:"},{"line_number":252,"context_line":"            return"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        has_vpmem \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_4eaaab85","line":251,"in_reply_to":"1fa4df85_7b188c74","updated":"2020-03-16 02:45:42.000000000","message":"yes, you\u0027re right","commit_id":"14bf75647dc188d7a8f34112ae1b1695de4ac177"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"7d59b30284d98ffd6d1c5bbfa59326a2e468acd7","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        has_vpmem \u003d False"},{"line_number":255,"context_line":"        for resource in self.instance.resources:"},{"line_number":256,"context_line":"            if resource.resource_class.startswith(\"CUSTOM_PMEM_NAMESPACE_\"):"},{"line_number":257,"context_line":"                has_vpmem \u003d True"},{"line_number":258,"context_line":"                break"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        if has_vpmem:"},{"line_number":261,"context_line":"            raise exception.MigrationPreCheckError("}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_38677a28","line":258,"range":{"start_line":257,"start_character":16,"end_line":258,"end_character":21},"updated":"2020-03-14 08:24:33.000000000","message":"super nit, actually, you can raise the exception here directly.","commit_id":"14bf75647dc188d7a8f34112ae1b1695de4ac177"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"4c87d81845daf2108db3ec7b2e973251ed2ebfb4","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        has_vpmem \u003d False"},{"line_number":255,"context_line":"        for resource in self.instance.resources:"},{"line_number":256,"context_line":"            if resource.resource_class.startswith(\"CUSTOM_PMEM_NAMESPACE_\"):"},{"line_number":257,"context_line":"                has_vpmem \u003d True"},{"line_number":258,"context_line":"                break"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        if has_vpmem:"},{"line_number":261,"context_line":"            raise exception.MigrationPreCheckError("}],"source_content_type":"text/x-python","patch_set":4,"id":"1fa4df85_6ead279a","line":258,"range":{"start_line":257,"start_character":16,"end_line":258,"end_character":21},"in_reply_to":"1fa4df85_38677a28","updated":"2020-03-16 02:45:42.000000000","message":"Got it.","commit_id":"14bf75647dc188d7a8f34112ae1b1695de4ac177"}]}
