)]}'
{"nova/scheduler/utils.py":[{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"db533c406c30e2a07fc40b504ac437f4e15c0868","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        if enable_pinning_translate:"},{"line_number":138,"context_line":"            # Next up, let\u0027s handle those pesky CPU pinning policies for"},{"line_number":139,"context_line":"            # instance in \u0027dedicated\u0027 and \u0027mixed\u0027 polices."},{"line_number":140,"context_line":"            self._translate_pinning_policies(request_spec.flavor, image)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # Add on any request groups that came from outside of the flavor/image,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_e515733e","line":139,"updated":"2020-06-29 13:23:58.000000000","message":"I\u0027ll withdraw the changes.","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2c6f9350887d6287da1dde026980a840c47d8574","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self.cpu_pinning_requested \u003d False"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        if enable_pinning_translate:"},{"line_number":138,"context_line":"            # Next up, let\u0027s handle those pesky CPU pinning policies for"},{"line_number":139,"context_line":"            # instance in \u0027dedicated\u0027 and \u0027mixed\u0027 polices."},{"line_number":140,"context_line":"            self._translate_pinning_policies(request_spec.flavor, image)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        # Add on any request groups that came from outside of the flavor/image,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_d9636441","line":139,"range":{"start_line":138,"start_character":68,"end_line":139,"end_character":58},"updated":"2020-06-22 13:38:40.000000000","message":"Technically what is already here is good enough. Feel free to reword the _whole_ sentence if you don\u0027t think it\u0027s clear, but if not, what you\u0027ve added is unnecessary IMO","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2c6f9350887d6287da1dde026980a840c47d8574","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        # We don\u0027t need to worry about handling \u0027SHARED\u0027 - that will result in"},{"line_number":269,"context_line":"        # VCPUs which we include by default"},{"line_number":270,"context_line":"        if cpu_policy in (obj_fields.CPUAllocationPolicy.DEDICATED,"},{"line_number":271,"context_line":"                          obj_fields.CPUAllocationPolicy.MIXED):"},{"line_number":272,"context_line":"            if cpu_policy \u003d\u003d obj_fields.CPUAllocationPolicy.MIXED:"},{"line_number":273,"context_line":"                dedicated_cpus \u003d hardware.get_dedicated_cpu_constraint(flavor)"},{"line_number":274,"context_line":"                if dedicated_cpus is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_f9d3c8d3","line":271,"range":{"start_line":270,"start_character":0,"end_line":271,"end_character":64},"updated":"2020-06-22 13:38:40.000000000","message":"How about you keep this as-is, and do the following:\n\n\n  if cpu_policy \u003d\u003d obj_fields.CPUAllocationPolicy.DEDICATED:\n      # dedicated-specific stuff\n  elif cpu_policy \u003d\u003d obj_fields.CPUAllocationPolicy.MIXED:\n      # mixed-specific stuff\n\n  if cpu_policy in (\n      obj_fields.CPUAllocationPolicy.DEDICATED,\n      obj_fields.CPUAllocationPolicy.MIXED,\n  ):\n      # everything from line 292 below","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"db533c406c30e2a07fc40b504ac437f4e15c0868","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        # We don\u0027t need to worry about handling \u0027SHARED\u0027 - that will result in"},{"line_number":269,"context_line":"        # VCPUs which we include by default"},{"line_number":270,"context_line":"        if cpu_policy in (obj_fields.CPUAllocationPolicy.DEDICATED,"},{"line_number":271,"context_line":"                          obj_fields.CPUAllocationPolicy.MIXED):"},{"line_number":272,"context_line":"            if cpu_policy \u003d\u003d obj_fields.CPUAllocationPolicy.MIXED:"},{"line_number":273,"context_line":"                dedicated_cpus \u003d hardware.get_dedicated_cpu_constraint(flavor)"},{"line_number":274,"context_line":"                if dedicated_cpus is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_452a5f7e","line":271,"updated":"2020-06-29 13:23:58.000000000","message":"Sure. Done.","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2c6f9350887d6287da1dde026980a840c47d8574","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                          obj_fields.CPUAllocationPolicy.MIXED):"},{"line_number":272,"context_line":"            if cpu_policy \u003d\u003d obj_fields.CPUAllocationPolicy.MIXED:"},{"line_number":273,"context_line":"                dedicated_cpus \u003d hardware.get_dedicated_cpu_constraint(flavor)"},{"line_number":274,"context_line":"                if dedicated_cpus is None:"},{"line_number":275,"context_line":"                    raise exception.RequiredMixedOrRealtimeCPUMask"},{"line_number":276,"context_line":"                pcpus \u003d len(dedicated_cpus)"},{"line_number":277,"context_line":"                vcpus \u003d flavor.vcpus - pcpus"},{"line_number":278,"context_line":"                # apply for the VCPU resource of a \u0027mixed\u0027 instance"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_b9c4b0f6","line":275,"range":{"start_line":274,"start_character":0,"end_line":275,"end_character":66},"updated":"2020-06-22 13:38:40.000000000","message":"Won\u0027t this have already been validated at the API layer? If so, just add a NOTE here saying as much","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"db533c406c30e2a07fc40b504ac437f4e15c0868","unresolved":false,"context_lines":[{"line_number":272,"context_line":"            if cpu_policy \u003d\u003d obj_fields.CPUAllocationPolicy.MIXED:"},{"line_number":273,"context_line":"                dedicated_cpus \u003d hardware.get_dedicated_cpu_constraint(flavor)"},{"line_number":274,"context_line":"                if dedicated_cpus is None:"},{"line_number":275,"context_line":"                    raise exception.RequiredMixedOrRealtimeCPUMask"},{"line_number":276,"context_line":"                pcpus \u003d len(dedicated_cpus)"},{"line_number":277,"context_line":"                vcpus \u003d flavor.vcpus - pcpus"},{"line_number":278,"context_line":"                # apply for the VCPU resource of a \u0027mixed\u0027 instance"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_252dab94","line":275,"updated":"2020-06-29 13:23:58.000000000","message":"Yes, here it will never raise such kind of exception, as you said, it is ensured in API layer.\nAdded a note here.","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"99360d6acb6b813473fdedf2eb9e86037940c3df","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        # VCPUs which we include by default"},{"line_number":269,"context_line":"        if cpu_policy \u003d\u003d obj_fields.CPUAllocationPolicy.DEDICATED:"},{"line_number":270,"context_line":"            # TODO(stephenfin): Remove when we drop support for \u0027vcpu_pin_set\u0027"},{"line_number":271,"context_line":"            self.cpu_pinning_requested \u003d True"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"            # Switch VCPU -\u003e PCPU"},{"line_number":274,"context_line":"            pcpus \u003d flavor.vcpus"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_cfa8658d","line":271,"updated":"2020-07-15 13:00:40.000000000","message":"Mixed instance does not have the chance for a try, the host must be ready with PCPU and VCPU.\n\nWe can remove the name at the time your stated in TODO, so take it easy.","commit_id":"3c09c31bafc755b535fa5ac46076e8312ffdeb01"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d16c7905b9d6e0d8009a8e1f8a67ae95ed320d84","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        # VCPUs which we include by default"},{"line_number":269,"context_line":"        if cpu_policy \u003d\u003d obj_fields.CPUAllocationPolicy.DEDICATED:"},{"line_number":270,"context_line":"            # TODO(stephenfin): Remove when we drop support for \u0027vcpu_pin_set\u0027"},{"line_number":271,"context_line":"            self.cpu_pinning_requested \u003d True"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"            # Switch VCPU -\u003e PCPU"},{"line_number":274,"context_line":"            pcpus \u003d flavor.vcpus"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_70702d73","line":271,"updated":"2020-07-14 10:06:46.000000000","message":"Okay, we don\u0027t want to set this below since this triggers the fallback code path where we make a second request for VCPUs.\n\nI really should have named this variable better :(","commit_id":"3c09c31bafc755b535fa5ac46076e8312ffdeb01"}],"nova/tests/unit/scheduler/test_utils.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2c6f9350887d6287da1dde026980a840c47d8574","unresolved":false,"context_lines":[{"line_number":1083,"context_line":"    # TODO(huaqiang): Remove once get_dedicated_cpu_constraint function is"},{"line_number":1084,"context_line":"    # ready."},{"line_number":1085,"context_line":"    @mock.patch(\u0027nova.virt.hardware.get_dedicated_cpu_constraint\u0027,"},{"line_number":1086,"context_line":"                return_value\u003dset([2, 3]))"},{"line_number":1087,"context_line":"    def test_resource_request_init_with_mixed_cpus(self, mock_dedicated):"},{"line_number":1088,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":1089,"context_line":"            vcpus\u003d4, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_b952f039","line":1086,"range":{"start_line":1086,"start_character":16,"end_line":1086,"end_character":40},"updated":"2020-06-22 13:38:40.000000000","message":"I know you\u0027re removing this in a follow-up, but if you change this to:\n\n  new\u003dmock.Mock(return_value\u003d{2, 3})\n\nthen you don\u0027t need the (unused) \u0027mock_dedicated\u0027 parameter below","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"db533c406c30e2a07fc40b504ac437f4e15c0868","unresolved":false,"context_lines":[{"line_number":1083,"context_line":"    # TODO(huaqiang): Remove once get_dedicated_cpu_constraint function is"},{"line_number":1084,"context_line":"    # ready."},{"line_number":1085,"context_line":"    @mock.patch(\u0027nova.virt.hardware.get_dedicated_cpu_constraint\u0027,"},{"line_number":1086,"context_line":"                return_value\u003dset([2, 3]))"},{"line_number":1087,"context_line":"    def test_resource_request_init_with_mixed_cpus(self, mock_dedicated):"},{"line_number":1088,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":1089,"context_line":"            vcpus\u003d4, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_650a0320","line":1086,"updated":"2020-06-29 13:23:58.000000000","message":"The \u0027new\u0027 parameter is better and make the test function conciser. Thanks for advice.","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2c6f9350887d6287da1dde026980a840c47d8574","unresolved":false,"context_lines":[{"line_number":1084,"context_line":"    # ready."},{"line_number":1085,"context_line":"    @mock.patch(\u0027nova.virt.hardware.get_dedicated_cpu_constraint\u0027,"},{"line_number":1086,"context_line":"                return_value\u003dset([2, 3]))"},{"line_number":1087,"context_line":"    def test_resource_request_init_with_mixed_cpus(self, mock_dedicated):"},{"line_number":1088,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":1089,"context_line":"            vcpus\u003d4, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0,"},{"line_number":1090,"context_line":"            extra_specs\u003d{"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_5978f4c2","line":1087,"updated":"2020-06-22 13:38:40.000000000","message":"Can we get a docstring?","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"db533c406c30e2a07fc40b504ac437f4e15c0868","unresolved":false,"context_lines":[{"line_number":1084,"context_line":"    # ready."},{"line_number":1085,"context_line":"    @mock.patch(\u0027nova.virt.hardware.get_dedicated_cpu_constraint\u0027,"},{"line_number":1086,"context_line":"                return_value\u003dset([2, 3]))"},{"line_number":1087,"context_line":"    def test_resource_request_init_with_mixed_cpus(self, mock_dedicated):"},{"line_number":1088,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":1089,"context_line":"            vcpus\u003d4, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0,"},{"line_number":1090,"context_line":"            extra_specs\u003d{"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_c514af46","line":1087,"updated":"2020-06-29 13:23:58.000000000","message":"Sure. Done.","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"db533c406c30e2a07fc40b504ac437f4e15c0868","unresolved":false,"context_lines":[{"line_number":1107,"context_line":"        )"},{"line_number":1108,"context_line":"        rr \u003d utils.ResourceRequest(rs)"},{"line_number":1109,"context_line":"        self.assertResourceRequestsEqual(expected, rr)"},{"line_number":1110,"context_line":"        self.assertFalse(rr.cpu_pinning_requested)"},{"line_number":1111,"context_line":""},{"line_number":1112,"context_line":"    # TODO(huaqiang): Remove once get_dedicated_cpu_constraint function is"},{"line_number":1113,"context_line":"    # ready."}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_a50ffb2b","line":1110,"updated":"2020-06-29 13:23:58.000000000","message":"For a mixed instance, the rr.cpu_pinning_requested is always \u0027False\u0027, because it can only be spawned on a compute node with PCPU and VCPU resources, which means the compute node is always being a compute node with nova-compute service older than \u0027Train\u0027. \nAs I know, \u0027rr.cpu_pinning_requested\u0027 is the helper to facilicate the upgrade of PCPU resource and will be dropped in next one or two releases.\n\nSo, I will remove the line L#1110 and the check existed in mixed instance tests below.\n\nBut the removal of \u0027cpu_pinning_requested\u0027 in whole nova project is not belong to this blueprint, right?","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2c6f9350887d6287da1dde026980a840c47d8574","unresolved":false,"context_lines":[{"line_number":1107,"context_line":"        )"},{"line_number":1108,"context_line":"        rr \u003d utils.ResourceRequest(rs)"},{"line_number":1109,"context_line":"        self.assertResourceRequestsEqual(expected, rr)"},{"line_number":1110,"context_line":"        self.assertFalse(rr.cpu_pinning_requested)"},{"line_number":1111,"context_line":""},{"line_number":1112,"context_line":"    # TODO(huaqiang): Remove once get_dedicated_cpu_constraint function is"},{"line_number":1113,"context_line":"    # ready."}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_f93d88dd","line":1110,"range":{"start_line":1110,"start_character":28,"end_line":1110,"end_character":49},"updated":"2020-06-22 13:38:40.000000000","message":"This helper is like the one on the InstanceNUMATopology object that we removed earlier in the series. Would it make sense to remove this one too since it doesn\u0027t really make sense (there *is* _some_ CPU pinning requested)","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"db533c406c30e2a07fc40b504ac437f4e15c0868","unresolved":false,"context_lines":[{"line_number":1128,"context_line":"        expected._rg_by_id[None] \u003d objects.RequestGroup("},{"line_number":1129,"context_line":"            use_same_provider\u003dFalse,"},{"line_number":1130,"context_line":"            resources\u003d{"},{"line_number":1131,"context_line":"                # we should have a PCPU due to hw_cpu_policy"},{"line_number":1132,"context_line":"                \u0027PCPU\u0027: 3,"},{"line_number":1133,"context_line":"                \u0027VCPU\u0027: 2,"},{"line_number":1134,"context_line":"                \u0027MEMORY_MB\u0027: 1024,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_051b4772","line":1131,"updated":"2020-06-29 13:23:58.000000000","message":"Yes. Done.","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2c6f9350887d6287da1dde026980a840c47d8574","unresolved":false,"context_lines":[{"line_number":1128,"context_line":"        expected._rg_by_id[None] \u003d objects.RequestGroup("},{"line_number":1129,"context_line":"            use_same_provider\u003dFalse,"},{"line_number":1130,"context_line":"            resources\u003d{"},{"line_number":1131,"context_line":"                # we should have a PCPU due to hw_cpu_policy"},{"line_number":1132,"context_line":"                \u0027PCPU\u0027: 3,"},{"line_number":1133,"context_line":"                \u0027VCPU\u0027: 2,"},{"line_number":1134,"context_line":"                \u0027MEMORY_MB\u0027: 1024,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_1912fc62","line":1131,"range":{"start_line":1131,"start_character":47,"end_line":1131,"end_character":60},"updated":"2020-06-22 13:38:40.000000000","message":"and an additional one due to the isolate policy, right?","commit_id":"7b8c49abcf1d8a0af64b71b959bbec96d7d20abd"}]}
