)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"47f6fc7771f0b94fbfe38f28412c2a40f2b54909","unresolved":true,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Since we need to look at both image properties and flavor extra spec,"},{"line_number":15,"context_line":"we\u0027ve also made the _get_unique_flavor_image_meta() helper in"},{"line_number":16,"context_line":"hardware.py public."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The actual trait reporting by the libvirt driver will be added"},{"line_number":19,"context_line":"in a future patch. Until then the `socket` value remains a hidden"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"c29469c1_85cab505","line":16,"updated":"2021-02-24 10:37:17.000000000","message":"This is no longer true.","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bbe602020ec2c6998a26661971588d88ceeb8365","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Since we need to look at both image properties and flavor extra spec,"},{"line_number":15,"context_line":"we\u0027ve also made the _get_unique_flavor_image_meta() helper in"},{"line_number":16,"context_line":"hardware.py public."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The actual trait reporting by the libvirt driver will be added"},{"line_number":19,"context_line":"in a future patch. Until then the `socket` value remains a hidden"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"d10fb537_c38d9d05","line":16,"in_reply_to":"c29469c1_85cab505","updated":"2021-02-24 10:37:54.000000000","message":"Done","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"}],"nova/scheduler/request_filter.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3a07e96f886814a02d5d5efa899a7289b08bd32a","unresolved":true,"context_lines":[{"line_number":243,"context_line":"    \"\"\""},{"line_number":244,"context_line":"    policy \u003d hardware.get_unique_flavor_image_meta("},{"line_number":245,"context_line":"        \u0027pci_numa_affinity_policy\u0027, request_spec.flavor,"},{"line_number":246,"context_line":"        request_spec.image)"},{"line_number":247,"context_line":"    if policy \u003d\u003d objects.fields.PCINUMAAffinityPolicy.SOCKET:"},{"line_number":248,"context_line":"        request_spec.root_required.add(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027)"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"52011ba2_b01caacc","line":246,"updated":"2021-02-19 18:19:05.000000000","message":"Any reason you use this and not \u0027get_pci_numa_policy_constraint\u0027? We don\u0027t need to worry about exceptions - the API should have handled those for us already","commit_id":"d6c30c958a30806d49988d6cd9b7f66efc284bb1"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b0d28d1e837bbec3097e6048d0882b1d350208ef","unresolved":true,"context_lines":[{"line_number":243,"context_line":"    \"\"\""},{"line_number":244,"context_line":"    policy \u003d hardware.get_unique_flavor_image_meta("},{"line_number":245,"context_line":"        \u0027pci_numa_affinity_policy\u0027, request_spec.flavor,"},{"line_number":246,"context_line":"        request_spec.image)"},{"line_number":247,"context_line":"    if policy \u003d\u003d objects.fields.PCINUMAAffinityPolicy.SOCKET:"},{"line_number":248,"context_line":"        request_spec.root_required.add(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027)"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"37ed6eff_fea1a4e0","line":246,"in_reply_to":"52011ba2_b01caacc","updated":"2021-02-21 14:12:06.000000000","message":"Because I didn\u0027t notice it existed :P","commit_id":"d6c30c958a30806d49988d6cd9b7f66efc284bb1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6bd5bd8d8fbc4babc3115c9d2470eda8342ad385","unresolved":true,"context_lines":[{"line_number":244,"context_line":"    policy \u003d hardware.get_pci_numa_policy_constraint(request_spec.flavor,"},{"line_number":245,"context_line":"                                                     request_spec.image)"},{"line_number":246,"context_line":"    if policy \u003d\u003d objects.fields.PCINUMAAffinityPolicy.SOCKET:"},{"line_number":247,"context_line":"        request_spec.root_required.add(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"@trace_request_filter"}],"source_content_type":"text/x-python","patch_set":12,"id":"8946903d_21dae5a2","line":247,"updated":"2021-02-23 17:36:41.000000000","message":"This works, but this is usually done by way of \u0027_translate_foo_request\u0027 helpers in \u0027nova/scheduler/utils.py\u0027. Is there value in maintaining that pattern?","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"15d76308807771acb92e6a9d0b6cf91955471cd8","unresolved":true,"context_lines":[{"line_number":244,"context_line":"    policy \u003d hardware.get_pci_numa_policy_constraint(request_spec.flavor,"},{"line_number":245,"context_line":"                                                     request_spec.image)"},{"line_number":246,"context_line":"    if policy \u003d\u003d objects.fields.PCINUMAAffinityPolicy.SOCKET:"},{"line_number":247,"context_line":"        request_spec.root_required.add(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"@trace_request_filter"}],"source_content_type":"text/x-python","patch_set":12,"id":"4b628542_7daab5db","line":247,"range":{"start_line":247,"start_character":40,"end_line":247,"end_character":72},"updated":"2021-02-24 10:07:17.000000000","message":"this should be used from the os-traits lib instead of using the string literal","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bbe602020ec2c6998a26661971588d88ceeb8365","unresolved":false,"context_lines":[{"line_number":244,"context_line":"    policy \u003d hardware.get_pci_numa_policy_constraint(request_spec.flavor,"},{"line_number":245,"context_line":"                                                     request_spec.image)"},{"line_number":246,"context_line":"    if policy \u003d\u003d objects.fields.PCINUMAAffinityPolicy.SOCKET:"},{"line_number":247,"context_line":"        request_spec.root_required.add(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"@trace_request_filter"}],"source_content_type":"text/x-python","patch_set":12,"id":"2b02c7e3_f70312b8","line":247,"in_reply_to":"23d1b312_447742fc","updated":"2021-02-24 10:37:54.000000000","message":"Done","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bbe602020ec2c6998a26661971588d88ceeb8365","unresolved":false,"context_lines":[{"line_number":244,"context_line":"    policy \u003d hardware.get_pci_numa_policy_constraint(request_spec.flavor,"},{"line_number":245,"context_line":"                                                     request_spec.image)"},{"line_number":246,"context_line":"    if policy \u003d\u003d objects.fields.PCINUMAAffinityPolicy.SOCKET:"},{"line_number":247,"context_line":"        request_spec.root_required.add(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"@trace_request_filter"}],"source_content_type":"text/x-python","patch_set":12,"id":"d8232236_64202275","line":247,"range":{"start_line":247,"start_character":40,"end_line":247,"end_character":72},"in_reply_to":"4b628542_7daab5db","updated":"2021-02-24 10:37:54.000000000","message":"Done","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"15d76308807771acb92e6a9d0b6cf91955471cd8","unresolved":true,"context_lines":[{"line_number":244,"context_line":"    policy \u003d hardware.get_pci_numa_policy_constraint(request_spec.flavor,"},{"line_number":245,"context_line":"                                                     request_spec.image)"},{"line_number":246,"context_line":"    if policy \u003d\u003d objects.fields.PCINUMAAffinityPolicy.SOCKET:"},{"line_number":247,"context_line":"        request_spec.root_required.add(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"@trace_request_filter"}],"source_content_type":"text/x-python","patch_set":12,"id":"23d1b312_447742fc","line":247,"in_reply_to":"8946903d_21dae5a2","updated":"2021-02-24 10:07:17.000000000","message":"I think it is nice pattern to keep so that we have the extra_spec / image_prop translation at the same place","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"}],"nova/tests/unit/scheduler/test_request_filter.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"15d76308807771acb92e6a9d0b6cf91955471cd8","unresolved":true,"context_lines":[{"line_number":342,"context_line":"                extra_specs\u003d{\u0027hw:pci_numa_affinity_policy\u0027: \u0027socket\u0027}),"},{"line_number":343,"context_line":"            image\u003dobjects.ImageMeta(properties\u003dobjects.ImageMetaProps()))"},{"line_number":344,"context_line":"        request_filter.socket_pci_numa_affinity_trait(self.context, reqspec)"},{"line_number":345,"context_line":"        self.assertIn(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027,"},{"line_number":346,"context_line":"                      reqspec.root_required)"},{"line_number":347,"context_line":"        # Make sure trait is added from image"},{"line_number":348,"context_line":"        reqspec \u003d objects.RequestSpec("}],"source_content_type":"text/x-python","patch_set":12,"id":"8fb1957b_bc84b69c","line":345,"updated":"2021-02-24 10:07:17.000000000","message":"ditto this should be referenced from os-traits","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bbe602020ec2c6998a26661971588d88ceeb8365","unresolved":false,"context_lines":[{"line_number":342,"context_line":"                extra_specs\u003d{\u0027hw:pci_numa_affinity_policy\u0027: \u0027socket\u0027}),"},{"line_number":343,"context_line":"            image\u003dobjects.ImageMeta(properties\u003dobjects.ImageMetaProps()))"},{"line_number":344,"context_line":"        request_filter.socket_pci_numa_affinity_trait(self.context, reqspec)"},{"line_number":345,"context_line":"        self.assertIn(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027,"},{"line_number":346,"context_line":"                      reqspec.root_required)"},{"line_number":347,"context_line":"        # Make sure trait is added from image"},{"line_number":348,"context_line":"        reqspec \u003d objects.RequestSpec("}],"source_content_type":"text/x-python","patch_set":12,"id":"3c6abc9b_4b2ea240","line":345,"in_reply_to":"8fb1957b_bc84b69c","updated":"2021-02-24 10:37:54.000000000","message":"Done","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"47f6fc7771f0b94fbfe38f28412c2a40f2b54909","unresolved":true,"context_lines":[{"line_number":351,"context_line":"                hw_pci_numa_affinity_policy\u003d\u0027socket\u0027)))"},{"line_number":352,"context_line":"        request_filter.socket_pci_numa_affinity_trait(self.context, reqspec)"},{"line_number":353,"context_line":"        self.assertIn(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027,"},{"line_number":354,"context_line":"                      reqspec.root_required)"},{"line_number":355,"context_line":"        # Make sure trait is not added if neithe socket nor image"},{"line_number":356,"context_line":"        reqspec \u003d objects.RequestSpec("},{"line_number":357,"context_line":"            flavor\u003dobjects.Flavor(),"}],"source_content_type":"text/x-python","patch_set":12,"id":"630c9953_a05de3be","line":354,"updated":"2021-02-24 10:37:17.000000000","message":"This is unnecessary. We already have tests that show we properly extract the image metadata property from the image, if specified","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bbe602020ec2c6998a26661971588d88ceeb8365","unresolved":false,"context_lines":[{"line_number":351,"context_line":"                hw_pci_numa_affinity_policy\u003d\u0027socket\u0027)))"},{"line_number":352,"context_line":"        request_filter.socket_pci_numa_affinity_trait(self.context, reqspec)"},{"line_number":353,"context_line":"        self.assertIn(\u0027COMPUTE_SOCKET_PCI_NUMA_AFFINITY\u0027,"},{"line_number":354,"context_line":"                      reqspec.root_required)"},{"line_number":355,"context_line":"        # Make sure trait is not added if neithe socket nor image"},{"line_number":356,"context_line":"        reqspec \u003d objects.RequestSpec("},{"line_number":357,"context_line":"            flavor\u003dobjects.Flavor(),"}],"source_content_type":"text/x-python","patch_set":12,"id":"79a0d9c9_df39b823","line":354,"in_reply_to":"630c9953_a05de3be","updated":"2021-02-24 10:37:54.000000000","message":"Done","commit_id":"30aff4207a61b7d48de2e09139b4fb2550814182"}],"nova/virt/hardware.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3a07e96f886814a02d5d5efa899a7289b08bd32a","unresolved":true,"context_lines":[{"line_number":1216,"context_line":"    return flavor_value, image_value"},{"line_number":1217,"context_line":""},{"line_number":1218,"context_line":""},{"line_number":1219,"context_line":"def get_unique_flavor_image_meta("},{"line_number":1220,"context_line":"    key: str,"},{"line_number":1221,"context_line":"    flavor: \u0027objects.Flavor\u0027,"},{"line_number":1222,"context_line":"    image_meta: \u0027objects.ImageMeta\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"cd7778af_33b4f3a9","line":1219,"updated":"2021-02-19 18:19:05.000000000","message":"You wouldn\u0027t need to make this public if you used the main helper method.\n\nThough \u0027get_pci_numa_policy_constraint\u0027 really should use this under the hood. Someday.","commit_id":"d6c30c958a30806d49988d6cd9b7f66efc284bb1"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b0d28d1e837bbec3097e6048d0882b1d350208ef","unresolved":false,"context_lines":[{"line_number":1216,"context_line":"    return flavor_value, image_value"},{"line_number":1217,"context_line":""},{"line_number":1218,"context_line":""},{"line_number":1219,"context_line":"def get_unique_flavor_image_meta("},{"line_number":1220,"context_line":"    key: str,"},{"line_number":1221,"context_line":"    flavor: \u0027objects.Flavor\u0027,"},{"line_number":1222,"context_line":"    image_meta: \u0027objects.ImageMeta\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3dc40c0c_257507f1","line":1219,"in_reply_to":"cd7778af_33b4f3a9","updated":"2021-02-21 14:12:06.000000000","message":"Done","commit_id":"d6c30c958a30806d49988d6cd9b7f66efc284bb1"}]}
