)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d38a3a2cf9b60b2a193b73deceaac6ef0e1696d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f5e3eb14_46637520","updated":"2026-06-04 18:03:01.000000000","message":"Thanks for the patch. I have a request inline. We also need to update the docs, add a release note and add tests.","commit_id":"533a87cdb0bf0c6c24342e492ae0322837b3c3ee"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"022b90ed18137c5931f68c968259011474c86861","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b2e9f054_8256c147","in_reply_to":"6f100ac7_f63c0878","updated":"2026-06-08 11:11:39.000000000","message":"Done","commit_id":"533a87cdb0bf0c6c24342e492ae0322837b3c3ee"},{"author":{"_account_id":39172,"name":"doh wooju","display_name":"pizzadoughju","email":"dowooju59@gmail.com","username":"pizzadoughju"},"change_message_id":"d08e6a72c2bfaa787aed316fc995377a18b75b21","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6f100ac7_f63c0878","in_reply_to":"f5e3eb14_46637520","updated":"2026-06-08 08:00:49.000000000","message":"All requested items (documentation, release notes, and unit tests) have been added to the latest patchset. Please take a look.","commit_id":"533a87cdb0bf0c6c24342e492ae0322837b3c3ee"}],"openstack/placement/v1/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d38a3a2cf9b60b2a193b73deceaac6ef0e1696d","unresolved":true,"context_lines":[{"line_number":512,"context_line":"            instance."},{"line_number":513,"context_line":"        :returns: A dictionary containing the resource provider usages."},{"line_number":514,"context_line":"        \"\"\""},{"line_number":515,"context_line":"        rp_id \u003d resource.Resource._get_id(resource_provider)"},{"line_number":516,"context_line":"        response \u003d self.get(f\u0027/resource_providers/{rp_id}/usages\u0027)"},{"line_number":517,"context_line":"        return response.json()"},{"line_number":518,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7e503097_6834fe4d","line":515,"updated":"2026-06-04 18:03:01.000000000","message":"Can you implement this as a method on the `ResourceProvider` class and call it from here instead?","commit_id":"533a87cdb0bf0c6c24342e492ae0322837b3c3ee"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"022b90ed18137c5931f68c968259011474c86861","unresolved":false,"context_lines":[{"line_number":512,"context_line":"            instance."},{"line_number":513,"context_line":"        :returns: A dictionary containing the resource provider usages."},{"line_number":514,"context_line":"        \"\"\""},{"line_number":515,"context_line":"        rp_id \u003d resource.Resource._get_id(resource_provider)"},{"line_number":516,"context_line":"        response \u003d self.get(f\u0027/resource_providers/{rp_id}/usages\u0027)"},{"line_number":517,"context_line":"        return response.json()"},{"line_number":518,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baa678fc_ca89fae2","line":515,"in_reply_to":"751218c8_ce2dd4e7","updated":"2026-06-08 11:11:39.000000000","message":"Done","commit_id":"533a87cdb0bf0c6c24342e492ae0322837b3c3ee"},{"author":{"_account_id":39172,"name":"doh wooju","display_name":"pizzadoughju","email":"dowooju59@gmail.com","username":"pizzadoughju"},"change_message_id":"d08e6a72c2bfaa787aed316fc995377a18b75b21","unresolved":true,"context_lines":[{"line_number":512,"context_line":"            instance."},{"line_number":513,"context_line":"        :returns: A dictionary containing the resource provider usages."},{"line_number":514,"context_line":"        \"\"\""},{"line_number":515,"context_line":"        rp_id \u003d resource.Resource._get_id(resource_provider)"},{"line_number":516,"context_line":"        response \u003d self.get(f\u0027/resource_providers/{rp_id}/usages\u0027)"},{"line_number":517,"context_line":"        return response.json()"},{"line_number":518,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"751218c8_ce2dd4e7","line":515,"in_reply_to":"7e503097_6834fe4d","updated":"2026-06-08 08:00:49.000000000","message":"Thanks for the feedback! Implemented the `fetch_usages()` method on the `ResourceProvider` class and updated the proxy to call it.\n\nAdditionally, the method prefix was changed from `get` to `fetch` (`fetch_resource_provider_usages`) to maintain consistency with existing sub-resource patterns (e.g., `fetch_aggregates`). Please review the latest patchset.","commit_id":"533a87cdb0bf0c6c24342e492ae0322837b3c3ee"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f9587caade32624a5d82837587e9ca0ae9b07e4","unresolved":false,"context_lines":[{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Traits \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"    def create_trait(self, name: str) -\u003e _trait.Trait:"},{"line_number":528,"context_line":"        \"\"\"Create a new trait"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        :param name: The name of the new trait"}],"source_content_type":"text/x-python","patch_set":2,"id":"42323a2f_3a89d3ad","line":527,"updated":"2026-06-08 09:38:21.000000000","message":"pep8: error: Call to untyped function \"fetch_usages\" in typed context  [no-untyped-call]","commit_id":"e49b28c1f7f14bd75cc3a36b473f94b10404c309"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f9587caade32624a5d82837587e9ca0ae9b07e4","unresolved":false,"context_lines":[{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Traits \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"    def create_trait(self, name: str) -\u003e _trait.Trait:"},{"line_number":528,"context_line":"        \"\"\"Create a new trait"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        :param name: The name of the new trait"}],"source_content_type":"text/x-python","patch_set":2,"id":"88f4dd7e_229eced6","line":527,"updated":"2026-06-08 09:38:21.000000000","message":"pep8: error: Returning Any from function declared to return \"ResourceProvider\"  [no-any-return]","commit_id":"e49b28c1f7f14bd75cc3a36b473f94b10404c309"}],"openstack/placement/v1/resource_provider.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9f9587caade32624a5d82837587e9ca0ae9b07e4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    #: Resource class usage counts for this resource provider."},{"line_number":67,"context_line":"    usages \u003d resource.Body(\u0027usages\u0027, type\u003ddict)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def fetch_usages(self, session):"},{"line_number":70,"context_line":"        \"\"\"Fetch resource usage counts for the resource provider"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        :param session: The session to use for making this request"}],"source_content_type":"text/x-python","patch_set":2,"id":"21388e8a_05509d85","line":69,"updated":"2026-06-08 09:38:21.000000000","message":"pep8: error: Function is missing a type annotation  [no-untyped-def]","commit_id":"e49b28c1f7f14bd75cc3a36b473f94b10404c309"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"022b90ed18137c5931f68c968259011474c86861","unresolved":true,"context_lines":[{"line_number":66,"context_line":"    #: Resource class usage counts for this resource provider."},{"line_number":67,"context_line":"    usages \u003d resource.Body(\u0027usages\u0027, type\u003ddict)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def fetch_usages(self, session):"},{"line_number":70,"context_line":"        \"\"\"Fetch resource usage counts for the resource provider"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        :param session: The session to use for making this request"}],"source_content_type":"text/x-python","patch_set":2,"id":"be145757_082d2e23","line":69,"in_reply_to":"21388e8a_05509d85","updated":"2026-06-08 11:11:39.000000000","message":"You can do this as:\n\n```suggestion\n    def fetch_usages(self, session: adapter.Adapter) -\u003e Self:\n```","commit_id":"e49b28c1f7f14bd75cc3a36b473f94b10404c309"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"894073aa70f077af839388d5e1a3eae15056b55a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    #: Resource class usage counts for this resource provider."},{"line_number":67,"context_line":"    usages \u003d resource.Body(\u0027usages\u0027, type\u003ddict)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def fetch_usages(self, session):"},{"line_number":70,"context_line":"        \"\"\"Fetch resource usage counts for the resource provider"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        :param session: The session to use for making this request"}],"source_content_type":"text/x-python","patch_set":2,"id":"cf801416_afbaa2f4","line":69,"in_reply_to":"be145757_082d2e23","updated":"2026-06-08 11:13:34.000000000","message":"Done","commit_id":"e49b28c1f7f14bd75cc3a36b473f94b10404c309"},{"author":{"_account_id":39172,"name":"doh wooju","display_name":"pizzadoughju","email":"dowooju59@gmail.com","username":"pizzadoughju"},"change_message_id":"06cc6799584b7ff60c909f735d2a3ed06b65a6fb","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    #: Resource class usage counts for this resource provider."},{"line_number":67,"context_line":"    usages \u003d resource.Body(\u0027usages\u0027, type\u003ddict)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def fetch_usages(self, session):"},{"line_number":70,"context_line":"        \"\"\"Fetch resource usage counts for the resource provider"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        :param session: The session to use for making this request"}],"source_content_type":"text/x-python","patch_set":2,"id":"a346a6ce_647e0cd0","line":69,"in_reply_to":"cf801416_afbaa2f4","updated":"2026-06-09 04:32:22.000000000","message":"Thank you for the correction. I will keep the Python coding style in mind for future patches.","commit_id":"e49b28c1f7f14bd75cc3a36b473f94b10404c309"}],"releasenotes/notes/add-placement-resource-provider-usages-d3f7a1b2e9c84501.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"022b90ed18137c5931f68c968259011474c86861","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for retrieving resource usages via the ``fetch_resource_provider_usages``"},{"line_number":5,"context_line":"    method on the Placement proxy and the ``fetch_usages`` method on the"},{"line_number":6,"context_line":"    ``ResourceProvider`` resource class."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"f9d311ec_ef2bd00c","line":6,"range":{"start_line":3,"start_character":5,"end_line":6,"end_character":40},"updated":"2026-06-08 11:11:39.000000000","message":"Can you wrap at \u003c\u003d 79 characters","commit_id":"e49b28c1f7f14bd75cc3a36b473f94b10404c309"},{"author":{"_account_id":39172,"name":"doh wooju","display_name":"pizzadoughju","email":"dowooju59@gmail.com","username":"pizzadoughju"},"change_message_id":"06cc6799584b7ff60c909f735d2a3ed06b65a6fb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for retrieving resource usages via the ``fetch_resource_provider_usages``"},{"line_number":5,"context_line":"    method on the Placement proxy and the ``fetch_usages`` method on the"},{"line_number":6,"context_line":"    ``ResourceProvider`` resource class."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bc49ef7b_318c3b06","line":6,"range":{"start_line":3,"start_character":5,"end_line":6,"end_character":40},"in_reply_to":"d7badc1b_ea9ae420","updated":"2026-06-09 04:32:22.000000000","message":"I apologize for overlooking the guidelines in `HACKING.rst`. I will ensure all line lengths and formatting strictly adhere to them moving forward. Thank you for the correction!","commit_id":"e49b28c1f7f14bd75cc3a36b473f94b10404c309"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"894073aa70f077af839388d5e1a3eae15056b55a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for retrieving resource usages via the ``fetch_resource_provider_usages``"},{"line_number":5,"context_line":"    method on the Placement proxy and the ``fetch_usages`` method on the"},{"line_number":6,"context_line":"    ``ResourceProvider`` resource class."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"d7badc1b_ea9ae420","line":6,"range":{"start_line":3,"start_character":5,"end_line":6,"end_character":40},"in_reply_to":"f9d311ec_ef2bd00c","updated":"2026-06-08 11:13:34.000000000","message":"Done","commit_id":"e49b28c1f7f14bd75cc3a36b473f94b10404c309"}]}
