)]}'
{"nova/virt/hardware.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1032,"context_line":"            LOG.debug(\u0027Host does not support requested memory pagesize, \u0027"},{"line_number":1033,"context_line":"                      \u0027or not enough free pages of the requested size. \u0027"},{"line_number":1034,"context_line":"                      \u0027Requested: %d kB\u0027, instance_cell.pagesize)"},{"line_number":1035,"context_line":"            return"},{"line_number":1036,"context_line":"        LOG.debug(\u0027Selected memory pagesize: %(selected_mem_pagesize)d kB. \u0027"},{"line_number":1037,"context_line":"                  \u0027Requested memory pagesize: %(requested_mem_pagesize)d \u0027"},{"line_number":1038,"context_line":"                  \u0027(small \u003d -1, large \u003d -2, any \u003d -3)\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_a28e7724","line":1035,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1032,"context_line":"            LOG.debug(\u0027Host does not support requested memory pagesize, \u0027"},{"line_number":1033,"context_line":"                      \u0027or not enough free pages of the requested size. \u0027"},{"line_number":1034,"context_line":"                      \u0027Requested: %d kB\u0027, instance_cell.pagesize)"},{"line_number":1035,"context_line":"            return"},{"line_number":1036,"context_line":"        LOG.debug(\u0027Selected memory pagesize: %(selected_mem_pagesize)d kB. \u0027"},{"line_number":1037,"context_line":"                  \u0027Requested memory pagesize: %(requested_mem_pagesize)d \u0027"},{"line_number":1038,"context_line":"                  \u0027(small \u003d -1, large \u003d -2, any \u003d -3)\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_6ab8a775","line":1035,"in_reply_to":"df33271e_a28e7724","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"                           \u0027available\u0027: host_cell.avail_memory,"},{"line_number":1062,"context_line":"                           \u0027total\u0027: host_cell.memory,"},{"line_number":1063,"context_line":"                           \u0027pagesize\u0027: pagesize})"},{"line_number":1064,"context_line":"                return"},{"line_number":1065,"context_line":"        else:"},{"line_number":1066,"context_line":"            # The host does not support explicit page sizes. Ignore pagesizes"},{"line_number":1067,"context_line":"            # completely."}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_8291b349","line":1064,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"                           \u0027available\u0027: host_cell.avail_memory,"},{"line_number":1062,"context_line":"                           \u0027total\u0027: host_cell.memory,"},{"line_number":1063,"context_line":"                           \u0027pagesize\u0027: pagesize})"},{"line_number":1064,"context_line":"                return"},{"line_number":1065,"context_line":"        else:"},{"line_number":1066,"context_line":"            # The host does not support explicit page sizes. Ignore pagesizes"},{"line_number":1067,"context_line":"            # completely."}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_4abb2371","line":1064,"in_reply_to":"df33271e_8291b349","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1074,"context_line":"                          \u0027Required: %(required)d, actual: %(actual)d\u0027,"},{"line_number":1075,"context_line":"                          {\u0027required\u0027: instance_cell.memory,"},{"line_number":1076,"context_line":"                           \u0027actual\u0027: host_cell.memory})"},{"line_number":1077,"context_line":"                return"},{"line_number":1078,"context_line":""},{"line_number":1079,"context_line":"    # NOTE(stephenfin): As with memory, do not allow an instance to overcommit"},{"line_number":1080,"context_line":"    # against itself on any NUMA cell"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_e2987f6b","line":1077,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1074,"context_line":"                          \u0027Required: %(required)d, actual: %(actual)d\u0027,"},{"line_number":1075,"context_line":"                          {\u0027required\u0027: instance_cell.memory,"},{"line_number":1076,"context_line":"                           \u0027actual\u0027: host_cell.memory})"},{"line_number":1077,"context_line":"                return"},{"line_number":1078,"context_line":""},{"line_number":1079,"context_line":"    # NOTE(stephenfin): As with memory, do not allow an instance to overcommit"},{"line_number":1080,"context_line":"    # against itself on any NUMA cell"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_aab10f92","line":1077,"in_reply_to":"df33271e_e2987f6b","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1088,"context_line":"                          \u0027actual\u0027: len(host_cell.pcpuset),"},{"line_number":1089,"context_line":"                          \u0027cpuset_reserved\u0027: cpuset_reserved"},{"line_number":1090,"context_line":"                      })"},{"line_number":1091,"context_line":"            return"},{"line_number":1092,"context_line":"    else:"},{"line_number":1093,"context_line":"        required_cpus \u003d len(instance_cell.cpuset)"},{"line_number":1094,"context_line":"        if required_cpus \u003e len(host_cell.cpuset):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_c29bbb63","line":1091,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1088,"context_line":"                          \u0027actual\u0027: len(host_cell.pcpuset),"},{"line_number":1089,"context_line":"                          \u0027cpuset_reserved\u0027: cpuset_reserved"},{"line_number":1090,"context_line":"                      })"},{"line_number":1091,"context_line":"            return"},{"line_number":1092,"context_line":"    else:"},{"line_number":1093,"context_line":"        required_cpus \u003d len(instance_cell.cpuset)"},{"line_number":1094,"context_line":"        if required_cpus \u003e len(host_cell.cpuset):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_8aac0b36","line":1091,"in_reply_to":"df33271e_c29bbb63","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"                          \u0027required\u0027: len(instance_cell.cpuset),"},{"line_number":1098,"context_line":"                          \u0027actual\u0027: len(host_cell.cpuset),"},{"line_number":1099,"context_line":"                      })"},{"line_number":1100,"context_line":"            return"},{"line_number":1101,"context_line":""},{"line_number":1102,"context_line":"    if instance_cell.cpu_policy \u003d\u003d fields.CPUAllocationPolicy.DEDICATED:"},{"line_number":1103,"context_line":"        LOG.debug(\u0027Pinning has been requested\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_22a2679b","line":1100,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"                          \u0027required\u0027: len(instance_cell.cpuset),"},{"line_number":1098,"context_line":"                          \u0027actual\u0027: len(host_cell.cpuset),"},{"line_number":1099,"context_line":"                      })"},{"line_number":1100,"context_line":"            return"},{"line_number":1101,"context_line":""},{"line_number":1102,"context_line":"    if instance_cell.cpu_policy \u003d\u003d fields.CPUAllocationPolicy.DEDICATED:"},{"line_number":1103,"context_line":"        LOG.debug(\u0027Pinning has been requested\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_eaab171a","line":1100,"in_reply_to":"df33271e_22a2679b","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"86e63be28edb4b6f3d4b514b744140d4e206c299","unresolved":false,"context_lines":[{"line_number":1101,"context_line":""},{"line_number":1102,"context_line":"    if instance_cell.cpu_policy \u003d\u003d fields.CPUAllocationPolicy.DEDICATED:"},{"line_number":1103,"context_line":"        LOG.debug(\u0027Pinning has been requested\u0027)"},{"line_number":1104,"context_line":"        required_cpus \u003d len(instance_cell.cpuset) + cpuset_reserved"},{"line_number":1105,"context_line":"        if required_cpus \u003e host_cell.avail_pcpus:"},{"line_number":1106,"context_line":"            LOG.debug(\u0027Not enough available CPUs to schedule instance. \u0027"},{"line_number":1107,"context_line":"                      \u0027Oversubscription is not possible with pinned \u0027"},{"line_number":1108,"context_line":"                      \u0027instances. Required: %(required)d (%(vcpus)d + \u0027"},{"line_number":1109,"context_line":"                      \u0027%(num_cpu_reserved)d), actual: %(actual)d\u0027,"},{"line_number":1110,"context_line":"                      {\u0027required\u0027: required_cpus,"},{"line_number":1111,"context_line":"                       \u0027vcpus\u0027: len(instance_cell.cpuset),"},{"line_number":1112,"context_line":"                       \u0027actual\u0027: host_cell.avail_pcpus,"},{"line_number":1113,"context_line":"                       \u0027num_cpu_reserved\u0027: cpuset_reserved})"},{"line_number":1114,"context_line":"            return"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":"        if instance_cell.memory \u003e host_cell.avail_memory:"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_fe65a11e","line":1113,"range":{"start_line":1104,"start_character":8,"end_line":1113,"end_character":60},"updated":"2020-04-08 06:59:09.000000000","message":"just found we do the same check with line 1082.","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1101,"context_line":""},{"line_number":1102,"context_line":"    if instance_cell.cpu_policy \u003d\u003d fields.CPUAllocationPolicy.DEDICATED:"},{"line_number":1103,"context_line":"        LOG.debug(\u0027Pinning has been requested\u0027)"},{"line_number":1104,"context_line":"        required_cpus \u003d len(instance_cell.cpuset) + cpuset_reserved"},{"line_number":1105,"context_line":"        if required_cpus \u003e host_cell.avail_pcpus:"},{"line_number":1106,"context_line":"            LOG.debug(\u0027Not enough available CPUs to schedule instance. \u0027"},{"line_number":1107,"context_line":"                      \u0027Oversubscription is not possible with pinned \u0027"},{"line_number":1108,"context_line":"                      \u0027instances. Required: %(required)d (%(vcpus)d + \u0027"},{"line_number":1109,"context_line":"                      \u0027%(num_cpu_reserved)d), actual: %(actual)d\u0027,"},{"line_number":1110,"context_line":"                      {\u0027required\u0027: required_cpus,"},{"line_number":1111,"context_line":"                       \u0027vcpus\u0027: len(instance_cell.cpuset),"},{"line_number":1112,"context_line":"                       \u0027actual\u0027: host_cell.avail_pcpus,"},{"line_number":1113,"context_line":"                       \u0027num_cpu_reserved\u0027: cpuset_reserved})"},{"line_number":1114,"context_line":"            return"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":"        if instance_cell.memory \u003e host_cell.avail_memory:"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_ea59575a","line":1113,"range":{"start_line":1104,"start_character":8,"end_line":1113,"end_character":60},"in_reply_to":"df33271e_fe65a11e","updated":"2020-04-08 10:19:00.000000000","message":"It\u0027s similar but not the same. Compare line 1083\n\n  if required_cpus \u003e len(host_cell.pcpuset):\n\nto line 1105:\n\n  if required_cpus \u003e host_cell.avail_pcpus:\n\nWe can probably remove the check on line 1082, but let\u0027s do that in a follow-up","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1111,"context_line":"                       \u0027vcpus\u0027: len(instance_cell.cpuset),"},{"line_number":1112,"context_line":"                       \u0027actual\u0027: host_cell.avail_pcpus,"},{"line_number":1113,"context_line":"                       \u0027num_cpu_reserved\u0027: cpuset_reserved})"},{"line_number":1114,"context_line":"            return"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":"        if instance_cell.memory \u003e host_cell.avail_memory:"},{"line_number":1117,"context_line":"            LOG.debug(\u0027Not enough available memory to schedule instance. \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_029da356","line":1114,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1111,"context_line":"                       \u0027vcpus\u0027: len(instance_cell.cpuset),"},{"line_number":1112,"context_line":"                       \u0027actual\u0027: host_cell.avail_pcpus,"},{"line_number":1113,"context_line":"                       \u0027num_cpu_reserved\u0027: cpuset_reserved})"},{"line_number":1114,"context_line":"            return"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":"        if instance_cell.memory \u003e host_cell.avail_memory:"},{"line_number":1117,"context_line":"            LOG.debug(\u0027Not enough available memory to schedule instance. \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_de8c1837","line":1114,"in_reply_to":"df33271e_029da356","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"                      {\u0027required\u0027: instance_cell.memory,"},{"line_number":1122,"context_line":"                       \u0027available\u0027: host_cell.avail_memory,"},{"line_number":1123,"context_line":"                       \u0027total\u0027: host_cell.memory})"},{"line_number":1124,"context_line":"            return"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"        # Try to pack the instance cell onto cores"},{"line_number":1127,"context_line":"        instance_cell \u003d _pack_instance_onto_cores("}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_62ac6f8c","line":1124,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"                      {\u0027required\u0027: instance_cell.memory,"},{"line_number":1122,"context_line":"                       \u0027available\u0027: host_cell.avail_memory,"},{"line_number":1123,"context_line":"                       \u0027total\u0027: host_cell.memory})"},{"line_number":1124,"context_line":"            return"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"        # Try to pack the instance cell onto cores"},{"line_number":1127,"context_line":"        instance_cell \u003d _pack_instance_onto_cores("}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_fe891c26","line":1124,"in_reply_to":"df33271e_62ac6f8c","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"        )"},{"line_number":1130,"context_line":"        if not instance_cell:"},{"line_number":1131,"context_line":"            LOG.debug(\u0027Failed to map instance cell CPUs to host cell CPUs\u0027)"},{"line_number":1132,"context_line":"            return"},{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"    elif limits:"},{"line_number":1135,"context_line":"        LOG.debug(\u0027No pinning requested, considering limitations on usable cpu\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_42a7aba8","line":1132,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"        )"},{"line_number":1130,"context_line":"        if not instance_cell:"},{"line_number":1131,"context_line":"            LOG.debug(\u0027Failed to map instance cell CPUs to host cell CPUs\u0027)"},{"line_number":1132,"context_line":"            return"},{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"    elif limits:"},{"line_number":1135,"context_line":"        LOG.debug(\u0027No pinning requested, considering limitations on usable cpu\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_9e99f07a","line":1132,"in_reply_to":"df33271e_42a7aba8","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"                      \u0027not enough free CPUs to schedule this instance. \u0027"},{"line_number":1142,"context_line":"                      \u0027Usage: %(usage)d, limit: %(limit)d\u0027,"},{"line_number":1143,"context_line":"                      {\u0027usage\u0027: cpu_usage, \u0027limit\u0027: cpu_limit})"},{"line_number":1144,"context_line":"            return"},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"        ram_usage \u003d host_cell.memory_usage + instance_cell.memory"},{"line_number":1147,"context_line":"        ram_limit \u003d host_cell.memory * limits.ram_allocation_ratio"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_a2b797d8","line":1144,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"                      \u0027not enough free CPUs to schedule this instance. \u0027"},{"line_number":1142,"context_line":"                      \u0027Usage: %(usage)d, limit: %(limit)d\u0027,"},{"line_number":1143,"context_line":"                      {\u0027usage\u0027: cpu_usage, \u0027limit\u0027: cpu_limit})"},{"line_number":1144,"context_line":"            return"},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"        ram_usage \u003d host_cell.memory_usage + instance_cell.memory"},{"line_number":1147,"context_line":"        ram_limit \u003d host_cell.memory * limits.ram_allocation_ratio"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_be9e7460","line":1144,"in_reply_to":"df33271e_a2b797d8","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":1150,"context_line":"                      \u0027not enough free memory to schedule this instance. \u0027"},{"line_number":1151,"context_line":"                      \u0027Usage: %(usage)d, limit: %(limit)d\u0027,"},{"line_number":1152,"context_line":"                      {\u0027usage\u0027: ram_usage, \u0027limit\u0027: ram_limit})"},{"line_number":1153,"context_line":"            return"},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"    instance_cell.id \u003d host_cell.id"},{"line_number":1156,"context_line":"    return instance_cell"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_82ba53bd","line":1153,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Return value expected","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":1150,"context_line":"                      \u0027not enough free memory to schedule this instance. \u0027"},{"line_number":1151,"context_line":"                      \u0027Usage: %(usage)d, limit: %(limit)d\u0027,"},{"line_number":1152,"context_line":"                      {\u0027usage\u0027: ram_usage, \u0027limit\u0027: ram_limit})"},{"line_number":1153,"context_line":"            return"},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"    instance_cell.id \u003d host_cell.id"},{"line_number":1156,"context_line":"    return instance_cell"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_5e8f682d","line":1153,"in_reply_to":"df33271e_82ba53bd","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"175933b6c1970fc6ba294d3f24c713f9df2a5249","unresolved":false,"context_lines":[{"line_number":2085,"context_line":"    # indicative of a PCI device being associated with that node"},{"line_number":2086,"context_line":"    if not pci_requests and pci_stats:"},{"line_number":2087,"context_line":"        host_cells \u003d sorted(host_cells, key\u003dlambda cell: cell.id in ["},{"line_number":2088,"context_line":"            pool[\u0027numa_node\u0027] for pool in pci_stats.pools])"},{"line_number":2089,"context_line":""},{"line_number":2090,"context_line":"    for host_cell_perm in itertools.permutations("},{"line_number":2091,"context_line":"            host_cells, len(instance_topology)):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_e2b19fe3","line":2088,"updated":"2020-04-07 12:35:15.000000000","message":"pep8: error: Item \"None\" of \"Optional[Any]\" has no attribute \"pools\"","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5d7693925f16e2015155aa8bdc1263269dcd1f86","unresolved":false,"context_lines":[{"line_number":2085,"context_line":"    # indicative of a PCI device being associated with that node"},{"line_number":2086,"context_line":"    if not pci_requests and pci_stats:"},{"line_number":2087,"context_line":"        host_cells \u003d sorted(host_cells, key\u003dlambda cell: cell.id in ["},{"line_number":2088,"context_line":"            pool[\u0027numa_node\u0027] for pool in pci_stats.pools])"},{"line_number":2089,"context_line":""},{"line_number":2090,"context_line":"    for host_cell_perm in itertools.permutations("},{"line_number":2091,"context_line":"            host_cells, len(instance_topology)):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_4a17a352","line":2088,"in_reply_to":"df33271e_e2b19fe3","updated":"2020-04-08 10:19:00.000000000","message":"Done","commit_id":"fc3ac5f6d944955e4ff9212dae76a31e81e4e0b7"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"834e513de828ecd74f9576084fbf856878b0e682","unresolved":false,"context_lines":[{"line_number":1077,"context_line":"    # NOTE(stephenfin): As with memory, do not allow an instance to overcommit"},{"line_number":1078,"context_line":"    # against itself on any NUMA cell"},{"line_number":1079,"context_line":"    if instance_cell.cpu_policy \u003d\u003d fields.CPUAllocationPolicy.DEDICATED:"},{"line_number":1080,"context_line":"        required_cpus \u003d len(instance_cell.cpuset) + cpuset_reserved"},{"line_number":1081,"context_line":"        if required_cpus \u003e len(host_cell.pcpuset):"},{"line_number":1082,"context_line":"            LOG.debug(\u0027Not enough host cell CPUs to fit instance cell; \u0027"},{"line_number":1083,"context_line":"                      \u0027required: %(required)d + %(cpuset_reserved)d as \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff570b3c_09f4b2ce","line":1080,"updated":"2020-05-13 07:06:52.000000000","message":"Maybe you should drop this check because later it will introduce a stricter check for comparing the \u0027resuqired_cpus\u0027 with \u0027host_cell.avail_pcpus\u0027. \n\u0027avail_pcpus\u0027 is always less than \u0027host_cell.pcpus\u0027 considering the logic:\n\n```code \u0027nova/objects/numa.py\u0027\n    @property\n    def free_pcpus(self):\n        \"\"\"Return available dedicated CPUs.\"\"\"\n        return self.pcpuset - self.pinned_cpus or set()\n\n    @property\n    def avail_pcpus(self):\n        \"\"\"Return number of available dedicated CPUs.\"\"\"\n        return len(self.free_pcpus)\n\n```","commit_id":"bb45b68fb588b624428413bca68f29bd4dc66f36"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5e0b6509f2e6800cf5ca63c802392363475f06d9","unresolved":false,"context_lines":[{"line_number":1077,"context_line":"    # NOTE(stephenfin): As with memory, do not allow an instance to overcommit"},{"line_number":1078,"context_line":"    # against itself on any NUMA cell"},{"line_number":1079,"context_line":"    if instance_cell.cpu_policy \u003d\u003d fields.CPUAllocationPolicy.DEDICATED:"},{"line_number":1080,"context_line":"        required_cpus \u003d len(instance_cell.cpuset) + cpuset_reserved"},{"line_number":1081,"context_line":"        if required_cpus \u003e len(host_cell.pcpuset):"},{"line_number":1082,"context_line":"            LOG.debug(\u0027Not enough host cell CPUs to fit instance cell; \u0027"},{"line_number":1083,"context_line":"                      \u0027required: %(required)d + %(cpuset_reserved)d as \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff570b3c_fdd138cf","line":1080,"in_reply_to":"ff570b3c_09f4b2ce","updated":"2020-05-13 10:26:38.000000000","message":"Later: I noticed you are aware this duplicating check in the history review from Alex.","commit_id":"bb45b68fb588b624428413bca68f29bd4dc66f36"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a1ad93fea48dc0b331cd4468543c38fa752d5268","unresolved":false,"context_lines":[{"line_number":1145,"context_line":"            host_cell, instance_cell, cpuset_reserved)"},{"line_number":1146,"context_line":"        if not new_instance_cell:"},{"line_number":1147,"context_line":"            return"},{"line_number":1148,"context_line":"        new_instance_cell.pagesize \u003d instance_cell.pagesize"},{"line_number":1149,"context_line":"        instance_cell \u003d new_instance_cell"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    elif limit_cell:"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_45f674fb","side":"PARENT","line":1148,"updated":"2020-07-07 11:50:10.000000000","message":"Is this not necessary in the new code?","commit_id":"eedac34b21e591ca4d31aa1856ef8a52b7b86d3d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ea8356022c31be8cf68f19ede27e70236279fbd6","unresolved":false,"context_lines":[{"line_number":1145,"context_line":"            host_cell, instance_cell, cpuset_reserved)"},{"line_number":1146,"context_line":"        if not new_instance_cell:"},{"line_number":1147,"context_line":"            return"},{"line_number":1148,"context_line":"        new_instance_cell.pagesize \u003d instance_cell.pagesize"},{"line_number":1149,"context_line":"        instance_cell \u003d new_instance_cell"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    elif limit_cell:"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_54d8b2ed","side":"PARENT","line":1148,"in_reply_to":"bf51134e_45f674fb","updated":"2020-07-09 17:03:53.000000000","message":"This was never necessary, and neither was any of this silly \u0027new_instance_cell\u0027 nonsense. \u0027_pack_instance_onto_cores\u0027 is the thing we\u0027re worried about here, and that was previously called by \u0027_numa_fit_instance_cell_with_pinning\u0027 and is now called by \u0027_numa_fit_instance_cell\u0027 directly. However, \u0027_pack_instance_onto_cores\u0027 doesn\u0027t return a new \u0027InstanceNUMACell\u0027 object - it modifies what it\u0027s given in-place, as noted here [1].\n\n[1] https://github.com/openstack/nova/blob/6d6b8b45228a/nova/scheduler/filters/numa_topology_filter.py#L64-L71","commit_id":"eedac34b21e591ca4d31aa1856ef8a52b7b86d3d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"074eade69c98b0834f4147e1e7a550e89845e417","unresolved":false,"context_lines":[{"line_number":1145,"context_line":"            host_cell, instance_cell, cpuset_reserved)"},{"line_number":1146,"context_line":"        if not new_instance_cell:"},{"line_number":1147,"context_line":"            return"},{"line_number":1148,"context_line":"        new_instance_cell.pagesize \u003d instance_cell.pagesize"},{"line_number":1149,"context_line":"        instance_cell \u003d new_instance_cell"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    elif limit_cell:"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_78231da8","side":"PARENT","line":1148,"in_reply_to":"bf51134e_54d8b2ed","updated":"2020-07-10 12:36:42.000000000","message":"Thanks!","commit_id":"eedac34b21e591ca4d31aa1856ef8a52b7b86d3d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a1ad93fea48dc0b331cd4468543c38fa752d5268","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"                      {\u0027usage\u0027: cpu_usage, \u0027limit\u0027: cpu_limit})"},{"line_number":1144,"context_line":"            return None"},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"        ram_usage \u003d host_cell.memory_usage + instance_cell.memory"},{"line_number":1147,"context_line":"        ram_limit \u003d host_cell.memory * limits.ram_allocation_ratio"},{"line_number":1148,"context_line":"        if ram_usage \u003e ram_limit:"},{"line_number":1149,"context_line":"            LOG.debug(\u0027Host cell has limitations on usable memory. There is \u0027"},{"line_number":1150,"context_line":"                      \u0027not enough free memory to schedule this instance. \u0027"},{"line_number":1151,"context_line":"                      \u0027Usage: %(usage)d, limit: %(limit)d\u0027,"},{"line_number":1152,"context_line":"                      {\u0027usage\u0027: ram_usage, \u0027limit\u0027: ram_limit})"},{"line_number":1153,"context_line":"            return None"},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"    instance_cell.id \u003d host_cell.id"},{"line_number":1156,"context_line":"    return instance_cell"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_65cc58bc","line":1153,"range":{"start_line":1146,"start_character":0,"end_line":1153,"end_character":23},"updated":"2020-07-07 11:50:10.000000000","message":"nice untangling","commit_id":"d689533d9ea50dfc0919f9845c689a7ac3baff4a"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a1ad93fea48dc0b331cd4468543c38fa752d5268","unresolved":false,"context_lines":[{"line_number":2072,"context_line":"    # devices attached. Presence of a given numa_node in a PCI pool is"},{"line_number":2073,"context_line":"    # indicative of a PCI device being associated with that node"},{"line_number":2074,"context_line":"    if not pci_requests and pci_stats:"},{"line_number":2075,"context_line":"        # TODO(stephenfin): pci_stats can\u0027t be None here but mypy can\u0027t figure"},{"line_number":2076,"context_line":"        # that out for some reason"},{"line_number":2077,"context_line":"        host_cells \u003d sorted(host_cells, key\u003dlambda cell: cell.id in ["},{"line_number":2078,"context_line":"            pool[\u0027numa_node\u0027] for pool in pci_stats.pools])  # type: ignore"},{"line_number":2079,"context_line":""},{"line_number":2080,"context_line":"    for host_cell_perm in itertools.permutations("},{"line_number":2081,"context_line":"            host_cells, len(instance_topology)):"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_10879863","line":2078,"range":{"start_line":2075,"start_character":0,"end_line":2078,"end_character":75},"updated":"2020-07-07 11:50:10.000000000","message":"This is pretty interesting. If I pull the [pool[\u0027numa_node\u0027] for pool in pci_stats.pools] out to a variable then mypy accept it. Also If I only pull out the lambda to a variable but keep the list comprehension inside the lambda, mypy accept it. \n\nBtw, pulling the list comprehension out from the lambda seems sensible to avoid doing the same loop for every comparison call during the sort.","commit_id":"d689533d9ea50dfc0919f9845c689a7ac3baff4a"}]}
