)]}'
{"id":"openstack%2Fceilometer~983231","triplet_id":"openstack%2Fceilometer~master~Ibc3a9c2d5d3e55ea54213eddf49436c80e34e141","project":"openstack/ceilometer","branch":"master","topic":"ceilometer_use_openstack_sdk","attention_set":{},"removed_from_attention_set":{"34975":{"account":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"last_update":"2026-05-04 09:24:44.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"}},"9816":{"account":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"last_update":"2026-05-04 10:47:55.000000000","reason":"Change was submitted"},"32968":{"account":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"last_update":"2026-05-04 07:40:14.000000000","reason":"\u003cGERRIT_ACCOUNT_32968\u003e replied on the change","reason_account":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"}},"13177":{"account":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"last_update":"2026-05-04 10:47:55.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ibc3a9c2d5d3e55ea54213eddf49436c80e34e141","subject":"Add Project and Domain classes to keystoneclient abstraction","status":"MERGED","created":"2026-04-02 17:04:02.000000000","updated":"2026-05-04 10:49:02.000000000","submitted":"2026-05-04 10:47:55.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":9,"unresolved_comment_count":2,"has_review_started":true,"submission_id":"983231-ceilometer_use_openstack_sdk","meta_rev_id":"ab480f0cc0278d2fa813d98ca6a8baabd574d3c5","_number":983231,"virtual_id_number":983231,"owner":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-05-04 10:47:54.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},{"value":0,"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":0,"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-05-04 09:24:44.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},{"value":0,"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":2,"date":"2026-04-30 07:46:54.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"}],"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":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-05-04 09:24:44.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},{"value":0,"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":0,"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"}],"REVIEWER":[{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},{"_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"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-02 18:28:15.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-04-14 07:25:33.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-04-16 15:31:51.000000000","updated_by":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"reviewer":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"state":"CC"},{"updated":"2026-04-22 07:49:59.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":"CC"},{"updated":"2026-04-30 07:46:54.000000000","updated_by":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"reviewer":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"state":"REVIEWER"},{"updated":"2026-05-04 09:24:44.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"}],"messages":[{"id":"f18ad955444292b7357f8a2d9815532e2c3b21a3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-04-02 17:04:02.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f1bb24226e4fb3a29e5447d831d744246a1a3819","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-02 18:28:15.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e6da2b510185463a83dfd12bec270d02\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/629e8d6d262346c883228edcafe000f9 : SUCCESS in 5m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7017ee08ee5344e2944e3b82ec5ed34a : SUCCESS in 4m 03s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/3bd50b38e557417ba922fade8162a2d4 : SUCCESS in 4m 21s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/1b7c8e8f4ec64e8a82d6167a9290fe9f : SUCCESS in 4m 20s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ace4e23f7cf64247a21669fd09906b49 : SUCCESS in 7m 09s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6210a156c5c4469484e2a54138f9c694 : SUCCESS in 7m 54s\n- grenade-ceilometer https://zuul.opendev.org/t/openstack/build/5f856990502944d6bfee2604572213e8 : SUCCESS in 52m 28s\n- telemetry-dsvm-integration-centos-9s https://zuul.opendev.org/t/openstack/build/076c8d4bc5bd4976867bca77ece6e768 : SUCCESS in 1h 10m 47s (non-voting)\n- telemetry-dsvm-integration-centos-9s-fips https://zuul.opendev.org/t/openstack/build/1c9174642d514e3b8ef35b907e1d31ec : SUCCESS in 1h 04m 06s (non-voting)\n- telemetry-dsvm-integration https://zuul.opendev.org/t/openstack/build/40e59caa2d3843fd8edcd8782c0a8e63 : SUCCESS in 47m 57s","accounts_in_message":[],"_revision_number":1},{"id":"080ff82e9d5bd5abe0a603ef8b854d2065c068a2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-04-09 22:45:24.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"f3bb94903f1b1cf66e04c0d1624ab90239675ac2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 00:01:02.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d5489b3083f8443f8760673b710b8447\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/dc14a3d589e34a3d9e783f708f6f6354 : SUCCESS in 6m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e55f5e55b6d94860be36d00a04af1421 : SUCCESS in 3m 52s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f87ca14880ca47409e562ac555c80126 : SUCCESS in 4m 40s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a42e776d81ce479e86fcd1dbd68d4862 : SUCCESS in 5m 08s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/5d8200e6738b445992a10f4944b535ac : SUCCESS in 7m 58s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5217ae417624467eaa501629fcd37eeb : SUCCESS in 7m 47s\n- grenade-ceilometer https://zuul.opendev.org/t/openstack/build/6ff4c8ef57dd494da6ac2bb51121adb0 : SUCCESS in 1h 09m 49s\n- telemetry-dsvm-integration-centos-9s https://zuul.opendev.org/t/openstack/build/fb80678f8be74d039d2d77af6a00037c : SUCCESS in 1h 01m 01s (non-voting)\n- telemetry-dsvm-integration-centos-9s-fips https://zuul.opendev.org/t/openstack/build/2e961f4fed5c4fa7a415c893300e949f : SUCCESS in 1h 04m 55s (non-voting)\n- telemetry-dsvm-integration https://zuul.opendev.org/t/openstack/build/6b732796457047bf9c45c29c9349a503 : SUCCESS in 51m 17s","accounts_in_message":[],"_revision_number":2},{"id":"663a3408b9665326d3c9e83dec4703aacefa6cf4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-04-13 18:17:31.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"9e40a4dabfe7bed716dc65c9f7131b2b5900a8a9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 19:45:28.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8f6bf91cc367492e9d1c9a0fca44c4b8\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6ada2463d5a5420ba71c5c32848447d5 : SUCCESS in 7m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/eb71b980d7d44253a8d2b6ae1276ca06 : SUCCESS in 3m 55s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f2691b74423e41f4b404b4f7dcd4f81e : SUCCESS in 4m 48s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6f896f4815d24ae6a4cbedf9bdfa7e05 : SUCCESS in 5m 06s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4c93249ab13f419e9c2fdd6b5692c890 : SUCCESS in 8m 54s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8e9b426c917541e9846e35d90d616a60 : SUCCESS in 9m 34s\n- grenade-ceilometer https://zuul.opendev.org/t/openstack/build/cf460e93fd1149a08742310307cb5b00 : SUCCESS in 1h 07m 37s\n- telemetry-dsvm-integration-centos-9s https://zuul.opendev.org/t/openstack/build/1137b98b1804421eb4c5f43199eab421 : SUCCESS in 37m 26s (non-voting)\n- telemetry-dsvm-integration-centos-9s-fips https://zuul.opendev.org/t/openstack/build/00ab46d01769434fa62f1e7d910e1d7e : SUCCESS in 1h 18m 17s (non-voting)\n- telemetry-dsvm-integration https://zuul.opendev.org/t/openstack/build/016c7a1d66c740a8a2408654776274db : SUCCESS in 1h 00m 00s","accounts_in_message":[],"_revision_number":3},{"id":"57a6b963fb8d51f88d43bd3e7571d5f9d031c7f2","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-04-14 07:25:33.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"d0ed9a918160e40b82e1c1f340a140ee2a72f66a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-04-14 12:13:28.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"037e87e5f45e8d3bb30311d2cf8a6bfb627f86a3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 13:29:57.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/68c0e7a4d8b44f088ac833620b63b323\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/38986a7a3c254219bf0a9dc00f60284a : SUCCESS in 7m 32s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/57ae857ebd354cc281939de5e2b76b51 : SUCCESS in 3m 50s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/d9253449852147e88b396ac2dedef4d1 : SUCCESS in 5m 23s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4ca1b9d318144e6a9fecb95b2f34c4d1 : SUCCESS in 5m 51s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/30d05512007b40da9ebe10e71ad0fd7c : SUCCESS in 8m 27s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8c6fe96b10d84bcdb25b3fd0ceba1083 : SUCCESS in 8m 07s\n- grenade-ceilometer https://zuul.opendev.org/t/openstack/build/601891c4f4f04525ba59c0da4ec336e6 : SUCCESS in 1h 09m 13s\n- telemetry-dsvm-integration-centos-9s https://zuul.opendev.org/t/openstack/build/4395b54c7c12425ab2c004fd7052147a : SUCCESS in 57m 05s (non-voting)\n- telemetry-dsvm-integration-centos-9s-fips https://zuul.opendev.org/t/openstack/build/9083e3c3ecb54cdbac75a26fe17d6ef8 : SUCCESS in 1h 05m 37s (non-voting)\n- telemetry-dsvm-integration https://zuul.opendev.org/t/openstack/build/ea6f900d05534b688b62c3ca0ff307ff : SUCCESS in 52m 55s","accounts_in_message":[],"_revision_number":4},{"id":"a5de990a27366eb38643c15746b3e76be3d8868f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-04-16 11:49:06.000000000","message":"Uploaded patch set 5: Patch Set 4 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"fa7adeb26d2e307167f3bda94ff47c6361f0179c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-16 13:06:32.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5dbe9ddd10fb47e8babe1e600a3761e5\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/fef647b21f6546deb27838a3f23b1af1 : SUCCESS in 7m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2c1d24eb5f4a4118811c2e3c7cea391c : SUCCESS in 3m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7c30f5e4674c4ff8880090bbe1f62838 : SUCCESS in 3m 14s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3a84ec671d164d57ad64badd848c4b3c : SUCCESS in 5m 05s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d936996449ba4dccb4b21dc3b95cac3c : SUCCESS in 5m 17s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1e2d8aeac4544d1b9e8c40cf2419a9b7 : SUCCESS in 9m 13s\n- grenade-ceilometer https://zuul.opendev.org/t/openstack/build/8e46d2209d6146949684bed5891acbe4 : SUCCESS in 52m 02s\n- telemetry-dsvm-integration-centos-9s https://zuul.opendev.org/t/openstack/build/a2b9a4d3c0694462a7fffce24febce4c : SUCCESS in 43m 55s (non-voting)\n- telemetry-dsvm-integration-centos-9s-fips https://zuul.opendev.org/t/openstack/build/145f338aeef54670b98181006a4bee83 : SUCCESS in 1h 09m 50s (non-voting)\n- telemetry-dsvm-integration https://zuul.opendev.org/t/openstack/build/c03d81596a4e4fd9b6cc08576b652f71 : SUCCESS in 40m 47s","accounts_in_message":[],"_revision_number":5},{"id":"f87ea3cb266497d06b40710aecb2ac9a061c468a","author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"date":"2026-04-16 15:31:51.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"d17869842e85980220e951a5d2690885c19d3b0a","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-04-17 15:39:02.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"79e3a6f9a66804ba72e7618513b3217701e00ec8","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-04-17 20:10:56.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"cbaf3d199e9d4970c674d02a989204f3de78fc28","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-04-22 07:49:59.000000000","message":"Patch Set 5:\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"8c0711cb69d138ab90d80222715213c74ae65e11","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-04-24 18:34:50.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"037cdf640fb5c92393ba0bc4d44fba321710360a","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-04-27 11:18:40.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"1ac47387bfa6180b3c52e3de588984275b3c050b","author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"date":"2026-04-30 07:46:54.000000000","message":"Patch Set 5: Code-Review+2","accounts_in_message":[],"_revision_number":5},{"id":"552fc1109e5861a048617be1d9a3305b470d4f07","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-05-04 07:40:14.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"af195f261b6c168f662810532e60629a3f067183","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-05-04 09:24:44.000000000","message":"Patch Set 5: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"714a2d3f11879a8fd04de1b49e5a58ecb85be409","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 09:25:20.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"e4fc0f2389ba396411831125788f704f1f00da37","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 10:47:54.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/31c3cc07874d449fb7964a3c9091c457\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/02a736907a184c4c9faa834e392f0ac9 : SUCCESS in 3m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/fa2c44eeb6e94f55ab90943e4a0f62a2 : SUCCESS in 4m 46s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4f11d490704c463ba9f4fc0d06fba518 : SUCCESS in 5m 00s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/be7cc57e40db40a69517d017b83c66f3 : SUCCESS in 7m 35s\n- grenade-ceilometer https://zuul.opendev.org/t/openstack/build/99e151e97bcf4c4faab624c312e30ea8 : SUCCESS in 1h 13m 50s\n- telemetry-dsvm-integration-centos-9s https://zuul.opendev.org/t/openstack/build/8fd8b3c8ef654d4ba8e052bcbeffef75 : SUCCESS in 1h 01m 45s (non-voting)\n- telemetry-dsvm-integration-centos-9s-fips https://zuul.opendev.org/t/openstack/build/d066f37145174806b9800d0345b66191 : SUCCESS in 1h 09m 17s (non-voting)\n- telemetry-dsvm-integration https://zuul.opendev.org/t/openstack/build/dae4983906b7461786a2018bd92ad6d8 : SUCCESS in 51m 01s","accounts_in_message":[],"_revision_number":5},{"id":"f8e5ae2faa2fdd1d9717e798bfc835235ee94e42","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 10:47:55.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":5},{"id":"ab480f0cc0278d2fa813d98ca6a8baabd574d3c5","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 10:49:02.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b8c749b9d18c458bb5a14d438993c5a9\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d1832a9a18e1490d9252a9587c72848b : SUCCESS in 47s","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"d1abb065b35f274765faf6516d08151eb870dcbf","revisions":{"9a01e2fd79f05d3a099ba84fd157f0bc17dd5ba4":{"kind":"REWORK","_number":1,"created":"2026-04-02 17:04:02.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/31/983231/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/31/983231/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/1"}}},"commit":{"parents":[{"commit":"8403fe21cb666d22298de12ccb7fdcc63ee9016d","subject":"[WIP] Use keystone client convenience functions in gnocchi and discovery","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/8403fe21cb666d22298de12ccb7fdcc63ee9016d"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-03-20 22:02:54.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-04-02 17:03:21.000000000","tz":-240},"subject":"[WIP] Add Project and Domain classes to keystoneclient abstraction","message":"[WIP] Add Project and Domain classes to keystoneclient abstraction\n\nIntroduce frozen dataclasses Project and Domain in keystone_client.py\nto wrap the raw keystoneclient resource objects returned by find_project,\nlist_projects, find_domain, and list_domains. Each class exposes a\nfrom_ksclient() factory that maps the keystoneclient resource attributes\nto the Ceilometer-owned type.\n\nThis completes the abstraction boundary for the keystone client: callers\nno longer depend on keystoneclient resource types and their\nidentity-based equality semantics. The frozen dataclasses compare by\nvalue, making tests simpler and more explicit.\n\nTest fixtures in fakes.py are extended with _ceilo variants that\nconstruct the new value objects directly, and test assertions are updated\nto compare against these fixtures rather than raw keystoneclient objects.\ntest_discovery.py is updated to reflect that projects.list() is now\ncalled with Domain value objects instead of raw keystoneclient domains.\n\nAssisted-By: Claude Sonnet-4.6\nChange-Id: Ibc3a9c2d5d3e55ea54213eddf49436c80e34e141\nSigned-off-by: Emma Foley \u003cefoley@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/9a01e2fd79f05d3a099ba84fd157f0bc17dd5ba4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/9a01e2fd79f05d3a099ba84fd157f0bc17dd5ba4"}]},"branch":"refs/heads/master"},"0ac3bfaa337de2282318224607afc3ad5555eb2d":{"kind":"REWORK","_number":2,"created":"2026-04-09 22:45:24.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/31/983231/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/31/983231/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/2"}}},"commit":{"parents":[{"commit":"e85bd406651c0dba35008c01527639227ccd73ca","subject":"[WIP] Use keystone client convenience functions in gnocchi and discovery","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/e85bd406651c0dba35008c01527639227ccd73ca"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-03-20 22:02:54.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-04-09 22:29:34.000000000","tz":-240},"subject":"[WIP] Add Project and Domain classes to keystoneclient abstraction","message":"[WIP] Add Project and Domain classes to keystoneclient abstraction\n\nIntroduce frozen dataclasses Project and Domain in keystone_client.py\nto wrap the raw keystoneclient resource objects returned by find_project,\nlist_projects, find_domain, and list_domains. Each class exposes a\nfrom_ksclient() factory that maps the keystoneclient resource attributes\nto the Ceilometer-owned type.\n\nThis completes the abstraction boundary for the keystone client: callers\nno longer depend on keystoneclient resource types and their\nidentity-based equality semantics. The frozen dataclasses compare by\nvalue, making tests simpler and more explicit.\n\nAssisted-By: Claude Sonnet-4.6\nChange-Id: Ibc3a9c2d5d3e55ea54213eddf49436c80e34e141\nSigned-off-by: Emma Foley \u003cefoley@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/0ac3bfaa337de2282318224607afc3ad5555eb2d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/0ac3bfaa337de2282318224607afc3ad5555eb2d"}]},"branch":"refs/heads/master"},"901a68568e1b88cf7cdbd8324b5aebb381435887":{"kind":"REWORK","_number":3,"created":"2026-04-13 18:17:31.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/31/983231/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/31/983231/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/3"}}},"commit":{"parents":[{"commit":"e2783e17542835b8c058de2ff53fca7ce2528ffe","subject":"Use keystone client convenience functions in gnocchi and discovery","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/e2783e17542835b8c058de2ff53fca7ce2528ffe"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-03-20 22:02:54.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-04-13 18:17:06.000000000","tz":-240},"subject":"Add Project and Domain classes to keystoneclient abstraction","message":"Add Project and Domain classes to keystoneclient abstraction\n\nIntroduce frozen dataclasses Project and Domain in keystone_client.py\nto wrap the raw keystoneclient resource objects returned by find_project,\nlist_projects, find_domain, and list_domains. Each class exposes a\nfrom_ksclient() factory that maps the keystoneclient resource attributes\nto the Ceilometer-owned type.\n\nThis completes the abstraction boundary for the keystone client: callers\nno longer depend on keystoneclient resource types and their\nidentity-based equality semantics. The frozen dataclasses compare by\nvalue, making tests simpler and more explicit.\n\nAssisted-By: Claude Sonnet-4.6\nChange-Id: Ibc3a9c2d5d3e55ea54213eddf49436c80e34e141\nSigned-off-by: Emma Foley \u003cefoley@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/901a68568e1b88cf7cdbd8324b5aebb381435887"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/901a68568e1b88cf7cdbd8324b5aebb381435887"}]},"branch":"refs/heads/master"},"762b9e4b282ba6b7bd7ce23ed9adf9d84b9c6685":{"kind":"REWORK","_number":4,"created":"2026-04-14 12:13:28.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/31/983231/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/31/983231/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/4"}}},"commit":{"parents":[{"commit":"8b789ad0e880f222333034466d6b99d9416bc813","subject":"Use keystone client convenience functions in gnocchi and discovery","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/8b789ad0e880f222333034466d6b99d9416bc813"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-03-20 22:02:54.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-04-14 12:13:07.000000000","tz":-240},"subject":"Add Project and Domain classes to keystoneclient abstraction","message":"Add Project and Domain classes to keystoneclient abstraction\n\nIntroduce frozen dataclasses Project and Domain in keystone_client.py\nto wrap the raw keystoneclient resource objects returned by find_project,\nlist_projects, find_domain, and list_domains. Each class exposes a\nfrom_ksclient() factory that maps the keystoneclient resource attributes\nto the Ceilometer-owned type.\n\nThis completes the abstraction boundary for the keystone client: callers\nno longer depend on keystoneclient resource types and their\nidentity-based equality semantics. The frozen dataclasses compare by\nvalue, making tests simpler and more explicit.\n\nAssisted-By: Claude Sonnet-4.6\nChange-Id: Ibc3a9c2d5d3e55ea54213eddf49436c80e34e141\nSigned-off-by: Emma Foley \u003cefoley@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/762b9e4b282ba6b7bd7ce23ed9adf9d84b9c6685"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/762b9e4b282ba6b7bd7ce23ed9adf9d84b9c6685"}]},"branch":"refs/heads/master"},"d1abb065b35f274765faf6516d08151eb870dcbf":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2026-04-16 11:49:06.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/31/983231/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/31/983231/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/31/983231/5"}}},"commit":{"parents":[{"commit":"104de51d0e2285470a6995ab9ecaa2a104751bba","subject":"Use keystone client convenience functions in gnocchi and discovery","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/104de51d0e2285470a6995ab9ecaa2a104751bba"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-03-20 22:02:54.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-04-16 11:48:53.000000000","tz":-240},"subject":"Add Project and Domain classes to keystoneclient abstraction","message":"Add Project and Domain classes to keystoneclient abstraction\n\nIntroduce frozen dataclasses Project and Domain in keystone_client.py\nto wrap the raw keystoneclient resource objects returned by find_project,\nlist_projects, find_domain, and list_domains. Each class exposes a\nfrom_ksclient() factory that maps the keystoneclient resource attributes\nto the Ceilometer-owned type.\n\nThis completes the abstraction boundary for the keystone client: callers\nno longer depend on keystoneclient resource types and their\nidentity-based equality semantics. The frozen dataclasses compare by\nvalue, making tests simpler and more explicit.\n\nAssisted-By: Claude Sonnet-4.6\nChange-Id: Ibc3a9c2d5d3e55ea54213eddf49436c80e34e141\nSigned-off-by: Emma Foley \u003cefoley@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/d1abb065b35f274765faf6516d08151eb870dcbf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/d1abb065b35f274765faf6516d08151eb870dcbf"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","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":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["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":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
