)]}'
{"nova/tests/unit/virt/test_hardware.py":[{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"fde0239f6c6a6ec9e44df0e94630a8f10a778dbc","unresolved":false,"context_lines":[{"line_number":2380,"context_line":"    def test_dedicated_cpu_from_resource(self):"},{"line_number":2381,"context_line":"        testdata \u003d ["},{"line_number":2382,"context_line":"            {"},{"line_number":2383,"context_line":"                \"flavor\": objects.Flavor(vcpus\u003d6, memory_mb\u003d2048,"},{"line_number":2384,"context_line":"                                         extra_specs\u003d{"},{"line_number":2385,"context_line":"                        \"resources:PCPU\": \"2\","},{"line_number":2386,"context_line":"                        \"resources:VCPU\": \"4\","}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_85e8f77b","line":2383,"updated":"2020-06-29 13:53:09.000000000","message":"Done","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"21285cdb919d087bba12ef5d59d442cdf34d6f1f","unresolved":false,"context_lines":[{"line_number":2380,"context_line":"    def test_dedicated_cpu_from_resource(self):"},{"line_number":2381,"context_line":"        testdata \u003d ["},{"line_number":2382,"context_line":"            {"},{"line_number":2383,"context_line":"                \"flavor\": objects.Flavor(vcpus\u003d6, memory_mb\u003d2048,"},{"line_number":2384,"context_line":"                                         extra_specs\u003d{"},{"line_number":2385,"context_line":"                        \"resources:PCPU\": \"2\","},{"line_number":2386,"context_line":"                        \"resources:VCPU\": \"4\","}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_ceef151c","line":2383,"range":{"start_line":2383,"start_character":41,"end_line":2383,"end_character":65},"updated":"2020-06-22 17:50:59.000000000","message":"drop this to the next line?","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"fde0239f6c6a6ec9e44df0e94630a8f10a778dbc","unresolved":false,"context_lines":[{"line_number":2385,"context_line":"                        \"resources:PCPU\": \"2\","},{"line_number":2386,"context_line":"                        \"resources:VCPU\": \"4\","},{"line_number":2387,"context_line":"                                         }),"},{"line_number":2388,"context_line":"                \"cpu_nums\": list([6]),"},{"line_number":2389,"context_line":"                \"expected\": set([4, 5])"},{"line_number":2390,"context_line":"            },"},{"line_number":2391,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_65eb2377","line":2388,"updated":"2020-06-29 13:53:09.000000000","message":"Done","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"21285cdb919d087bba12ef5d59d442cdf34d6f1f","unresolved":false,"context_lines":[{"line_number":2385,"context_line":"                        \"resources:PCPU\": \"2\","},{"line_number":2386,"context_line":"                        \"resources:VCPU\": \"4\","},{"line_number":2387,"context_line":"                                         }),"},{"line_number":2388,"context_line":"                \"cpu_nums\": list([6]),"},{"line_number":2389,"context_line":"                \"expected\": set([4, 5])"},{"line_number":2390,"context_line":"            },"},{"line_number":2391,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_2e7cd170","line":2388,"range":{"start_line":2388,"start_character":28,"end_line":2388,"end_character":38},"updated":"2020-06-22 17:50:59.000000000","message":"list([6]) is the same as [6]. Can you drop \u0027list\u0027?","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"21285cdb919d087bba12ef5d59d442cdf34d6f1f","unresolved":false,"context_lines":[{"line_number":2386,"context_line":"                        \"resources:VCPU\": \"4\","},{"line_number":2387,"context_line":"                                         }),"},{"line_number":2388,"context_line":"                \"cpu_nums\": list([6]),"},{"line_number":2389,"context_line":"                \"expected\": set([4, 5])"},{"line_number":2390,"context_line":"            },"},{"line_number":2391,"context_line":"            {"},{"line_number":2392,"context_line":"                \"flavor\": objects.Flavor(vcpus\u003d6, memory_mb\u003d2048,"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_ae8f4173","line":2389,"range":{"start_line":2389,"start_character":0,"end_line":2389,"end_character":39},"updated":"2020-06-22 17:50:59.000000000","message":"...and if you want both to look similar, use\n\n  {4, 5}\n\nhere","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"fde0239f6c6a6ec9e44df0e94630a8f10a778dbc","unresolved":false,"context_lines":[{"line_number":2386,"context_line":"                        \"resources:VCPU\": \"4\","},{"line_number":2387,"context_line":"                                         }),"},{"line_number":2388,"context_line":"                \"cpu_nums\": list([6]),"},{"line_number":2389,"context_line":"                \"expected\": set([4, 5])"},{"line_number":2390,"context_line":"            },"},{"line_number":2391,"context_line":"            {"},{"line_number":2392,"context_line":"                \"flavor\": objects.Flavor(vcpus\u003d6, memory_mb\u003d2048,"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_c505cf47","line":2389,"updated":"2020-06-29 13:53:09.000000000","message":"Done","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"21285cdb919d087bba12ef5d59d442cdf34d6f1f","unresolved":false,"context_lines":[{"line_number":2378,"context_line":"            self.assertNUMACellMatches(exp_cell, got_cell)"},{"line_number":2379,"context_line":""},{"line_number":2380,"context_line":"    def test_dedicated_cpu_from_resource(self):"},{"line_number":2381,"context_line":"        testdata \u003d ["},{"line_number":2382,"context_line":"            {"},{"line_number":2383,"context_line":"                \"flavor\": objects.Flavor(vcpus\u003d6, memory_mb\u003d2048,"},{"line_number":2384,"context_line":"                                         extra_specs\u003d{"},{"line_number":2385,"context_line":"                        \"resources:PCPU\": \"2\","},{"line_number":2386,"context_line":"                        \"resources:VCPU\": \"4\","},{"line_number":2387,"context_line":"                                         }),"},{"line_number":2388,"context_line":"                \"cpu_nums\": list([6]),"},{"line_number":2389,"context_line":"                \"expected\": set([4, 5])"},{"line_number":2390,"context_line":"            },"},{"line_number":2391,"context_line":"            {"},{"line_number":2392,"context_line":"                \"flavor\": objects.Flavor(vcpus\u003d6, memory_mb\u003d2048,"},{"line_number":2393,"context_line":"                                         extra_specs\u003d{"},{"line_number":2394,"context_line":"                        \"resources:PCPU\": \"2\","},{"line_number":2395,"context_line":"                        \"resources:VCPU\": \"4\","},{"line_number":2396,"context_line":"                                         }),"},{"line_number":2397,"context_line":"                \"cpu_nums\": list([3, 3]),"},{"line_number":2398,"context_line":"                \"expected\": set([2, 5])"},{"line_number":2399,"context_line":"            },"},{"line_number":2400,"context_line":"            {"},{"line_number":2401,"context_line":"                \"flavor\": objects.Flavor(vcpus\u003d6, memory_mb\u003d2048,"},{"line_number":2402,"context_line":"                                         extra_specs\u003d{"},{"line_number":2403,"context_line":"                        \"resources:PCPU\": \"3\","},{"line_number":2404,"context_line":"                        \"resources:VCPU\": \"3\","},{"line_number":2405,"context_line":"                                         }),"},{"line_number":2406,"context_line":"                \"cpu_nums\": list([3, 3]),"},{"line_number":2407,"context_line":"                \"expected\": set([2, 4, 5])"},{"line_number":2408,"context_line":"            },"},{"line_number":2409,"context_line":"            {"},{"line_number":2410,"context_line":"                \"flavor\": objects.Flavor(vcpus\u003d6, memory_mb\u003d2048,"},{"line_number":2411,"context_line":"                                         extra_specs\u003d{"},{"line_number":2412,"context_line":"                        \"resources:PCPU\": \"2\","},{"line_number":2413,"context_line":"                        \"resources:VCPU\": \"4\","},{"line_number":2414,"context_line":"                                         }),"},{"line_number":2415,"context_line":"                \"cpu_nums\": list([2, 3, 1]),"},{"line_number":2416,"context_line":"                \"expected\": set([3, 4])"},{"line_number":2417,"context_line":"            },"},{"line_number":2418,"context_line":"        ]"},{"line_number":2419,"context_line":""},{"line_number":2420,"context_line":"        for testitem in testdata:"},{"line_number":2421,"context_line":"            requested_vcpus, _ \u003d hw._get_vcpu_pcpu_resources("}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_2e6e91c8","line":2418,"range":{"start_line":2381,"start_character":0,"end_line":2418,"end_character":9},"updated":"2020-06-22 17:50:59.000000000","message":"No, let\u0027s not repeat the mistakes of the other giant test in this file. Can you please use \u0027ddt\u0027 instead, else separate tests with unique names? This is impossible debug otherwise","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"fde0239f6c6a6ec9e44df0e94630a8f10a778dbc","unresolved":false,"context_lines":[{"line_number":2415,"context_line":"                \"cpu_nums\": list([2, 3, 1]),"},{"line_number":2416,"context_line":"                \"expected\": set([3, 4])"},{"line_number":2417,"context_line":"            },"},{"line_number":2418,"context_line":"        ]"},{"line_number":2419,"context_line":""},{"line_number":2420,"context_line":"        for testitem in testdata:"},{"line_number":2421,"context_line":"            requested_vcpus, _ \u003d hw._get_vcpu_pcpu_resources("}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_a5009b35","line":2418,"updated":"2020-06-29 13:53:09.000000000","message":"Sure.\n\nFor ddt, can your review this[1] patch also, it outputs a friendly exception message and faciliate to locate which test item caught the error.\n\n[1] https://review.opendev.org/#/c/692205/","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"}],"nova/virt/hardware.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"de38fb6f2ee41beae8a1af65f3adae695cd7a74a","unresolved":false,"context_lines":[{"line_number":1918,"context_line":"    rt_mask \u003d _get_realtime_constraint(flavor, image_meta)"},{"line_number":1919,"context_line":"    emu_threads_policy \u003d get_emulator_thread_policy_constraint(flavor)"},{"line_number":1920,"context_line":""},{"line_number":1921,"context_line":"    if cpu_policy \u003d\u003d fields.CPUAllocationPolicy.MIXED:"},{"line_number":1922,"context_line":"        cpuset_pinned \u003d get_pinned_cpu_constraint(flavor)"},{"line_number":1923,"context_line":""},{"line_number":1924,"context_line":"    # handle explicit VCPU/PCPU resource requests and the HW_CPU_HYPERTHREADING"},{"line_number":1925,"context_line":"    # trait"}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_b056e805","line":1922,"range":{"start_line":1921,"start_character":0,"end_line":1922,"end_character":57},"updated":"2020-03-19 14:21:38.000000000","message":"There\u0027s a disconnect between initialising this up here and what we do below. I think we should combine them somehow, but I haven\u0027t figured out how yet. Leave it with me","commit_id":"2b33ed05f342b23179445bef55be4bb3adeb2553"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"25d15b5426037304490dadbef6754b02bfbaed21","unresolved":false,"context_lines":[{"line_number":1949,"context_line":"                \"There is a mismatch between the number of PCPUs and VCPUs \""},{"line_number":1950,"context_line":"                \"requested via \u0027resourcesNN:PCPU\u0027 and \u0027resourcesNN::VCPU\u0027 and \""},{"line_number":1951,"context_line":"                \"the flavor); the VCPUs and PCPUs resource number in total \""},{"line_number":1952,"context_line":"                \"must be equal to flavor.vcpus\")"},{"line_number":1953,"context_line":""},{"line_number":1954,"context_line":"        cpu_policy \u003d fields.CPUAllocationPolicy.MIXED"},{"line_number":1955,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_5e121e5a","line":1952,"updated":"2020-03-19 02:51:37.000000000","message":"we also should check whether the cluster upgrade is finished. That is done by service object version.\n\nYou can reference what Luyao\u0027s patch doing:\nhttps://review.opendev.org/#/c/687856/15/nova/objects/service.py\nhttps://review.opendev.org/#/c/687856/15/nova/conductor/tasks/live_migrate.py@48","commit_id":"2b33ed05f342b23179445bef55be4bb3adeb2553"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"de38fb6f2ee41beae8a1af65f3adae695cd7a74a","unresolved":false,"context_lines":[{"line_number":1949,"context_line":"                \"There is a mismatch between the number of PCPUs and VCPUs \""},{"line_number":1950,"context_line":"                \"requested via \u0027resourcesNN:PCPU\u0027 and \u0027resourcesNN::VCPU\u0027 and \""},{"line_number":1951,"context_line":"                \"the flavor); the VCPUs and PCPUs resource number in total \""},{"line_number":1952,"context_line":"                \"must be equal to flavor.vcpus\")"},{"line_number":1953,"context_line":""},{"line_number":1954,"context_line":"        cpu_policy \u003d fields.CPUAllocationPolicy.MIXED"},{"line_number":1955,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_6dfac975","line":1952,"in_reply_to":"1fa4df85_168faacd","updated":"2020-03-19 14:21:38.000000000","message":"Yes, good point. I was thinking this wouldn\u0027t be necessary since it would fail on the host but I don\u0027t know for sure if it will.","commit_id":"2b33ed05f342b23179445bef55be4bb3adeb2553"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"f60c8c4acc8828fe6683ccffa521e9669da37a3c","unresolved":false,"context_lines":[{"line_number":1949,"context_line":"                \"There is a mismatch between the number of PCPUs and VCPUs \""},{"line_number":1950,"context_line":"                \"requested via \u0027resourcesNN:PCPU\u0027 and \u0027resourcesNN::VCPU\u0027 and \""},{"line_number":1951,"context_line":"                \"the flavor); the VCPUs and PCPUs resource number in total \""},{"line_number":1952,"context_line":"                \"must be equal to flavor.vcpus\")"},{"line_number":1953,"context_line":""},{"line_number":1954,"context_line":"        cpu_policy \u003d fields.CPUAllocationPolicy.MIXED"},{"line_number":1955,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_168faacd","line":1952,"in_reply_to":"1fa4df85_5e121e5a","updated":"2020-03-19 11:34:14.000000000","message":"Thanks, I\u0027ll go through the code and for the mechanism of new capability upgrade in cluster.","commit_id":"2b33ed05f342b23179445bef55be4bb3adeb2553"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"            LOG.debug(\u0027Host does not support requested memory pagesize, \u0027"},{"line_number":1035,"context_line":"                      \u0027or not enough free pages of the requested size. \u0027"},{"line_number":1036,"context_line":"                      \u0027Requested: %d kB\u0027, instance_cell.pagesize)"},{"line_number":1037,"context_line":"            return"},{"line_number":1038,"context_line":"        LOG.debug(\u0027Selected memory pagesize: %(selected_mem_pagesize)d kB. \u0027"},{"line_number":1039,"context_line":"                  \u0027Requested memory pagesize: %(requested_mem_pagesize)d \u0027"},{"line_number":1040,"context_line":"                  \u0027(small \u003d -1, large \u003d -2, any \u003d -3)\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_bbba0b07","line":1037,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1063,"context_line":"                           \u0027available\u0027: host_cell.avail_memory,"},{"line_number":1064,"context_line":"                           \u0027total\u0027: host_cell.memory,"},{"line_number":1065,"context_line":"                           \u0027pagesize\u0027: pagesize})"},{"line_number":1066,"context_line":"                return"},{"line_number":1067,"context_line":"        else:"},{"line_number":1068,"context_line":"            # The host does not support explicit page sizes. Ignore pagesizes"},{"line_number":1069,"context_line":"            # completely."}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_1b37b7b2","line":1066,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"                          \u0027Required: %(required)d, actual: %(actual)d\u0027,"},{"line_number":1077,"context_line":"                          {\u0027required\u0027: instance_cell.memory,"},{"line_number":1078,"context_line":"                           \u0027actual\u0027: host_cell.memory})"},{"line_number":1079,"context_line":"                return"},{"line_number":1080,"context_line":""},{"line_number":1081,"context_line":"    # NOTE(stephenfin): As with memory, do not allow an instance to overcommit"},{"line_number":1082,"context_line":"    # against itself on any NUMA cell"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_fb3933a3","line":1079,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1090,"context_line":"                          \u0027actual\u0027: len(host_cell.pcpuset),"},{"line_number":1091,"context_line":"                          \u0027cpuset_reserved\u0027: cpuset_reserved"},{"line_number":1092,"context_line":"                      })"},{"line_number":1093,"context_line":"            return"},{"line_number":1094,"context_line":"    else:"},{"line_number":1095,"context_line":"        required_cpus \u003d len(instance_cell.cpuset)"},{"line_number":1096,"context_line":"        if required_cpus \u003e len(host_cell.cpuset):"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_5b413f0b","line":1093,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1099,"context_line":"                          \u0027required\u0027: len(instance_cell.cpuset),"},{"line_number":1100,"context_line":"                          \u0027actual\u0027: len(host_cell.cpuset),"},{"line_number":1101,"context_line":"                      })"},{"line_number":1102,"context_line":"            return"},{"line_number":1103,"context_line":""},{"line_number":1104,"context_line":"    if instance_cell.cpu_policy in ("},{"line_number":1105,"context_line":"        fields.CPUAllocationPolicy.DEDICATED,"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_3b443b1b","line":1102,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1115,"context_line":"                       \u0027vcpus\u0027: len(instance_cell.pcpuset),"},{"line_number":1116,"context_line":"                       \u0027actual\u0027: host_cell.avail_pcpus,"},{"line_number":1117,"context_line":"                       \u0027num_cpu_reserved\u0027: cpuset_reserved})"},{"line_number":1118,"context_line":"            return"},{"line_number":1119,"context_line":""},{"line_number":1120,"context_line":"        if instance_cell.memory \u003e host_cell.avail_memory:"},{"line_number":1121,"context_line":"            LOG.debug(\u0027Not enough available memory to schedule instance. \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_9b4aa724","line":1118,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"                      {\u0027required\u0027: instance_cell.memory,"},{"line_number":1126,"context_line":"                       \u0027available\u0027: host_cell.avail_memory,"},{"line_number":1127,"context_line":"                       \u0027total\u0027: host_cell.memory})"},{"line_number":1128,"context_line":"            return"},{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"        # Try to pack the instance cell onto cores"},{"line_number":1131,"context_line":"        instance_cell \u003d _pack_instance_onto_cores("}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_7b452315","line":1128,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"        )"},{"line_number":1134,"context_line":"        if not instance_cell:"},{"line_number":1135,"context_line":"            LOG.debug(\u0027Failed to map instance cell CPUs to host cell CPUs\u0027)"},{"line_number":1136,"context_line":"            return"},{"line_number":1137,"context_line":""},{"line_number":1138,"context_line":"    elif limits:"},{"line_number":1139,"context_line":"        LOG.debug(\u0027No pinning requested, considering limitations on usable cpu\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_db542fcd","line":1136,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1145,"context_line":"                      \u0027not enough free CPUs to schedule this instance. \u0027"},{"line_number":1146,"context_line":"                      \u0027Usage: %(usage)d, limit: %(limit)d\u0027,"},{"line_number":1147,"context_line":"                      {\u0027usage\u0027: cpu_usage, \u0027limit\u0027: cpu_limit})"},{"line_number":1148,"context_line":"            return"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"        ram_usage \u003d host_cell.memory_usage + instance_cell.memory"},{"line_number":1151,"context_line":"        ram_limit \u003d host_cell.memory * limits.ram_allocation_ratio"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_bb4fab32","line":1148,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1154,"context_line":"                      \u0027not enough free memory to schedule this instance. \u0027"},{"line_number":1155,"context_line":"                      \u0027Usage: %(usage)d, limit: %(limit)d\u0027,"},{"line_number":1156,"context_line":"                      {\u0027usage\u0027: ram_usage, \u0027limit\u0027: ram_limit})"},{"line_number":1157,"context_line":"            return"},{"line_number":1158,"context_line":""},{"line_number":1159,"context_line":"    instance_cell.id \u003d host_cell.id"},{"line_number":1160,"context_line":"    return instance_cell"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_1b6057a5","line":1157,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Return value expected","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1987,"context_line":"            cpus_per_cell \u003d cpu_list"},{"line_number":1988,"context_line":"        else:"},{"line_number":1989,"context_line":"            cells \u003d nodes or 1"},{"line_number":1990,"context_line":"            cpus_per_cell \u003d [int(flavor.vcpus/cells)] * cells"},{"line_number":1991,"context_line":""},{"line_number":1992,"context_line":"        dedicated_cpus \u003d _dedicated_cpus_from_resource("},{"line_number":1993,"context_line":"            cpus_per_cell, flavor.vcpus, requested_vcpus)"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_fb62d3ac","line":1990,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: List item 0 has incompatible type \"int\"; expected \"Set[int]\"","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":1990,"context_line":"            cpus_per_cell \u003d [int(flavor.vcpus/cells)] * cells"},{"line_number":1991,"context_line":""},{"line_number":1992,"context_line":"        dedicated_cpus \u003d _dedicated_cpus_from_resource("},{"line_number":1993,"context_line":"            cpus_per_cell, flavor.vcpus, requested_vcpus)"},{"line_number":1994,"context_line":""},{"line_number":1995,"context_line":"        cpu_policy \u003d fields.CPUAllocationPolicy.MIXED"},{"line_number":1996,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_5b5adff2","line":1993,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Argument 1 to \"_dedicated_cpus_from_resource\" has incompatible type \"List[Set[int]]\"; expected \"List[int]\"","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a0205a6d05ad0eaa5b6e2353425104bb4cf88eff","unresolved":false,"context_lines":[{"line_number":2243,"context_line":"    # indicative of a PCI device being associated with that node"},{"line_number":2244,"context_line":"    if not pci_requests and pci_stats:"},{"line_number":2245,"context_line":"        host_cells \u003d sorted(host_cells, key\u003dlambda cell: cell.id in ["},{"line_number":2246,"context_line":"            pool[\u0027numa_node\u0027] for pool in pci_stats.pools])"},{"line_number":2247,"context_line":""},{"line_number":2248,"context_line":"    for host_cell_perm in itertools.permutations("},{"line_number":2249,"context_line":"            host_cells, len(instance_topology)):"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_3b5d5be9","line":2246,"updated":"2020-04-08 04:14:13.000000000","message":"pep8: error: Item \"None\" of \"Optional[Any]\" has no attribute \"pools\"","commit_id":"436a39bf9fd52a4e07aaff4e4bb3c0e9f6923204"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"07b395aa97adc2d571ac12182b6fb63a41cbd010","unresolved":false,"context_lines":[{"line_number":1939,"context_line":"            raise exception.InvalidRequest("},{"line_number":1940,"context_line":"                \"You have requested \u0027hw:emulator_threads_policy\u003disolate\u0027 but \""},{"line_number":1941,"context_line":"                \"have not requested sufficient PCPUs to handle this policy; \""},{"line_number":1942,"context_line":"                \"you must allocate exactly flavor.vcpus + 1 PCPUs.\")"},{"line_number":1943,"context_line":""},{"line_number":1944,"context_line":"        if (emu_threads_policy !\u003d fields.CPUEmulatorThreadsPolicy.ISOLATE and"},{"line_number":1945,"context_line":"                flavor.vcpus !\u003d requested_pcpus):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff570b3c_ede4b1e2","side":"PARENT","line":1942,"updated":"2020-05-15 13:11:36.000000000","message":"q","commit_id":"e9e3a9ae9f5374217246e2171f223541192344b3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1fa70f35d4daaa50ed8e538acaf6c1c78727ed35","unresolved":false,"context_lines":[{"line_number":1745,"context_line":"    vcpu_in_vertical_pos \u003d {k: v for k, v in vcpu_in_vertical_pos.items()"},{"line_number":1746,"context_line":"                            if k \u003e\u003d requested_vcpus}"},{"line_number":1747,"context_line":""},{"line_number":1748,"context_line":"    return set(vcpu_in_vertical_pos.values())"},{"line_number":1749,"context_line":""},{"line_number":1750,"context_line":""},{"line_number":1751,"context_line":"# NOTE(stephenfin): This must be public as it\u0027s used elsewhere"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_2fcb3e4a","line":1748,"range":{"start_line":1748,"start_character":11,"end_line":1748,"end_character":45},"updated":"2020-04-08 17:45:38.000000000","message":"From the method\u0027s name, this make me confuse on we return the shared cpu or the dedicated cpu at here.","commit_id":"f00949edee47a532f93be2784b673325b582302a"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"4f0739446d0b65360384d24b33ef349d8b94fccf","unresolved":false,"context_lines":[{"line_number":1745,"context_line":"    vcpu_in_vertical_pos \u003d {k: v for k, v in vcpu_in_vertical_pos.items()"},{"line_number":1746,"context_line":"                            if k \u003e\u003d requested_vcpus}"},{"line_number":1747,"context_line":""},{"line_number":1748,"context_line":"    return set(vcpu_in_vertical_pos.values())"},{"line_number":1749,"context_line":""},{"line_number":1750,"context_line":""},{"line_number":1751,"context_line":"# NOTE(stephenfin): This must be public as it\u0027s used elsewhere"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_5aa3d49e","line":1748,"updated":"2020-04-09 04:23:33.000000000","message":"The code might be cofusing. Improving this by renaming the varaiables and add comment for it.\n\nInstance CPUs will be indexed according to the NUMA cell index and the position inside the cell. The first CPU in the first NUMA cell will be assigned with ID 0, then the first CPU of the second NUMA cell will be associated with ID 1 ... The CPUs with an ID less than value @vcpus are \u0027shared\u0027 CPUs, and the remaining CPUs are \u0027dedicated\u0027 CPUs.","commit_id":"f00949edee47a532f93be2784b673325b582302a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1fa70f35d4daaa50ed8e538acaf6c1c78727ed35","unresolved":false,"context_lines":[{"line_number":1994,"context_line":"        dedicated_cpus \u003d _dedicated_cpus_from_resource("},{"line_number":1995,"context_line":"            cpus_per_cell, flavor.vcpus, requested_vcpus)"},{"line_number":1996,"context_line":""},{"line_number":1997,"context_line":"        cpu_policy \u003d fields.CPUAllocationPolicy.MIXED"},{"line_number":1998,"context_line":""},{"line_number":1999,"context_line":"    elif requested_pcpus:"},{"line_number":2000,"context_line":"        if (emu_threads_policy \u003d\u003d fields.CPUEmulatorThreadsPolicy.ISOLATE and"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_0fe75ae6","line":1997,"range":{"start_line":1997,"start_character":8,"end_line":1997,"end_character":53},"updated":"2020-04-08 17:45:38.000000000","message":"I think your unittest should ensure the policy set as expected.","commit_id":"f00949edee47a532f93be2784b673325b582302a"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"07b395aa97adc2d571ac12182b6fb63a41cbd010","unresolved":false,"context_lines":[{"line_number":1994,"context_line":"        dedicated_cpus \u003d _dedicated_cpus_from_resource("},{"line_number":1995,"context_line":"            cpus_per_cell, flavor.vcpus, requested_vcpus)"},{"line_number":1996,"context_line":""},{"line_number":1997,"context_line":"        cpu_policy \u003d fields.CPUAllocationPolicy.MIXED"},{"line_number":1998,"context_line":""},{"line_number":1999,"context_line":"    elif requested_pcpus:"},{"line_number":2000,"context_line":"        if (emu_threads_policy \u003d\u003d fields.CPUEmulatorThreadsPolicy.ISOLATE and"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff570b3c_cde9edb7","line":1997,"updated":"2020-05-15 13:11:36.000000000","message":"In \u0027test_topology_constraints\u0027, I have a case for verifying the order,\nthe expected result is shared cpus occupied the first two vCPUs.\n\n\u0027\u0027\u0027\ncells \u003d [\n                        objects.InstanceNUMACell(\n                            id \u003d 0, cpuset\u003dset([0, 1]), pcpuset\u003dset([2, 3]),\n                            memory\u003d2048,\n                            cpu_policy\u003dfields.CPUAllocationPolicy.MIXED,\n                    )]),\n\u0027\u0027\u0027","commit_id":"f00949edee47a532f93be2784b673325b582302a"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"fde0239f6c6a6ec9e44df0e94630a8f10a778dbc","unresolved":false,"context_lines":[{"line_number":1723,"context_line":"    beginning of the NUMA cell, and if vCPU resource is very few, it ensures"},{"line_number":1724,"context_line":"    it will be put on the NUMA cell of a smaller cell ID."},{"line_number":1725,"context_line":"    \"\"\""},{"line_number":1726,"context_line":"    vcpu_in_vertical_pos \u003d dict()"},{"line_number":1727,"context_line":"    cells \u003d len(cpus_per_cell)"},{"line_number":1728,"context_line":""},{"line_number":1729,"context_line":"    cellid \u003d 0"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_05fce73b","line":1726,"updated":"2020-06-29 13:53:09.000000000","message":"I\u0027ll refine with a readable docstring for this function.","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"21285cdb919d087bba12ef5d59d442cdf34d6f1f","unresolved":false,"context_lines":[{"line_number":1723,"context_line":"    beginning of the NUMA cell, and if vCPU resource is very few, it ensures"},{"line_number":1724,"context_line":"    it will be put on the NUMA cell of a smaller cell ID."},{"line_number":1725,"context_line":"    \"\"\""},{"line_number":1726,"context_line":"    vcpu_in_vertical_pos \u003d dict()"},{"line_number":1727,"context_line":"    cells \u003d len(cpus_per_cell)"},{"line_number":1728,"context_line":""},{"line_number":1729,"context_line":"    cellid \u003d 0"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_6eb08944","line":1726,"range":{"start_line":1726,"start_character":4,"end_line":1726,"end_character":24},"updated":"2020-06-22 17:50:59.000000000","message":"This name isn\u0027t great. It took me a few readings to understand what you were trying to do.","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"21285cdb919d087bba12ef5d59d442cdf34d6f1f","unresolved":false,"context_lines":[{"line_number":1723,"context_line":"    beginning of the NUMA cell, and if vCPU resource is very few, it ensures"},{"line_number":1724,"context_line":"    it will be put on the NUMA cell of a smaller cell ID."},{"line_number":1725,"context_line":"    \"\"\""},{"line_number":1726,"context_line":"    vcpu_in_vertical_pos \u003d dict()"},{"line_number":1727,"context_line":"    cells \u003d len(cpus_per_cell)"},{"line_number":1728,"context_line":""},{"line_number":1729,"context_line":"    cellid \u003d 0"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_ae6101d6","line":1726,"range":{"start_line":1726,"start_character":27,"end_line":1726,"end_character":33},"updated":"2020-06-22 17:50:59.000000000","message":"{}","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"21285cdb919d087bba12ef5d59d442cdf34d6f1f","unresolved":false,"context_lines":[{"line_number":1744,"context_line":"                            if k \u003e\u003d requested_vcpus}"},{"line_number":1745,"context_line":""},{"line_number":1746,"context_line":"    return set(vcpu_in_vertical_pos.values())"},{"line_number":1747,"context_line":""},{"line_number":1748,"context_line":""},{"line_number":1749,"context_line":"# NOTE(stephenfin): This must be public as it\u0027s used elsewhere"},{"line_number":1750,"context_line":"def get_dedicated_cpu_constraint("}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_8e719d0f","line":1747,"updated":"2020-06-22 17:50:59.000000000","message":"I personally find this method very confusing. It might be helpful to provide some call examples so people can grok what it\u0027s trying to do, e.g.\n\n  \u003e\u003e\u003e _dedicated_cpus_from_resource(???, ???, ???)\n  ???","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"fde0239f6c6a6ec9e44df0e94630a8f10a778dbc","unresolved":false,"context_lines":[{"line_number":1744,"context_line":"                            if k \u003e\u003d requested_vcpus}"},{"line_number":1745,"context_line":""},{"line_number":1746,"context_line":"    return set(vcpu_in_vertical_pos.values())"},{"line_number":1747,"context_line":""},{"line_number":1748,"context_line":""},{"line_number":1749,"context_line":"# NOTE(stephenfin): This must be public as it\u0027s used elsewhere"},{"line_number":1750,"context_line":"def get_dedicated_cpu_constraint("}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_e5f6135d","line":1747,"updated":"2020-06-29 13:53:09.000000000","message":"Yes, it is confusing, even it is me who wrote this logic I have to align my thought with the code each time I read this part of code.\n\nI\u0027ll refine and add the call examples in the docstring.","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"fde0239f6c6a6ec9e44df0e94630a8f10a778dbc","unresolved":false,"context_lines":[{"line_number":1948,"context_line":"    vpmems \u003d get_vpmems(flavor)"},{"line_number":1949,"context_line":""},{"line_number":1950,"context_line":"    cpu_list \u003d _get_numa_cpu_constraint(flavor, image_meta)"},{"line_number":1951,"context_line":"    mem_list \u003d _get_numa_mem_constraint(flavor, image_meta)"},{"line_number":1952,"context_line":""},{"line_number":1953,"context_line":"    # handle explicit VCPU/PCPU resource requests and the HW_CPU_HYPERTHREADING"},{"line_number":1954,"context_line":"    # trait"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_4597ffec","line":1951,"updated":"2020-06-29 13:53:09.000000000","message":"[2] this place ...","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"fde0239f6c6a6ec9e44df0e94630a8f10a778dbc","unresolved":false,"context_lines":[{"line_number":1985,"context_line":"            cpus_per_cell \u003d [len(cpu) for cpu in cpu_list]"},{"line_number":1986,"context_line":"        else:"},{"line_number":1987,"context_line":"            cells \u003d nodes or 1"},{"line_number":1988,"context_line":"            cpus_per_cell \u003d [int(flavor.vcpus / cells)] * cells"},{"line_number":1989,"context_line":""},{"line_number":1990,"context_line":"        dedicated_cpus \u003d _dedicated_cpus_from_resource("},{"line_number":1991,"context_line":"            cpus_per_cell, flavor.vcpus, requested_vcpus)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_259acb12","line":1988,"updated":"2020-06-29 13:53:09.000000000","message":"I need to provide a note for this.\n\u0027cpu_list\u0027 is the result of \u0027_get_numa_cpu_constraint\u0027 and reflects the result of \u0027hw:numa_cpus.N\u0027 or \u0027hw_numa_cpus.N\u0027, and this extra spec or image property gives user the chance to create un-balanced vCPU distribution on multi-node instsance guest.\nIf \u0027cpu_list\u0027 is None, which means the vcpus will be evenly distributed on all instance NUMA cells.\n\nJust as you said the validation is conducted after this code. Maybe I can move the validation code from function _get_numa_topology_auto to this[2](#L1950) place or add a note as you said. I am not going to make an immidiate decision since the code is changing due to the NUMA placement implementation.","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"21285cdb919d087bba12ef5d59d442cdf34d6f1f","unresolved":false,"context_lines":[{"line_number":1984,"context_line":"        if cpu_list:"},{"line_number":1985,"context_line":"            cpus_per_cell \u003d [len(cpu) for cpu in cpu_list]"},{"line_number":1986,"context_line":"        else:"},{"line_number":1987,"context_line":"            cells \u003d nodes or 1"},{"line_number":1988,"context_line":"            cpus_per_cell \u003d [int(flavor.vcpus / cells)] * cells"},{"line_number":1989,"context_line":""},{"line_number":1990,"context_line":"        dedicated_cpus \u003d _dedicated_cpus_from_resource("},{"line_number":1991,"context_line":"            cpus_per_cell, flavor.vcpus, requested_vcpus)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_8ea7dda7","line":1988,"range":{"start_line":1987,"start_character":0,"end_line":1988,"end_character":63},"updated":"2020-06-22 17:50:59.000000000","message":"This assumes cells evenly divides into flavor.vcpus, right?\n\nLater: Yes, it does. This is validated below by the call to \u0027_get_numa_topology_auto\u0027. I guess we can\u0027t defer selection of these cores until then? If not, we should add a NOTE here stating that this can be wrong but it will be handled later","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a1de49cc2068290e9f1506a54d1eeb37303806f0","unresolved":false,"context_lines":[{"line_number":1985,"context_line":"            cpus_per_cell \u003d [len(cpu) for cpu in cpu_list]"},{"line_number":1986,"context_line":"        else:"},{"line_number":1987,"context_line":"            cells \u003d nodes or 1"},{"line_number":1988,"context_line":"            cpus_per_cell \u003d [int(flavor.vcpus / cells)] * cells"},{"line_number":1989,"context_line":""},{"line_number":1990,"context_line":"        dedicated_cpus \u003d _dedicated_cpus_from_resource("},{"line_number":1991,"context_line":"            cpus_per_cell, flavor.vcpus, requested_vcpus)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_fe2ce0ac","line":1988,"in_reply_to":"bf51134e_259acb12","updated":"2020-06-29 16:41:19.000000000","message":"I\u0027m okay with a NOTE for now. We can move things around later if it doesn\u0027t work out","commit_id":"0e9f41bb2aab9bcf6641e891cf4ebae201dbdf42"}]}
