)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"a3697842a949cf0f3a2f177d7036ebd7ad58b96b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This helper avoided a slightly long-winded check for what was"},{"line_number":10,"context_line":"essentially a binary condition before. With the future introduction of a"},{"line_number":11,"context_line":"\u0027mixed\u0027 policy, this isn\u0027t always going to be suitable going forward."},{"line_number":12,"context_line":"Replace is with explicit checks for types."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of blueprint use-pcpu-and-vcpu-in-one-instance"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f493fa4_f16dcc98","line":12,"range":{"start_line":12,"start_character":8,"end_line":12,"end_character":10},"updated":"2020-05-07 19:09:40.000000000","message":"nit: \"it\"","commit_id":"b8adac7679b4d894c97e3ae9e18d7034265a5915"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"84d216e94ca3db30e6df84fd254fede1dad3270d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This helper avoided a slightly long-winded check for what was"},{"line_number":10,"context_line":"essentially a binary condition before. With the future introduction of a"},{"line_number":11,"context_line":"\u0027mixed\u0027 policy, this isn\u0027t always going to be suitable going forward."},{"line_number":12,"context_line":"Replace is with explicit checks for types."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of blueprint use-pcpu-and-vcpu-in-one-instance"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f493fa4_c901ff06","line":12,"range":{"start_line":12,"start_character":8,"end_line":12,"end_character":10},"in_reply_to":"1f493fa4_f16dcc98","updated":"2020-05-08 10:16:51.000000000","message":"Done","commit_id":"b8adac7679b4d894c97e3ae9e18d7034265a5915"}],"nova/compute/manager.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f79eb3dec7d634e32d0603525a68dcdb4d024ebc","unresolved":false,"context_lines":[{"line_number":873,"context_line":"            # if this is an unpinned instance and the host only has"},{"line_number":874,"context_line":"            # \u0027cpu_dedicated_set\u0027 configured, we need to tell the operator to"},{"line_number":875,"context_line":"            # correct their configuration"},{"line_number":876,"context_line":"            if not instance.numa_topology or ("},{"line_number":877,"context_line":"                instance.numa_topology.cpu_policy in ("},{"line_number":878,"context_line":"                    None, fields.CPUAllocationPolicy.SHARED"},{"line_number":879,"context_line":"                )"},{"line_number":880,"context_line":"            ):"},{"line_number":881,"context_line":"                # we don\u0027t need to check \u0027vcpu_pin_set\u0027 since it can\u0027t coexist"},{"line_number":882,"context_line":"                # alongside \u0027cpu_dedicated_set\u0027"},{"line_number":883,"context_line":"                if (CONF.compute.cpu_dedicated_set and"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_0d065acf","line":880,"range":{"start_line":876,"start_character":1,"end_line":880,"end_character":14},"updated":"2020-06-19 10:17:07.000000000","message":"I guess you applied de-morgan to make the code more readable. It is OK to me.","commit_id":"7ab3d44ab96b85f458a69a0fa84c99a6126dbed6"}],"nova/objects/instance_numa.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"95a16f15d576a4a6e91bffed6a24b12952b022fd","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    # and deprecate the one found on the cell"},{"line_number":206,"context_line":"    @property"},{"line_number":207,"context_line":"    def cpu_policy(self):"},{"line_number":208,"context_line":"        cpu_policy \u003d list(set(cell.cpu_policy for cell in self.cells))"},{"line_number":209,"context_line":"        if len(cpu_policy) \u003e 1:"},{"line_number":210,"context_line":"            # NOTE(stephenfin): This should never happen in real life; it\u0027s to"},{"line_number":211,"context_line":"            # prevent programmer error."}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_07780c28","line":208,"range":{"start_line":208,"start_character":35,"end_line":208,"end_character":45},"updated":"2020-03-26 02:42:04.000000000","message":"this can be None. But it is a chance to get rid of the None value","commit_id":"7aa71e1a06d30b98394b17635cc3ad892a8a6cf9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4c4af2f2f0697c160720dd229f1817325ba244d7","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    # and deprecate the one found on the cell"},{"line_number":206,"context_line":"    @property"},{"line_number":207,"context_line":"    def cpu_policy(self):"},{"line_number":208,"context_line":"        cpu_policy \u003d list(set(cell.cpu_policy for cell in self.cells))"},{"line_number":209,"context_line":"        if len(cpu_policy) \u003e 1:"},{"line_number":210,"context_line":"            # NOTE(stephenfin): This should never happen in real life; it\u0027s to"},{"line_number":211,"context_line":"            # prevent programmer error."}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_9bf47589","line":208,"range":{"start_line":208,"start_character":35,"end_line":208,"end_character":45},"in_reply_to":"df33271e_07780c28","updated":"2020-03-26 10:10:41.000000000","message":"None is an acceptable value though (it\u0027s ~\u003d SHARED) so I don\u0027t think we should strip it out. Having a cell with cpu_policy\u003dNone and another with cpu_policy\u003dSHARED should be an error too","commit_id":"7aa71e1a06d30b98394b17635cc3ad892a8a6cf9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8f8cabc8880c92df1b9dc8e99a917db12bea8b27","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    # and deprecate the one found on the cell"},{"line_number":206,"context_line":"    @property"},{"line_number":207,"context_line":"    def cpu_policy(self):"},{"line_number":208,"context_line":"        cpu_policy \u003d list(set(cell.cpu_policy for cell in self.cells))"},{"line_number":209,"context_line":"        if len(cpu_policy) \u003e 1:"},{"line_number":210,"context_line":"            # NOTE(stephenfin): This should never happen in real life; it\u0027s to"},{"line_number":211,"context_line":"            # prevent programmer error."}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_12823650","line":208,"range":{"start_line":208,"start_character":35,"end_line":208,"end_character":45},"in_reply_to":"df33271e_9bf47589","updated":"2020-04-06 07:58:12.000000000","message":"I\u0027m thinking we can explicitly assign SHARED all the cases. But yes, it needn\u0027t be in this patch.","commit_id":"7aa71e1a06d30b98394b17635cc3ad892a8a6cf9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"a3697842a949cf0f3a2f177d7036ebd7ad58b96b","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    # and deprecate the one found on the cell"},{"line_number":206,"context_line":"    @property"},{"line_number":207,"context_line":"    def cpu_policy(self):"},{"line_number":208,"context_line":"        cpu_policy \u003d list(set(cell.cpu_policy for cell in self.cells))"},{"line_number":209,"context_line":"        if len(cpu_policy) \u003e 1:"},{"line_number":210,"context_line":"            # NOTE(stephenfin): This should never happen in real life; it\u0027s to"},{"line_number":211,"context_line":"            # prevent programmer error."}],"source_content_type":"text/x-python","patch_set":6,"id":"1f493fa4_31d3b43a","line":208,"range":{"start_line":208,"start_character":21,"end_line":208,"end_character":25},"updated":"2020-05-07 19:09:40.000000000","message":"nit: we technically don\u0027t need the list(), and just use .pop() on L215.","commit_id":"b8adac7679b4d894c97e3ae9e18d7034265a5915"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"84d216e94ca3db30e6df84fd254fede1dad3270d","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    # and deprecate the one found on the cell"},{"line_number":206,"context_line":"    @property"},{"line_number":207,"context_line":"    def cpu_policy(self):"},{"line_number":208,"context_line":"        cpu_policy \u003d list(set(cell.cpu_policy for cell in self.cells))"},{"line_number":209,"context_line":"        if len(cpu_policy) \u003e 1:"},{"line_number":210,"context_line":"            # NOTE(stephenfin): This should never happen in real life; it\u0027s to"},{"line_number":211,"context_line":"            # prevent programmer error."}],"source_content_type":"text/x-python","patch_set":6,"id":"1f493fa4_490def33","line":208,"range":{"start_line":208,"start_character":21,"end_line":208,"end_character":25},"in_reply_to":"1f493fa4_31d3b43a","updated":"2020-05-08 10:16:51.000000000","message":"Done","commit_id":"b8adac7679b4d894c97e3ae9e18d7034265a5915"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5a8f7f73c3739ebc8dddda2167e01c50e462088e","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            # NOTE(stephenfin): This should never happen in real life; it\u0027s to"},{"line_number":211,"context_line":"            # prevent programmer error."},{"line_number":212,"context_line":"            raise exception.InternalError("},{"line_number":213,"context_line":"                \u0027Instance NUMA cells must have the same CPU policy.\u0027"},{"line_number":214,"context_line":"            )"},{"line_number":215,"context_line":"        return cpu_policy.pop()"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_c76a2f18","line":213,"updated":"2020-06-24 15:59:16.000000000","message":"can\u0027t this be an upgrade concern if we raise an exception now ?","commit_id":"690ce37e72f3a189100ab9839c2233e1e4951ba0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b563ed518f1571e13b6a5926e3070285fdbd0aed","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            # NOTE(stephenfin): This should never happen in real life; it\u0027s to"},{"line_number":211,"context_line":"            # prevent programmer error."},{"line_number":212,"context_line":"            raise exception.InternalError("},{"line_number":213,"context_line":"                \u0027Instance NUMA cells must have the same CPU policy.\u0027"},{"line_number":214,"context_line":"            )"},{"line_number":215,"context_line":"        return cpu_policy.pop()"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_e204814c","line":213,"in_reply_to":"bf51134e_c76a2f18","updated":"2020-06-24 16:40:55.000000000","message":"This is not possible without manual DB modification, and if someone has manually modified those JSON blobs then all cards are off the table. An upgrade check wouldn\u0027t resolve anything either, since if someone had manually modified the DB beforehand, they could do the same thing again after the upgrade check had run. We *want* things to explode here","commit_id":"690ce37e72f3a189100ab9839c2233e1e4951ba0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4c30867605399029639047778e3f686abd1397b2","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            # NOTE(stephenfin): This should never happen in real life; it\u0027s to"},{"line_number":211,"context_line":"            # prevent programmer error."},{"line_number":212,"context_line":"            raise exception.InternalError("},{"line_number":213,"context_line":"                \u0027Instance NUMA cells must have the same CPU policy.\u0027"},{"line_number":214,"context_line":"            )"},{"line_number":215,"context_line":"        return cpu_policy.pop()"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_62323112","line":213,"in_reply_to":"bf51134e_e204814c","updated":"2020-06-24 16:46:06.000000000","message":"ya this should never be different per cell so it should explode if it is because you have done something to the db that you should not have done.","commit_id":"690ce37e72f3a189100ab9839c2233e1e4951ba0"}],"nova/tests/unit/objects/test_instance_numa.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"819747de835d6c8367d1249aafd2751943fd86ce","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        self.assertEqual(cpu_policy, topology.cpu_policy)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def test_cpu_policy__error(self):"},{"line_number":208,"context_line":"        \"\"\"Ensure we raise an error if cells have different values.\"\"\""},{"line_number":209,"context_line":"        topology \u003d objects.InstanceNUMATopology("},{"line_number":210,"context_line":"            instance_uuid\u003dfake_instance_uuid,"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_7a9f0350","line":207,"range":{"start_line":207,"start_character":23,"end_line":207,"end_character":25},"updated":"2020-06-17 08:00:21.000000000","message":"nit, double \u0027_\u0027 here","commit_id":"7ab3d44ab96b85f458a69a0fa84c99a6126dbed6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"46f80cbc21881b7ceff2f1a09f5699e32de3a908","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        self.assertEqual(cpu_policy, topology.cpu_policy)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def test_cpu_policy__error(self):"},{"line_number":208,"context_line":"        \"\"\"Ensure we raise an error if cells have different values.\"\"\""},{"line_number":209,"context_line":"        topology \u003d objects.InstanceNUMATopology("},{"line_number":210,"context_line":"            instance_uuid\u003dfake_instance_uuid,"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_72fff133","line":207,"range":{"start_line":207,"start_character":23,"end_line":207,"end_character":25},"in_reply_to":"bf51134e_7a9f0350","updated":"2020-06-19 09:44:51.000000000","message":"Yup, that\u0027s intentional.\n\n  test_{function-name}__{description}","commit_id":"7ab3d44ab96b85f458a69a0fa84c99a6126dbed6"}],"nova/virt/hardware.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"95a16f15d576a4a6e91bffed6a24b12952b022fd","unresolved":false,"context_lines":[{"line_number":2252,"context_line":""},{"line_number":2253,"context_line":"            memory_usage \u003d memory_usage + sign * instance_cell.memory"},{"line_number":2254,"context_line":""},{"line_number":2255,"context_line":"            if instance_cell.cpu_policy in ("},{"line_number":2256,"context_line":"                None, fields.CPUAllocationPolicy.SHARED,"},{"line_number":2257,"context_line":"            ):"},{"line_number":2258,"context_line":"                shared_cpus_usage +\u003d sign * len(instance_cell.cpuset)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_8799bc6f","line":2255,"range":{"start_line":2255,"start_character":16,"end_line":2255,"end_character":39},"updated":"2020-03-26 02:42:04.000000000","message":"there can be \"instance_topology.cpu_policy\"","commit_id":"7aa71e1a06d30b98394b17635cc3ad892a8a6cf9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"a3697842a949cf0f3a2f177d7036ebd7ad58b96b","unresolved":false,"context_lines":[{"line_number":2253,"context_line":"            memory_usage \u003d memory_usage + sign * instance_cell.memory"},{"line_number":2254,"context_line":""},{"line_number":2255,"context_line":"            if instance_cell.cpu_policy in ("},{"line_number":2256,"context_line":"                None, fields.CPUAllocationPolicy.SHARED,"},{"line_number":2257,"context_line":"            ):"},{"line_number":2258,"context_line":"                shared_cpus_usage +\u003d sign * len(instance_cell.cpuset)"},{"line_number":2259,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f493fa4_71ab7c88","line":2256,"updated":"2020-05-07 19:09:40.000000000","message":"So here you convert \u0027not cpu_pinning_requested\u0027 into \u0027in (None, SHARED)\u0027\n\n[to be continued]","commit_id":"b8adac7679b4d894c97e3ae9e18d7034265a5915"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"31be03f4ff30f67c3f1aa864222a62114bc3a868","unresolved":false,"context_lines":[{"line_number":2253,"context_line":"            memory_usage \u003d memory_usage + sign * instance_cell.memory"},{"line_number":2254,"context_line":""},{"line_number":2255,"context_line":"            if instance_cell.cpu_policy in ("},{"line_number":2256,"context_line":"                None, fields.CPUAllocationPolicy.SHARED,"},{"line_number":2257,"context_line":"            ):"},{"line_number":2258,"context_line":"                shared_cpus_usage +\u003d sign * len(instance_cell.cpuset)"},{"line_number":2259,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f493fa4_49920fa1","line":2256,"in_reply_to":"1f493fa4_71ab7c88","updated":"2020-05-08 10:19:58.000000000","message":"Done","commit_id":"b8adac7679b4d894c97e3ae9e18d7034265a5915"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f79eb3dec7d634e32d0603525a68dcdb4d024ebc","unresolved":false,"context_lines":[{"line_number":2251,"context_line":""},{"line_number":2252,"context_line":"            memory_usage \u003d memory_usage + sign * instance_cell.memory"},{"line_number":2253,"context_line":""},{"line_number":2254,"context_line":"            if instance_cell.cpu_policy !\u003d ("},{"line_number":2255,"context_line":"                fields.CPUAllocationPolicy.DEDICATED"},{"line_number":2256,"context_line":"            ):"},{"line_number":2257,"context_line":"                shared_cpus_usage +\u003d sign * len(instance_cell.cpuset)"},{"line_number":2258,"context_line":"                continue"},{"line_number":2259,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_6df436d0","line":2256,"range":{"start_line":2254,"start_character":0,"end_line":2256,"end_character":14},"updated":"2020-06-19 10:17:07.000000000","message":"In other places you used\n\n    instance_cell.cpu_policy in (None, field.SHARED)\n\ninstead.","commit_id":"7ab3d44ab96b85f458a69a0fa84c99a6126dbed6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"139d295cd55f6a55ba7bdf8ce88bf9eec0a937e7","unresolved":false,"context_lines":[{"line_number":2251,"context_line":""},{"line_number":2252,"context_line":"            memory_usage \u003d memory_usage + sign * instance_cell.memory"},{"line_number":2253,"context_line":""},{"line_number":2254,"context_line":"            if instance_cell.cpu_policy !\u003d ("},{"line_number":2255,"context_line":"                fields.CPUAllocationPolicy.DEDICATED"},{"line_number":2256,"context_line":"            ):"},{"line_number":2257,"context_line":"                shared_cpus_usage +\u003d sign * len(instance_cell.cpuset)"},{"line_number":2258,"context_line":"                continue"},{"line_number":2259,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_48683920","line":2256,"range":{"start_line":2254,"start_character":0,"end_line":2256,"end_character":14},"in_reply_to":"bf51134e_6df436d0","updated":"2020-06-19 16:45:53.000000000","message":"See [1]. We want to extend this conditional to cover MIXED in the future, but we don\u0027t want to do that elsewhere\n\n[1] https://review.opendev.org/#/c/714697/6/nova/virt/libvirt/driver.py@7941","commit_id":"7ab3d44ab96b85f458a69a0fa84c99a6126dbed6"}],"nova/virt/hyperv/vmops.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f79eb3dec7d634e32d0603525a68dcdb4d024ebc","unresolved":false,"context_lines":[{"line_number":468,"context_line":"        # \u0027supports_pcpus\u0027 driver capability (via a trait), but we need to drop"},{"line_number":469,"context_line":"        # support for the legacy \u0027vcpu_pin_set\u0027 path in the libvirt driver"},{"line_number":470,"context_line":"        # first"},{"line_number":471,"context_line":"        if instance_topology.cpu_policy not in ("},{"line_number":472,"context_line":"            None, fields.CPUAllocationPolicy.SHARED,"},{"line_number":473,"context_line":"        ):"},{"line_number":474,"context_line":"            raise exception.InstanceUnacceptable("},{"line_number":475,"context_line":"                reason\u003d_(\"Hyper-V does not support CPU pinning.\"),"},{"line_number":476,"context_line":"                instance_id\u003dinstance.uuid)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_2d2cfe45","line":473,"range":{"start_line":471,"start_character":0,"end_line":473,"end_character":10},"updated":"2020-06-19 10:17:07.000000000","message":"in other places you wrote\n\n  instance_topology.cpu_policy \u003d\u003d fields.CPUAllocationPolicy.DEDICATED","commit_id":"7ab3d44ab96b85f458a69a0fa84c99a6126dbed6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"139d295cd55f6a55ba7bdf8ce88bf9eec0a937e7","unresolved":false,"context_lines":[{"line_number":468,"context_line":"        # \u0027supports_pcpus\u0027 driver capability (via a trait), but we need to drop"},{"line_number":469,"context_line":"        # support for the legacy \u0027vcpu_pin_set\u0027 path in the libvirt driver"},{"line_number":470,"context_line":"        # first"},{"line_number":471,"context_line":"        if instance_topology.cpu_policy not in ("},{"line_number":472,"context_line":"            None, fields.CPUAllocationPolicy.SHARED,"},{"line_number":473,"context_line":"        ):"},{"line_number":474,"context_line":"            raise exception.InstanceUnacceptable("},{"line_number":475,"context_line":"                reason\u003d_(\"Hyper-V does not support CPU pinning.\"),"},{"line_number":476,"context_line":"                instance_id\u003dinstance.uuid)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_c87c49ed","line":473,"range":{"start_line":471,"start_character":0,"end_line":473,"end_character":10},"in_reply_to":"bf51134e_2d2cfe45","updated":"2020-06-19 16:45:53.000000000","message":"This is the same as [1]. HyperV doesn\u0027t support DEDICATED and won\u0027t support MIXED. It\u0027s easier check for SHARED or None here than have to change it later\n\n[1] https://review.opendev.org/#/c/714697/6/nova/virt/libvirt/driver.py@7941","commit_id":"7ab3d44ab96b85f458a69a0fa84c99a6126dbed6"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"a3697842a949cf0f3a2f177d7036ebd7ad58b96b","unresolved":false,"context_lines":[{"line_number":7938,"context_line":"                continue"},{"line_number":7939,"context_line":""},{"line_number":7940,"context_line":"            if instance.numa_topology.cpu_policy !\u003d ("},{"line_number":7941,"context_line":"                fields.CPUAllocationPolicy.DEDICATED"},{"line_number":7942,"context_line":"            ):"},{"line_number":7943,"context_line":"                continue"},{"line_number":7944,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f493fa4_918f282d","line":7941,"updated":"2020-05-07 19:09:40.000000000","message":"[continued] ... but here you directly !\u003d DEDICATED","commit_id":"b8adac7679b4d894c97e3ae9e18d7034265a5915"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"84d216e94ca3db30e6df84fd254fede1dad3270d","unresolved":false,"context_lines":[{"line_number":7938,"context_line":"                continue"},{"line_number":7939,"context_line":""},{"line_number":7940,"context_line":"            if instance.numa_topology.cpu_policy !\u003d ("},{"line_number":7941,"context_line":"                fields.CPUAllocationPolicy.DEDICATED"},{"line_number":7942,"context_line":"            ):"},{"line_number":7943,"context_line":"                continue"},{"line_number":7944,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f493fa4_6969cbbc","line":7941,"in_reply_to":"1f493fa4_918f282d","updated":"2020-05-08 10:16:51.000000000","message":"I\u0027m lining up things for Huaqiang. This reshape should only happen if the instance\u0027s CPUs have a \"dedicated\" policy since the \"mixed\" policy didn\u0027t exist when we added it. Put another way, any new instances created with a future mixed policy will obviously have been created on a host newer than Train, which means a host with properly reshaped inventory (PCPU + VCPU inventory, instead of just VCPU inventory). I explicitly check for dedicated to make sure we don\u0027t forget to *not* check for mixed in the future change.\n\nWith that said, I can and will modify the other line you pointed out. Huaqiang will need to modify it slightly more than if it was done as-is, but that\u0027s no bad thing.","commit_id":"b8adac7679b4d894c97e3ae9e18d7034265a5915"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"a3697842a949cf0f3a2f177d7036ebd7ad58b96b","unresolved":false,"context_lines":[{"line_number":7962,"context_line":"                continue"},{"line_number":7963,"context_line":""},{"line_number":7964,"context_line":"            if instance.numa_topology.cpu_policy !\u003d ("},{"line_number":7965,"context_line":"                fields.CPUAllocationPolicy.DEDICATED"},{"line_number":7966,"context_line":"            ):"},{"line_number":7967,"context_line":"                continue"},{"line_number":7968,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f493fa4_318a941a","line":7965,"updated":"2020-05-07 19:09:40.000000000","message":"Ditto","commit_id":"b8adac7679b4d894c97e3ae9e18d7034265a5915"}]}
