)]}'
{"id":"openstack%2Fceilometermiddleware~997612","triplet_id":"openstack%2Fceilometermiddleware~master~I6cf25b09060fdc7e1f80247531c2fa58e79b4fc6","project":"openstack/ceilometermiddleware","branch":"master","topic":"add-policy-idx","attention_set":{"9816":{"account":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"last_update":"2026-07-27 09:18:17.000000000","reason":"\u003cGERRIT_ACCOUNT_34975\u003e replied on the change","reason_account":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"}},"37738":{"account":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"last_update":"2026-07-21 20:45:43.000000000","reason":"\u003cGERRIT_ACCOUNT_36393\u003e replied on the change","reason_account":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"}}},"removed_from_attention_set":{"32968":{"account":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"last_update":"2026-07-22 07:32:16.000000000","reason":"\u003cGERRIT_ACCOUNT_32968\u003e replied on the change","reason_account":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"}},"36393":{"account":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"last_update":"2026-07-21 20:45:43.000000000","reason":"\u003cGERRIT_ACCOUNT_36393\u003e replied on the change","reason_account":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"}}},"hashtags":[],"change_id":"I6cf25b09060fdc7e1f80247531c2fa58e79b4fc6","subject":"Emit swift storage policy in notifications","status":"NEW","created":"2026-07-16 15:42:04.000000000","updated":"2026-07-27 09:18:17.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":8,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"ba12a2b62bdddfb1e8645a933c18affc29de0ed3","_number":997612,"virtual_id_number":997612,"owner":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-21 16:24:58.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"recommended":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},{"value":2,"date":"2026-07-22 07:32:16.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":1,"date":"2026-07-21 20:45:43.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-07-27 09:18:17.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":1,"default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-16 16:43:19.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-07-16 22:53:45.000000000","updated_by":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"reviewer":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"state":"CC"},{"updated":"2026-07-21 08:25:12.000000000","updated_by":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"reviewer":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"state":"CC"},{"updated":"2026-07-21 20:45:43.000000000","updated_by":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"reviewer":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"state":"REVIEWER"},{"updated":"2026-07-22 07:32:16.000000000","updated_by":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"reviewer":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"state":"REVIEWER"},{"updated":"2026-07-27 09:18:17.000000000","updated_by":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"reviewer":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"state":"REVIEWER"},{"updated":"2026-07-27 09:18:17.000000000","updated_by":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"reviewer":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"state":"REVIEWER"}],"messages":[{"id":"b2b232434517fcc4eb1bff0aa3e0002c754db168","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"date":"2026-07-16 15:42:04.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ce11fd585d80fa2730f56fa972251cbd25590420","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 16:43:19.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4232483942854281aebf7ed575f22cd5\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/047732b6f29a49e2b87a5c19ea7e16a7 : SUCCESS in 2m 48s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/737144d2076a469bb4d60d68943a3f9d : SUCCESS in 3m 01s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4aa64bc84d004b43a766983e8674b53f : SUCCESS in 6m 48s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/746ee81c48dd4edca39019b34c157e20 : SUCCESS in 5m 16s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/47c05e234cef4d97b7cf92d8a2056f08 : SUCCESS in 2m 59s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/dc50d1e1b36348c69ce43df0cd5db68f : SUCCESS in 3m 59s\n- ceilometermiddleware-integration https://zuul.opendev.org/t/openstack/build/328fc4b9f20644e59783cb73f71221bd : SUCCESS in 52m 37s","accounts_in_message":[],"_revision_number":1},{"id":"5d1f51c12ff2b5c58e061b4bb2ce1b648c757ac6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"date":"2026-07-16 18:10:27.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"2d1d6d3b02fd23723543cce989bddf01d8450eb1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 19:08:53.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3e2bac6d501e4f409f041b818ecb71ba\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7d3236f053d5454c91e017a1bd697650 : SUCCESS in 3m 02s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1fe78a18d3374acea25146acf6d64557 : SUCCESS in 4m 32s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6d215dee1eba46b68b5b1dfa54a554c9 : SUCCESS in 3m 33s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/915bdef22397404c99c21de392f72d18 : SUCCESS in 5m 30s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/372c008e3a8f4cbfaf1ecc927040554a : SUCCESS in 3m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/20596ac33aec441b9456a360f8b7eb4a : SUCCESS in 5m 16s\n- ceilometermiddleware-integration https://zuul.opendev.org/t/openstack/build/2ff2280c184242f194cef42f63149247 : SUCCESS in 51m 46s","accounts_in_message":[],"_revision_number":2},{"id":"b94ff52cae1f68fbee92bef098ec85e7c5f4bb65","author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"date":"2026-07-16 22:53:45.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"ee4c7f0ec07fe0ff9ac1a337a58fdd0a743413e6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"date":"2026-07-17 18:07:22.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"ac2abd7a9d804c1bfc932675257a9e487c2a5e34","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-17 19:03:44.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/904630b045e444d1bbb50db12cf7ef24\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3c62487cc9cb408bb218feca2dc1433c : SUCCESS in 2m 16s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/bebb341378f74ee4bd3a5142b0c9ffe9 : SUCCESS in 3m 08s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/52f1caa013e84acf99a5dc60631c8860 : SUCCESS in 2m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ecfa625df1d74f39b1960ec09bbc51fa : SUCCESS in 5m 28s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ff1d9d0ad9ac4084b39179f2b1e8b139 : SUCCESS in 2m 57s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f5aeaadb0abe4391acdab8bcb98c0456 : SUCCESS in 3m 09s\n- ceilometermiddleware-integration https://zuul.opendev.org/t/openstack/build/6900b9ff801046c39ef9f3fd56c7c93c : SUCCESS in 52m 38s","accounts_in_message":[],"_revision_number":3},{"id":"82788dffc66ae8475bce2bc73af561981e496e18","author":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"date":"2026-07-20 14:24:49.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"75835817a9937000c7bf621d6f59bac6eaeaddd4","author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"date":"2026-07-20 20:50:19.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"d3ceff7123d1a7a03acef850e016dc1f9305d718","author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"date":"2026-07-20 20:50:31.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"ce486c3028c48711f6b8d39635dadc13b2a9be29","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-07-21 08:25:12.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"8a39a52806c9efb880e94541641aa3822ccaaf33","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"date":"2026-07-21 15:23:45.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"04d6593b1f544a7cff0b0ea59b796c824ce22c1d","author":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"date":"2026-07-21 15:30:19.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"f384c1bf152a3713650951e64c0ccb7400326565","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-21 16:24:58.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/09a389d9b60a4b4d8a46c2726e5b89a7\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f2b47943b0804eef92388f71d9f79b58 : SUCCESS in 2m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/c5daaaafba79458e991760080eecd92c : SUCCESS in 3m 00s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/88487cae8cb4444bae1043abb183e065 : SUCCESS in 3m 37s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a74d32315dfb436d9bf830bc1df024d2 : SUCCESS in 6m 30s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/159ee565538b4faa9ab03f56343d88e9 : SUCCESS in 3m 42s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0727b992b4c14722b025195fb1930039 : SUCCESS in 3m 30s\n- ceilometermiddleware-integration https://zuul.opendev.org/t/openstack/build/8aa75b2b443249998cfcdc36dc38cb4b : SUCCESS in 54m 02s","accounts_in_message":[],"_revision_number":4},{"id":"b76a3ebab635d126c477beafb117b37663f1d778","author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"date":"2026-07-21 20:45:43.000000000","message":"Patch Set 4: Code-Review+1","accounts_in_message":[],"_revision_number":4},{"id":"e46b890dd57e72f7709746ccb78fa39ae190f30c","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-07-22 07:32:16.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4},{"id":"ba12a2b62bdddfb1e8645a933c18affc29de0ed3","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-07-27 09:18:17.000000000","message":"Patch Set 4: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"1c118dca34532a2dc5e7bcbdccab190c1cfe7f4b","revisions":{"4aa03b4881055fefc01104cdee41777156345340":{"kind":"REWORK","_number":1,"created":"2026-07-16 15:42:04.000000000","uploader":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"ref":"refs/changes/12/997612/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometermiddleware","ref":"refs/changes/12/997612/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/1"}}},"commit":{"parents":[{"commit":"a7c03317da755265befae60f41a407200e1f9f24","subject":"Do not install code to build release notes","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/a7c03317da755265befae60f41a407200e1f9f24"}]}],"author":{"name":"Luke Repko","email":"luke.repko@rackspace.com","date":"2026-07-14 22:33:10.000000000","tz":-300},"committer":{"name":"Luke Repko","email":"luke.repko@rackspace.com","date":"2026-07-16 15:02:26.000000000","tz":-300},"subject":"Emit swift storage policy index in notifications","message":"Emit swift storage policy index in notifications\n\nAdd ``target.metadata.policy_idx`` to emitted events, carrying the\nSwift storage policy index of the request\u0027s container. This lets\ndownstream consumers distinguish traffic by policy (for example\nreplication versus erasure coding) for usage metering and\nper-policy request-count billing.\n\nThe value is read from ``X-Backend-Storage-Policy-Index`` on the\nrequest environ for object requests (the proxy\u0027s object controller\nstamps it before backend dispatch) and from the same header on the\nresponse for container requests where the container server includes\nit (GET, HEAD, PUT). The field is omitted for account-level\nrequests, container POST and DELETE (no policy header on the\nresponse), pre-controller failures such as invalid-token 401s, and\nunparseable values.\n\nChange-Id: I6cf25b09060fdc7e1f80247531c2fa58e79b4fc6\nSigned-off-by: Luke Repko \u003cluke.repko@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/4aa03b4881055fefc01104cdee41777156345340"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/4aa03b4881055fefc01104cdee41777156345340"}]},"branch":"refs/heads/master"},"c665b2f13f1e215978dd9dbb873d36c33231cc13":{"kind":"REWORK","_number":2,"created":"2026-07-16 18:10:27.000000000","uploader":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"ref":"refs/changes/12/997612/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometermiddleware","ref":"refs/changes/12/997612/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/2"}}},"commit":{"parents":[{"commit":"a7c03317da755265befae60f41a407200e1f9f24","subject":"Do not install code to build release notes","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/a7c03317da755265befae60f41a407200e1f9f24"}]}],"author":{"name":"Luke Repko","email":"luke.repko@rackspace.com","date":"2026-07-14 22:33:10.000000000","tz":-300},"committer":{"name":"Luke Repko","email":"luke.repko@rackspace.com","date":"2026-07-16 18:09:53.000000000","tz":-300},"subject":"Emit swift storage policy index in notifications","message":"Emit swift storage policy index in notifications\n\nAdd ``target.metadata.policy_idx`` to emitted events, carrying the\nSwift storage policy index of the request\u0027s container as a canonical\ndecimal string (for example ``\"0\"``, ``\"2\"``) so downstream consumers\nsuch as ceilometer parse a consistent type. This lets billing\npipelines distinguish traffic by policy (for example replication\nversus erasure coding) for usage metering and per-policy\nrequest-count reporting.\n\nThe value is read from ``X-Backend-Storage-Policy-Index`` on the\nrequest environ for object requests (the proxy\u0027s object controller\nstamps it before backend dispatch) and from the same header on the\nresponse for container requests where the container server includes\nit (GET, HEAD, PUT). The field is omitted for account-level\nrequests, container POST and DELETE (no policy header on the\nresponse), pre-controller failures such as invalid-token 401s, and\nunparseable values.\n\nChange-Id: I6cf25b09060fdc7e1f80247531c2fa58e79b4fc6\nSigned-off-by: Luke Repko \u003cluke.repko@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/c665b2f13f1e215978dd9dbb873d36c33231cc13"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/c665b2f13f1e215978dd9dbb873d36c33231cc13"}]},"branch":"refs/heads/master"},"b4aeecd5c79ae80d27b26f18e4fbda75921e933e":{"kind":"REWORK","_number":3,"created":"2026-07-17 18:07:22.000000000","uploader":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"ref":"refs/changes/12/997612/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometermiddleware","ref":"refs/changes/12/997612/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/3"}}},"commit":{"parents":[{"commit":"a7c03317da755265befae60f41a407200e1f9f24","subject":"Do not install code to build release notes","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/a7c03317da755265befae60f41a407200e1f9f24"}]}],"author":{"name":"Luke Repko","email":"luke.repko@rackspace.com","date":"2026-07-14 22:33:10.000000000","tz":-300},"committer":{"name":"Luke Repko","email":"luke.repko@rackspace.com","date":"2026-07-17 18:00:22.000000000","tz":-300},"subject":"Emit swift storage policy in notifications","message":"Emit swift storage policy in notifications\n\nAdd ``target.metadata.policy_idx``, ``target.metadata.policy_name``,\nand ``target.metadata.policy_type`` to emitted events, carrying the\nSwift storage policy of the request\u0027s container. The index is\nemitted as a canonical decimal string (for example ``\"0\"``, ``\"2\"``)\nso downstream consumers such as ceilometer parse a consistent type.\nThis lets billing pipelines distinguish traffic by policy (for\nexample replication versus erasure coding) for usage metering and\nper-policy request-count reporting.\n\nThe index is read from ``X-Backend-Storage-Policy-Index`` on the\nrequest environ for object requests (the proxy\u0027s object controller\nstamps it before backend dispatch) and from the same header on the\nresponse for container GET, HEAD, and PUT requests where the\ncontainer server includes it. Name and type are read once at init\nfrom ``[storage-policy:N]`` sections in ``\u003cswift_dir\u003e/swift.conf``,\nwhere ``swift_dir`` is a new middleware option (default\n``/etc/swift``) that mirrors swift\u0027s own convention. When swift.conf\nis readable but declares no policies, the middleware synthesizes the\nimplicit ``Policy-0`` replication default that swift itself uses in\nthat case.\n\nAll three fields are omitted for account-level requests, container\nPOST and DELETE (which carry no policy header on the response),\npre-controller failures such as invalid-token 401s, and unparseable\nvalues. ``policy_name`` and ``policy_type`` are additionally\nwithheld when swift.conf is missing or does not declare a policy\nfor the emitted index.\n\nChange-Id: I6cf25b09060fdc7e1f80247531c2fa58e79b4fc6\nSigned-off-by: Luke Repko \u003cluke.repko@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/b4aeecd5c79ae80d27b26f18e4fbda75921e933e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/b4aeecd5c79ae80d27b26f18e4fbda75921e933e"}]},"branch":"refs/heads/master"},"1c118dca34532a2dc5e7bcbdccab190c1cfe7f4b":{"kind":"REWORK","_number":4,"created":"2026-07-21 15:23:45.000000000","uploader":{"_account_id":37738,"name":"Luke Repko","display_name":"Luke Repko","email":"luke.repko@rackspace.com","username":"lukerepko","status":"Rackspace Technology"},"ref":"refs/changes/12/997612/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometermiddleware","ref":"refs/changes/12/997612/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometermiddleware refs/changes/12/997612/4"}}},"commit":{"parents":[{"commit":"a7c03317da755265befae60f41a407200e1f9f24","subject":"Do not install code to build release notes","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/a7c03317da755265befae60f41a407200e1f9f24"}]}],"author":{"name":"Luke Repko","email":"luke.repko@rackspace.com","date":"2026-07-14 22:33:10.000000000","tz":-300},"committer":{"name":"Luke Repko","email":"luke.repko@rackspace.com","date":"2026-07-21 15:22:38.000000000","tz":-300},"subject":"Emit swift storage policy in notifications","message":"Emit swift storage policy in notifications\n\nAdd ``target.metadata.policy_idx``, ``target.metadata.policy_name``,\nand ``target.metadata.policy_type`` to emitted events, carrying the\nSwift storage policy of the request\u0027s container. The index is\nemitted as a canonical decimal string (for example ``\"0\"``, ``\"2\"``)\nso downstream consumers such as ceilometer parse a consistent type.\nThis lets billing pipelines distinguish traffic by policy (for\nexample replication versus erasure coding) for usage metering and\nper-policy request-count reporting.\n\nThe index is read from ``X-Backend-Storage-Policy-Index`` on the\nrequest environ for object requests (the proxy\u0027s object controller\nstamps it before backend dispatch) and from the same header on the\nresponse for container GET, HEAD, and PUT requests where the\ncontainer server includes it. Name and type are read once at init\nfrom ``[storage-policy:N]`` sections in a swift configuration file\npointed at by a new ``swift_conf_file`` middleware option (default\n``/etc/swift/swift.conf``). The option accepts any path or filename,\naccommodating deployments that do not use the conventional location.\nWhen the file is readable but declares no policies, the middleware\nsynthesizes the implicit ``Policy-0`` replication default that swift\nitself uses in that case.\n\nAll three fields are omitted for account-level requests, container\nPOST and DELETE (which carry no policy header on the response),\npre-controller failures such as invalid-token 401s, and unparseable\nvalues. ``policy_name`` and ``policy_type`` are additionally\nwithheld when the configuration file is missing or does not declare\na policy for the emitted index.\n\nChange-Id: I6cf25b09060fdc7e1f80247531c2fa58e79b4fc6\nSigned-off-by: Luke Repko \u003cluke.repko@rackspace.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/1c118dca34532a2dc5e7bcbdccab190c1cfe7f4b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometermiddleware/commit/1c118dca34532a2dc5e7bcbdccab190c1cfe7f4b"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"}},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
