)]}'
{"id":"openstack%2Fcloudkitty~978198","triplet_id":"openstack%2Fcloudkitty~master~Ic701146ef818b7318fceacaf3dfd7f1cf035abb5","project":"openstack/cloudkitty","branch":"master","attention_set":{},"removed_from_attention_set":{"32968":{"account":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"last_update":"2026-04-07 10:17:56.000000000","reason":"\u003cGERRIT_ACCOUNT_32968\u003e replied on the change","reason_account":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"}},"34975":{"account":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"last_update":"2026-04-13 15:07:43.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ic701146ef818b7318fceacaf3dfd7f1cf035abb5","subject":"Add Aetos collector with Keystone authentication","status":"MERGED","created":"2026-02-27 13:48:01.000000000","updated":"2026-04-13 15:10:45.000000000","submitted":"2026-04-13 15:07:43.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":8,"unresolved_comment_count":2,"has_review_started":true,"submission_id":"978198","meta_rev_id":"b14e575ac87471ddc9f86bb08bddd78d7613b431","_number":978198,"virtual_id_number":978198,"owner":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},{"value":0,"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-04-13 15:07:43.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"all":[{"value":2,"date":"2026-04-13 14:13:18.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},{"value":2,"date":"2026-04-07 10:17:56.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"all":[{"value":1,"date":"2026-04-13 14:13:18.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},{"value":0,"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},{"value":0,"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-02-27 14:51:36.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-03-12 07:17:30.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-03-12 07:30:31.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-13 14:13:18.000000000","updated_by":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"reviewer":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"state":"REVIEWER"}],"messages":[{"id":"7107875c15bb107eefe5c3bb0e9eaacd27ab66a3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-02-27 13:48:01.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"9283614518167986ad80ac572fff9d50042a0eb7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 14:51:36.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e6a4aee54496490bbbcb54e873407fef\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/e116eeb477a3490f8f3a72603bf730b6 : SUCCESS in 3m 07s\n- requirements-check https://zuul.opendev.org/t/openstack/build/257149c7090d484fbd3e98783c25c98d : SUCCESS in 2m 18s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/c78fe055c51442e6b27da50eaa5da3b2 : SUCCESS in 3m 55s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8b2428d27e364757919ed6bcf609211a : SUCCESS in 4m 05s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/316bb0214283400d916a82eaf730c3c5 : SUCCESS in 3m 50s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b8dfffea56b248e8a2fc50df7c9ffd40 : SUCCESS in 4m 16s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/05f3545b0a584589813f2f7bff33b7cd : SUCCESS in 6m 46s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9ae4af32d06a4921808c35ad55e5dc51 : SUCCESS in 3m 38s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/fbd3e6c1ca6e48f89c8432e78212b9bb : SUCCESS in 2m 42s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/a594a46e06f34ae487f6181fa53fb981 : SUCCESS in 35m 21s\n- cloudkitty-tempest-full-v2-storage-influxdb-v2 https://zuul.opendev.org/t/openstack/build/be4e82e08400489b8dbf683033963c87 : SUCCESS in 38m 40s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/0b2dcecc3dee4679a42a234d573ee1f4 : SUCCESS in 22m 57s\n- cloudkitty-tempest-full-v2-storage-opensearch https://zuul.opendev.org/t/openstack/build/e266ab67e36c40e2ae4601cf2406e48d : SUCCESS in 42m 32s\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/dc508e362bb54b26ab051a1f90e356dd : SUCCESS in 36m 39s\n- cloudkitty-tempest-full-v2-storage-loki https://zuul.opendev.org/t/openstack/build/1b2023593d0943578e6921193a3fbb7d : SUCCESS in 16m 08s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/4427ea53dc9541d8802ece192193b656 : SUCCESS in 30m 28s\n- cloudkitty-tempest-full-v2-fetcher-collector-prometheus https://zuul.opendev.org/t/openstack/build/d2fb7ba21d4042fd87ff72fbef159df5 : SUCCESS in 35m 51s\n- cloudkitty-tox-bandit https://zuul.opendev.org/t/openstack/build/8e05eb245ec04700bb5959b2b53e4054 : FAILURE in 3m 47s (non-voting)\n- cloudkitty-grenade-job https://zuul.opendev.org/t/openstack/build/fbd9610ba0d24b50925f095ee16b8bf5 : SUCCESS in 57m 16s","accounts_in_message":[],"_revision_number":1},{"id":"85c0799b510307bd7030d619b70fbded96208817","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-02-27 15:25:37.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"11371fc10d5bb1fd9efe0eb8443b5c8f7f0bee66","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 17:02:47.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/354eb3ce1205465f8588edcadca3bf75\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/a360fc017c56453c8eb1ca60861ff222 : SUCCESS in 2m 17s\n- requirements-check https://zuul.opendev.org/t/openstack/build/ffdbc4983a8740048106fd5fbe895cdd : SUCCESS in 2m 11s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8cd4ead1874f4680896e387a865344ee : FAILURE in 3m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/69de1bbc9b214f87833a69ec0b888aeb : SUCCESS in 4m 26s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/56ee61be781e4574843a0ce20a87e075 : FAILURE in 3m 46s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/86dc396ab1fa4f90b4bad3e35ea70c96 : FAILURE in 3m 45s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/04f3393f42e248faa9b24c2a2240c680 : FAILURE in 6m 45s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/075dbd5c2e7f4072ad6f5e1f80f99f0a : FAILURE in 5m 09s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/48e10c702db946b48e06a58706b10b36 : SUCCESS in 2m 40s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/5a4170076c6b4c82b7f9a9b75ceb3123 : SUCCESS in 34m 48s\n- cloudkitty-tempest-full-v2-storage-influxdb-v2 https://zuul.opendev.org/t/openstack/build/60cabf98f3da4ebb996be23af0e14dcb : SUCCESS in 33m 25s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/c5d3ddfdf88346649645d42dc5eb164e : SUCCESS in 35m 31s\n- cloudkitty-tempest-full-v2-storage-opensearch https://zuul.opendev.org/t/openstack/build/ee031ca76ecc403792f494af2c06c1f9 : SUCCESS in 29m 40s\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/a074a9f77c8f48339de180395bc60aea : SUCCESS in 24m 25s\n- cloudkitty-tempest-full-v2-storage-loki https://zuul.opendev.org/t/openstack/build/225bea2089c2469395dd7ab357877f91 : SUCCESS in 15m 43s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/ea319a9dabe643e89ab7888231ea7d34 : SUCCESS in 32m 38s\n- cloudkitty-tempest-full-v2-fetcher-collector-prometheus https://zuul.opendev.org/t/openstack/build/7bb0aac3aad4481f86c9629571d7b754 : SUCCESS in 39m 03s\n- cloudkitty-tempest-full-v2-collector-aetos https://zuul.opendev.org/t/openstack/build/c181a3f8dd184f3caa216ce5f7b5a3d3 : SUCCESS in 43m 44s\n- cloudkitty-tox-bandit https://zuul.opendev.org/t/openstack/build/0b62cc5dc46549b49f95518f0e6e1ee8 : FAILURE in 5m 20s (non-voting)\n- cloudkitty-grenade-job https://zuul.opendev.org/t/openstack/build/641b12b8a73a48f190738a7274ee1281 : SUCCESS in 1h 07m 36s","accounts_in_message":[],"_revision_number":2},{"id":"d3ba4c3585b323e83c8ba97c6e632fda0df2c02a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-03-02 07:57:34.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"d300fc0297c1a0ec6213552b6efaa0c012dcf313","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-02 09:00:58.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/15c00566cf974211829e157ce32c45c2\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/d98fa54a42a84d6da7413880996e557a : SUCCESS in 1m 59s\n- requirements-check https://zuul.opendev.org/t/openstack/build/b4384e02884b4f4bb2195bf7098c6cd4 : SUCCESS in 2m 34s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2d4655e0b6ce45d699a4890d8dafcf39 : FAILURE in 3m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/037102fb48df4d0db5eeadd7eda7ee41 : SUCCESS in 3m 29s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/df511712ecbc435cb211786cdf894f99 : FAILURE in 2m 55s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/49b22e70745840da9f12c808d009c003 : FAILURE in 2m 25s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4e836a75d1af4f5383d5b7c4effa653c : FAILURE in 3m 48s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d9c481ad68c2405f9eeaedbbb8eba798 : FAILURE in 1m 55s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8c2035d7b80c418cad9a5054a504ff40 : SUCCESS in 1m 57s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/7ea461fce49b4c2fb557afe697e8cfc5 : SUCCESS in 33m 03s\n- cloudkitty-tempest-full-v2-storage-influxdb-v2 https://zuul.opendev.org/t/openstack/build/abaf9de87b99492facfbe2a88d2a85bb : SUCCESS in 13m 37s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/c68117c729f84309abdb68a6e0797101 : SUCCESS in 30m 10s\n- cloudkitty-tempest-full-v2-storage-opensearch https://zuul.opendev.org/t/openstack/build/cbc6a492305d4b42bc8da3f7d29a2d59 : SUCCESS in 34m 42s\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/71ada1ddde4348a185db513c9b1f68f0 : SUCCESS in 39m 09s\n- cloudkitty-tempest-full-v2-storage-loki https://zuul.opendev.org/t/openstack/build/fc7e08a605974037869829570734457e : SUCCESS in 15m 47s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/4f1318af8d664f6da5da24d445ef7541 : SUCCESS in 26m 00s\n- cloudkitty-tempest-full-v2-fetcher-collector-prometheus https://zuul.opendev.org/t/openstack/build/b7554728db5046c7b4c000c3bc74f31f : SUCCESS in 30m 26s\n- cloudkitty-tempest-full-v2-collector-aetos https://zuul.opendev.org/t/openstack/build/e3d9ec225e44453b85ca2d2710c06329 : SUCCESS in 36m 14s\n- cloudkitty-tox-bandit https://zuul.opendev.org/t/openstack/build/8a66217830234bf191dd40f6c7c043fe : FAILURE in 3m 27s (non-voting)\n- cloudkitty-grenade-job https://zuul.opendev.org/t/openstack/build/fab025bc345a4d0fad8f75fc0901b383 : SUCCESS in 58m 02s","accounts_in_message":[],"_revision_number":3},{"id":"8f4023e714068b522b81229f1874d09f7ee4567b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-03-02 14:01:45.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":4},{"id":"8c19d095bdc7e51bdc5cdbde381fe40f5da00bd3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-02 14:49:50.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f5c57f58dec74b1db6c4423d50ba9396\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/90402a873c6a4b218b389b27f0504365 : SUCCESS in 3m 35s\n- requirements-check https://zuul.opendev.org/t/openstack/build/8f4f10516fd24aab9961d47741c02bce : SUCCESS in 2m 30s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a7a5e82ff30a45babb6142d7de9ddd11 : SUCCESS in 9m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4de4512da9d04e73b3b62feef9e1eb81 : SUCCESS in 4m 20s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/59659d0b50724147b80973c827323afd : SUCCESS in 5m 12s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a6f160f6ecec4138ae3c66531371be23 : SUCCESS in 4m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7e0471888eeb420ca0f6d9cab8d8a3a6 : SUCCESS in 5m 04s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1c903f224b284bee8a66b8be35407b45 : SUCCESS in 4m 33s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0ef683f3aadb4c418748451826da6655 : SUCCESS in 2m 44s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/06bd54673f4b45a49886fd736974f0f3 : SUCCESS in 33m 44s\n- cloudkitty-tempest-full-v2-storage-influxdb-v2 https://zuul.opendev.org/t/openstack/build/23e7d15ea1684155a2b145be0881ce9b : SUCCESS in 34m 08s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/40fb475107104e5092e3ae6496ac2f4a : SUCCESS in 25m 31s\n- cloudkitty-tempest-full-v2-storage-opensearch https://zuul.opendev.org/t/openstack/build/2a248d61e1fa4a358d7c0a8f921948a9 : SUCCESS in 24m 28s\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/a2aaf621e7e246b6993818ddc61e0009 : SUCCESS in 33m 19s\n- cloudkitty-tempest-full-v2-storage-loki https://zuul.opendev.org/t/openstack/build/5f0f246f7d1540ce86d9c1d08163d2ec : SUCCESS in 15m 19s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/443050b11bda4c62ade5362b55a46760 : SUCCESS in 33m 39s\n- cloudkitty-tempest-full-v2-fetcher-collector-prometheus https://zuul.opendev.org/t/openstack/build/5160b7387f7547d383478bd050a76fb5 : SUCCESS in 38m 07s\n- cloudkitty-tempest-full-v2-collector-aetos https://zuul.opendev.org/t/openstack/build/67bd58add99843739e9856b53b121a53 : SUCCESS in 36m 53s\n- cloudkitty-tox-bandit https://zuul.opendev.org/t/openstack/build/28695a3ced064831b2b491d1ab49ed12 : FAILURE in 2m 15s (non-voting)\n- cloudkitty-grenade-job https://zuul.opendev.org/t/openstack/build/70d60e32d1424f02b69ce47074826ee8 : SUCCESS in 45m 26s","accounts_in_message":[],"_revision_number":4},{"id":"548a6ad2d1e7a20d325259cd8544aa1c3590a3d7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-03-03 15:46:24.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":5},{"id":"1679aca9ee9b2f14d13a0df2aac2f7a4692015e7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 16:39:20.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1841222c8b3c470d8e0b52a6971c1885\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/448d1fc9b299492d83b7d8ff1c8be524 : SUCCESS in 2m 22s\n- requirements-check https://zuul.opendev.org/t/openstack/build/d23c4c2860b0442fa758e7111ccc3edb : SUCCESS in 1m 20s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/41616181bda940468c0523a9e2f8193c : SUCCESS in 6m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1b42cddbf1bf4df080d008a76b4ad3f9 : SUCCESS in 3m 27s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/bc197d13d75349e99340fd64218d5ad4 : SUCCESS in 4m 44s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/505f59c37aec43478b049e8a176eae50 : SUCCESS in 3m 55s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e2c9e63696ef4310987e1be511aa3ea9 : SUCCESS in 5m 49s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f0c3199af0f5452e832681203c4eb169 : SUCCESS in 2m 43s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/efaf7c612a574de999127ef61834b0c7 : SUCCESS in 3m 43s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/9d202b015a2747f28b52552502bd635e : SUCCESS in 33m 12s\n- cloudkitty-tempest-full-v2-storage-influxdb-v2 https://zuul.opendev.org/t/openstack/build/ae17eb60186b483389cdf1ffc3afd433 : SUCCESS in 21m 40s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/c065ea19e28540a8a8c2e434ea54a303 : SUCCESS in 46m 14s\n- cloudkitty-tempest-full-v2-storage-opensearch https://zuul.opendev.org/t/openstack/build/a1e312b066264b21806b6836f8e30c9e : SUCCESS in 13m 43s\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/a7e44bdaa4dd43ffa1d3e3d61c7de86d : SUCCESS in 34m 37s\n- cloudkitty-tempest-full-v2-storage-loki https://zuul.opendev.org/t/openstack/build/e3f4503179474306a5f54e84d6591acc : SUCCESS in 32m 35s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/975aee50630d49039ce779607e36b55c : SUCCESS in 17m 00s\n- cloudkitty-tempest-full-v2-fetcher-collector-prometheus https://zuul.opendev.org/t/openstack/build/79ea04d6cc804f429b506e67458b66b1 : SUCCESS in 31m 21s\n- cloudkitty-tempest-full-v2-collector-aetos https://zuul.opendev.org/t/openstack/build/77be1cd2b9524f978ae006dfc620bc84 : SUCCESS in 16m 56s\n- cloudkitty-tox-bandit https://zuul.opendev.org/t/openstack/build/1abc575ea92b4eebb70cb91897ceca94 : FAILURE in 5m 55s (non-voting)\n- cloudkitty-grenade-job https://zuul.opendev.org/t/openstack/build/bc989bf0e12442a6bcdaff48d09d09b1 : SUCCESS in 47m 16s","accounts_in_message":[],"_revision_number":5},{"id":"07f7a533bc791efaa270dcaf496a611a0cf67ef9","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-03-12 07:17:30.000000000","message":"Patch Set 5:\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"ac4bdbbb7c8935b77a941af2e2075f488028ee3d","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-03-12 07:30:31.000000000","message":"Patch Set 5: Code-Review+1","accounts_in_message":[],"_revision_number":5},{"id":"e56e823f2585fc15058702caec0defd49086c153","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-03-12 07:30:47.000000000","message":"Patch Set 5: Code-Review-1","accounts_in_message":[],"_revision_number":5},{"id":"c6e7b29d94be41c4c78e4b6b06fb5fdd4613b82c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-03-31 09:57:42.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":6},{"id":"f9fadbf910d3eebd1cd63c2947d555f48c93325e","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-03-31 10:02:11.000000000","message":"Patch Set 6:\n\n(2 comments)","accounts_in_message":[],"_revision_number":6},{"id":"faf095224154f1956b42f33a48dca170a900b9c8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-03-31 10:14:51.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"a5ff19a5a2702aee03582587b39d244d1389fe47","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-31 11:25:23.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/151e74e5ec364a75aaa41d75afeede59\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/2083dc612e9e48f6b8b5076bea5edf49 : SUCCESS in 2m 27s\n- requirements-check https://zuul.opendev.org/t/openstack/build/f9f88ece7c93487787b85204444f1ce1 : SUCCESS in 2m 18s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3516be279609482a8eda939661f4cf47 : SUCCESS in 5m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cd4491ec213f4d3695d81cb90638a60c : SUCCESS in 3m 52s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ec8eecbe06d94e3a89c39df855705958 : SUCCESS in 2m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e20388c89c934877b0d1f63361e381d2 : SUCCESS in 4m 49s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/950b8ff1198847fa9543e3c41656eb1e : SUCCESS in 5m 03s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7225c3dca81d43469b385bdd9037d5c7 : SUCCESS in 3m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/c76fb991853f477497eb7f06d20b1c83 : SUCCESS in 2m 46s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/0bd2608bbac54ad5919102d0adc5bf6c : SUCCESS in 32m 26s\n- cloudkitty-tempest-full-v2-storage-influxdb-v2 https://zuul.opendev.org/t/openstack/build/53985ea3165d4a8f884cb6c9b7282114 : SUCCESS in 27m 44s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/4d1472b4eb7a433c84fb197bb4d653d1 : SUCCESS in 35m 41s\n- cloudkitty-tempest-full-v2-storage-opensearch https://zuul.opendev.org/t/openstack/build/a42ebcd3854945eea89c9a03edf65964 : SUCCESS in 36m 06s\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/7f6c85a13a2d43c9976ecad7372ed504 : SUCCESS in 31m 07s\n- cloudkitty-tempest-full-v2-storage-loki https://zuul.opendev.org/t/openstack/build/a8d1eb63e465443485997a42b90f89eb : SUCCESS in 25m 17s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/823aa65344294e9f823d7ca329766e8c : SUCCESS in 14m 16s\n- cloudkitty-tempest-full-v2-fetcher-collector-prometheus https://zuul.opendev.org/t/openstack/build/ebb0ca14c8174bdf913f5205669cba06 : SUCCESS in 29m 27s\n- cloudkitty-tempest-full-v2-collector-aetos https://zuul.opendev.org/t/openstack/build/defff7decbc54e38a3eaf848624e63ce : SUCCESS in 18m 25s\n- cloudkitty-tox-bandit https://zuul.opendev.org/t/openstack/build/e7ebe0f1f9164b32a8b3dd6639873094 : FAILURE in 1m 57s (non-voting)\n- cloudkitty-grenade-job https://zuul.opendev.org/t/openstack/build/dfa84afc4efa42aa9c11919f5a6f3cf9 : SUCCESS in 1h 04m 26s","accounts_in_message":[],"_revision_number":7},{"id":"1d64ba7d5687bd7aad797ea811e40cfa2f1c3b77","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-04-07 10:00:35.000000000","message":"Patch Set 7: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"e294efbc4c988da961b9a6284551c5adca1ab369","author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"date":"2026-04-07 10:02:07.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"9d863cc2c6c27f4182dd1ef4fb7b0ce78648e0c1","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-04-07 10:17:56.000000000","message":"Patch Set 7: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"d61248a89d10e7c4ea1b0e22dbfc664e459976a3","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-04-07 10:18:24.000000000","message":"Patch Set 7:\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"30fcd18256424b0f9428dbc562d0e0de3320f1a5","author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"date":"2026-04-13 14:13:18.000000000","message":"Patch Set 7: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":7},{"id":"3fa93ae5df55b56ee073d1dbe7ea2236b128e50c","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 14:14:13.000000000","message":"Patch Set 7: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":7},{"id":"afb3093e4f9ea71cb0e8ac6ce94eb05b034b7850","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 15:07:43.000000000","message":"Patch Set 7: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/359de4de588e47eea39c59cb5b934967\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/69c3a334f1b045a2818b6fe046f6022b : SUCCESS in 4m 12s\n- requirements-check https://zuul.opendev.org/t/openstack/build/fc80ae9abe4b461cbf3576be6ad755bb : SUCCESS in 3m 16s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ee9af2e8dcd54035b0c172e7da61dac5 : SUCCESS in 4m 20s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/bfc9545b576d449682acbc1bb814340f : SUCCESS in 4m 59s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f4d67dc3c0324211a2c864d9b62e99e4 : SUCCESS in 5m 43s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c20d29055ce3404eb11b6e07e0525a0e : SUCCESS in 4m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/7ee2a4256baf49ce85d9c3aaeb3fb6f2 : SUCCESS in 3m 17s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/6421f7acd2344326a15cea6fc7161f3f : SUCCESS in 36m 43s\n- cloudkitty-tempest-full-v2-storage-influxdb-v2 https://zuul.opendev.org/t/openstack/build/0ed634a4396e4e3d8525c39796076f99 : SUCCESS in 36m 10s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/2f54637a7da0443c8137bba41a06a9f9 : SUCCESS in 34m 48s\n- cloudkitty-tempest-full-v2-storage-opensearch https://zuul.opendev.org/t/openstack/build/199f266dfa284a33a111bc4157bb9234 : SUCCESS in 28m 34s\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/0744bd27128f470280dcd3e537ee58bc : SUCCESS in 26m 36s\n- cloudkitty-tempest-full-v2-storage-loki https://zuul.opendev.org/t/openstack/build/994c12609d6a417eb25069afbf95f299 : SUCCESS in 25m 55s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/36c748f88fff4b64b083b1601517ad81 : SUCCESS in 37m 39s\n- cloudkitty-grenade-job https://zuul.opendev.org/t/openstack/build/841b4f16cdeb41788e27404e04211ed9 : SUCCESS in 52m 22s\n- cloudkitty-tempest-full-v2-fetcher-collector-prometheus https://zuul.opendev.org/t/openstack/build/6c3ec7c48a524493a07899f58af91555 : SUCCESS in 25m 16s\n- cloudkitty-tempest-full-v2-collector-aetos https://zuul.opendev.org/t/openstack/build/9b6d8909c13246bc95a2b1912d64f5e8 : SUCCESS in 39m 42s","accounts_in_message":[],"_revision_number":7},{"id":"44661e24035089ec847b3f41cd052455db867ec3","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 15:07:43.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":7},{"id":"b14e575ac87471ddc9f86bb08bddd78d7613b431","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 15:10:45.000000000","message":"Patch Set 7:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/77d0a15a17c74cf39953ef3cf4b6d784\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f3d4c94aada441f6b3b03630033b718a : SUCCESS in 57s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6f46a3e96c694d0688d35347f98a844d : SUCCESS in 51s","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"1a54c8ac403523cca707909f8ba30405ab0b603d","revisions":{"80d654bf889d2f056ad45cc7c2de4d249cb7c071":{"kind":"REWORK","_number":1,"created":"2026-02-27 13:48:01.000000000","uploader":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"ref":"refs/changes/98/978198/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/98/978198/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/1"}}},"commit":{"parents":[{"commit":"c3398362dbc9a50999ce00a581ef3476f6595797","subject":"Fix tests with gabbi 4.x","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/c3398362dbc9a50999ce00a581ef3476f6595797"}]}],"author":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-02-18 10:41:02.000000000","tz":-300},"committer":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-02-27 13:47:07.000000000","tz":0},"subject":"Add Aetos collector with Keystone authentication","message":"Add Aetos collector with Keystone authentication\n\nAetos is a reverse-proxy for Prometheus adding keystone-based\nauthentication capabilities when querying metrics.\n\n- The PrometheusClient and PrometheusCollector classes were split into a\n  base and concrete class. In both cases it\u0027s quite a clean split without too\n  many changes to the original code. Only notable change to the original\n  code except for moving it around is a slight change to the imports to\n  get them closer to the openstack conventions described in hacking\n  (importing a module, not objects)\n- AetosClient and AetosCollector classes were added to communicate with\n  Prometheus through Aetos. These reuse as much code from the Promethus\n  base classes as possible. The python-observabilityclient is used as an\n  interface for creating the Aetos client and for sending request to\n  Aetos. This is the usual pattern to handle communicating with Aetos\n  seen in other services (Watcher, Aodh).\n- A new requirement for python-observabilityclient \u003e\u003d 1.1.0 is added.\n  This is the first version, where the get_prom_client_from_keystone\n  function is available.\n- Documentation was adjusted to describe the new collector\n- New functionality in Aetos is required to support the `time` and\n  `timeout` parameters in queries (see depends on).\n\nNote on usage of AI:\nAI was used to generate the initial implementation. I then manually\ndiffed the prometheus related code against the original prometheus client /\ncollector to ensure the code stayed the same and no unwanted change\nslipped in. Aetos related implementation was reviewed by me and adjusted\nin places to follow patterns seen in other services. The tests stayed\nmostly as generated by AI with some adjustements to accomodate manual\nchanges to the client / collector code and to follow hacking a bit better.\nDocumentation and releasenote is fully AI generated with some guidance\nthrough additional prompts.\n\nImplements: https://review.opendev.org/c/openstack/cloudkitty-specs/+/966753\n\nAssisted-By: Claude Sonnet 4.5\nDepends-On: https://review.opendev.org/c/openstack/aetos/+/977709\nChange-Id: Ic701146ef818b7318fceacaf3dfd7f1cf035abb5\nSigned-off-by: Jaromir Wysoglad \u003cjwysogla@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/80d654bf889d2f056ad45cc7c2de4d249cb7c071"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/80d654bf889d2f056ad45cc7c2de4d249cb7c071"}]},"branch":"refs/heads/master"},"647aaf8ba32e53e5cedfa5a9987a46b845fbafd7":{"kind":"REWORK","_number":2,"created":"2026-02-27 15:25:37.000000000","uploader":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"ref":"refs/changes/98/978198/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/98/978198/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/2"}}},"commit":{"parents":[{"commit":"c3398362dbc9a50999ce00a581ef3476f6595797","subject":"Fix tests with gabbi 4.x","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/c3398362dbc9a50999ce00a581ef3476f6595797"}]}],"author":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-02-18 10:41:02.000000000","tz":-300},"committer":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-02-27 15:24:59.000000000","tz":0},"subject":"Add Aetos collector with Keystone authentication","message":"Add Aetos collector with Keystone authentication\n\nAetos is a reverse-proxy for Prometheus adding keystone-based\nauthentication capabilities when querying metrics.\n\n- The PrometheusClient and PrometheusCollector classes were split into a\n  base and concrete class. In both cases it\u0027s quite a clean split without too\n  many changes to the original code. Only notable change to the original\n  code except for moving it around is a slight change to the imports to\n  get them closer to the openstack conventions described in hacking\n  (importing a module, not objects)\n- AetosClient and AetosCollector classes were added to communicate with\n  Prometheus through Aetos. These reuse as much code from the Promethus\n  base classes as possible. The python-observabilityclient is used as an\n  interface for creating the Aetos client and for sending request to\n  Aetos. This is the usual pattern to handle communicating with Aetos\n  seen in other services (Watcher, Aodh).\n- A new requirement for python-observabilityclient \u003e\u003d 1.1.0 is added.\n  This is the first version, where the get_prom_client_from_keystone\n  function is available.\n- Documentation was adjusted to describe the new collector\n- New functionality in Aetos is required to support the `time` and\n  `timeout` parameters in queries (see depends on).\n\nNote on usage of AI:\nAI was used to generate the initial implementation. I then manually\ndiffed the prometheus related code against the original prometheus client /\ncollector to ensure the code stayed the same and no unwanted change\nslipped in. Aetos related implementation was reviewed by me and adjusted\nin places to follow patterns seen in other services. The tests stayed\nmostly as generated by AI with some adjustements to accomodate manual\nchanges to the client / collector code and to follow hacking a bit better.\nDocumentation and releasenote is fully AI generated with some guidance\nthrough additional prompts.\n\nImplements: https://review.opendev.org/c/openstack/cloudkitty-specs/+/966753\n\nAssisted-By: Claude Sonnet 4.5\nDepends-On: https://review.opendev.org/c/openstack/aetos/+/977709\nChange-Id: Ic701146ef818b7318fceacaf3dfd7f1cf035abb5\nSigned-off-by: Jaromir Wysoglad \u003cjwysogla@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/647aaf8ba32e53e5cedfa5a9987a46b845fbafd7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/647aaf8ba32e53e5cedfa5a9987a46b845fbafd7"}]},"branch":"refs/heads/master"},"d9e283570e2be888d5d69b51f8b782f0a7cd82c1":{"kind":"REWORK","_number":3,"created":"2026-03-02 07:57:34.000000000","uploader":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"ref":"refs/changes/98/978198/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/98/978198/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/3"}}},"commit":{"parents":[{"commit":"c3398362dbc9a50999ce00a581ef3476f6595797","subject":"Fix tests with gabbi 4.x","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/c3398362dbc9a50999ce00a581ef3476f6595797"}]}],"author":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-02-18 10:41:02.000000000","tz":-300},"committer":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-03-02 07:56:48.000000000","tz":0},"subject":"Add Aetos collector with Keystone authentication","message":"Add Aetos collector with Keystone authentication\n\nAetos is a reverse-proxy for Prometheus adding keystone-based\nauthentication capabilities when querying metrics.\n\n- The PrometheusClient and PrometheusCollector classes were split into a\n  base and concrete class. In both cases it\u0027s quite a clean split without too\n  many changes to the original code. Only notable change to the original\n  code except for moving it around is a slight change to the imports to\n  get them closer to the openstack conventions described in hacking\n  (importing a module, not objects)\n- AetosClient and AetosCollector classes were added to communicate with\n  Prometheus through Aetos. These reuse as much code from the Promethus\n  base classes as possible. The python-observabilityclient is used as an\n  interface for creating the Aetos client and for sending request to\n  Aetos. This is the usual pattern to handle communicating with Aetos\n  seen in other services (Watcher, Aodh).\n- A new requirement for python-observabilityclient \u003e\u003d 1.1.0 is added.\n  This is the first version, where the get_prom_client_from_keystone\n  function is available.\n- Documentation was adjusted to describe the new collector\n- New functionality in Aetos is required to support the `time` and\n  `timeout` parameters in queries (see depends on).\n\nNote on usage of AI:\nAI was used to generate the initial implementation. I then manually\ndiffed the prometheus related code against the original prometheus client /\ncollector to ensure the code stayed the same and no unwanted change\nslipped in. Aetos related implementation was reviewed by me and adjusted\nin places to follow patterns seen in other services. The tests stayed\nmostly as generated by AI with some adjustements to accomodate manual\nchanges to the client / collector code and to follow hacking a bit better.\nDocumentation and releasenote is fully AI generated with some guidance\nthrough additional prompts.\n\nImplements: https://review.opendev.org/c/openstack/cloudkitty-specs/+/966753\n\nAssisted-By: Claude Sonnet 4.5\nDepends-On: https://review.opendev.org/c/openstack/aetos/+/977709\nChange-Id: Ic701146ef818b7318fceacaf3dfd7f1cf035abb5\nSigned-off-by: Jaromir Wysoglad \u003cjwysogla@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/d9e283570e2be888d5d69b51f8b782f0a7cd82c1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/d9e283570e2be888d5d69b51f8b782f0a7cd82c1"}]},"branch":"refs/heads/master"},"63514bf7c15736fa9a7fcc0f10d7914b417f8ef3":{"kind":"REWORK","_number":4,"created":"2026-03-02 14:01:45.000000000","uploader":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"ref":"refs/changes/98/978198/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/98/978198/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/4"}}},"commit":{"parents":[{"commit":"c3398362dbc9a50999ce00a581ef3476f6595797","subject":"Fix tests with gabbi 4.x","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/c3398362dbc9a50999ce00a581ef3476f6595797"}]}],"author":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-02-18 10:41:02.000000000","tz":-300},"committer":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-03-02 14:00:57.000000000","tz":0},"subject":"Add Aetos collector with Keystone authentication","message":"Add Aetos collector with Keystone authentication\n\nAetos is a reverse-proxy for Prometheus adding keystone-based\nauthentication capabilities when querying metrics.\n\n- The PrometheusClient and PrometheusCollector classes were split into a\n  base and concrete class. In both cases it\u0027s quite a clean split without too\n  many changes to the original code. Only notable change to the original\n  code except for moving it around is a slight change to the imports to\n  get them closer to the openstack conventions described in hacking\n  (importing a module, not objects)\n- AetosClient and AetosCollector classes were added to communicate with\n  Prometheus through Aetos. These reuse as much code from the Promethus\n  base classes as possible. The python-observabilityclient is used as an\n  interface for creating the Aetos client and for sending request to\n  Aetos. This is the usual pattern to handle communicating with Aetos\n  seen in other services (Watcher, Aodh).\n- A new requirement for python-observabilityclient \u003e\u003d 1.1.0 is added.\n  This is the first version, where the get_prom_client_from_keystone\n  function is available.\n- Documentation was adjusted to describe the new collector\n- New functionality in Aetos is required to support the `time` and\n  `timeout` parameters in queries (see depends on).\n\nNote on usage of AI:\nAI was used to generate the initial implementation. I then manually\ndiffed the prometheus related code against the original prometheus client /\ncollector to ensure the code stayed the same and no unwanted change\nslipped in. Aetos related implementation was reviewed by me and adjusted\nin places to follow patterns seen in other services. The tests stayed\nmostly as generated by AI with some adjustements to accomodate manual\nchanges to the client / collector code and to follow hacking a bit better.\nDocumentation and releasenote is fully AI generated with some guidance\nthrough additional prompts.\n\nImplements: https://review.opendev.org/c/openstack/cloudkitty-specs/+/966753\n\nAssisted-By: Claude Sonnet 4.5\nDepends-On: https://review.opendev.org/c/openstack/aetos/+/977709\nChange-Id: Ic701146ef818b7318fceacaf3dfd7f1cf035abb5\nSigned-off-by: Jaromir Wysoglad \u003cjwysogla@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/63514bf7c15736fa9a7fcc0f10d7914b417f8ef3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/63514bf7c15736fa9a7fcc0f10d7914b417f8ef3"}]},"branch":"refs/heads/master"},"3d03ac388e26c8328c0265244dc971c1929d97d2":{"kind":"REWORK","_number":5,"created":"2026-03-03 15:46:24.000000000","uploader":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"ref":"refs/changes/98/978198/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/98/978198/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/5"}}},"commit":{"parents":[{"commit":"c3398362dbc9a50999ce00a581ef3476f6595797","subject":"Fix tests with gabbi 4.x","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/c3398362dbc9a50999ce00a581ef3476f6595797"}]}],"author":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-02-18 10:41:02.000000000","tz":-300},"committer":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-03-03 15:45:24.000000000","tz":0},"subject":"Add Aetos collector with Keystone authentication","message":"Add Aetos collector with Keystone authentication\n\nAetos is a reverse-proxy for Prometheus adding keystone-based\nauthentication capabilities when querying metrics.\n\n- The PrometheusClient and PrometheusCollector classes were split into a\n  base and concrete class. In both cases it\u0027s quite a clean split without too\n  many changes to the original code. Only notable change to the original\n  code except for moving it around is a slight change to the imports to\n  get them closer to the openstack conventions described in hacking\n  (importing a module, not objects)\n- AetosClient and AetosCollector classes were added to communicate with\n  Prometheus through Aetos. These reuse as much code from the Promethus\n  base classes as possible. The python-observabilityclient is used as an\n  interface for creating the Aetos client and for sending request to\n  Aetos. This is the usual pattern to handle communicating with Aetos\n  seen in other services (Watcher, Aodh).\n- A new requirement for python-observabilityclient \u003e\u003d 1.1.0 is added.\n  This is the first version, where the get_prom_client_from_keystone\n  function is available.\n- Documentation was adjusted to describe the new collector\n- New functionality in Aetos is required to support the `time` and\n  `timeout` parameters in queries (see depends on).\n\nNote on usage of AI:\nAI was used to generate the initial implementation. I then manually\ndiffed the prometheus related code against the original prometheus client /\ncollector to ensure the code stayed the same and no unwanted change\nslipped in. Aetos related implementation was reviewed by me and adjusted\nin places to follow patterns seen in other services. The tests stayed\nmostly as generated by AI with some adjustements to accomodate manual\nchanges to the client / collector code and to follow hacking a bit better.\nDocumentation and releasenote is fully AI generated with some guidance\nthrough additional prompts.\n\nImplements: https://review.opendev.org/c/openstack/cloudkitty-specs/+/966753\n\nAssisted-By: Claude Sonnet 4.5\nDepends-On: https://review.opendev.org/c/openstack/aetos/+/977709\nChange-Id: Ic701146ef818b7318fceacaf3dfd7f1cf035abb5\nSigned-off-by: Jaromir Wysoglad \u003cjwysogla@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/3d03ac388e26c8328c0265244dc971c1929d97d2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/3d03ac388e26c8328c0265244dc971c1929d97d2"}]},"branch":"refs/heads/master"},"ca618796b7e1e120ab399de82fc812886a796992":{"kind":"REWORK","_number":6,"created":"2026-03-31 09:57:42.000000000","uploader":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"ref":"refs/changes/98/978198/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/98/978198/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/6"}}},"commit":{"parents":[{"commit":"848b1c8b17609010d02b7ee994dc592f49039d66","subject":"Merge \"Optimize the loading of rating rules\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/848b1c8b17609010d02b7ee994dc592f49039d66"}]}],"author":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-02-18 10:41:02.000000000","tz":-300},"committer":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-03-31 09:55:18.000000000","tz":0},"subject":"Add Aetos collector with Keystone authentication","message":"Add Aetos collector with Keystone authentication\n\nAetos is a reverse-proxy for Prometheus adding keystone-based\nauthentication capabilities when querying metrics.\n\n- The PrometheusClient and PrometheusCollector classes were split into a\n  base and concrete class. In both cases it\u0027s quite a clean split without too\n  many changes to the original code. Only notable change to the original\n  code except for moving it around is a slight change to the imports to\n  get them closer to the openstack conventions described in hacking\n  (importing a module, not objects)\n- AetosClient and AetosCollector classes were added to communicate with\n  Prometheus through Aetos. These reuse as much code from the Promethus\n  base classes as possible. The python-observabilityclient is used as an\n  interface for creating the Aetos client and for sending request to\n  Aetos. This is the usual pattern to handle communicating with Aetos\n  seen in other services (Watcher, Aodh).\n- A new requirement for python-observabilityclient \u003e\u003d 1.1.0 is added.\n  This is the first version, where the get_prom_client_from_keystone\n  function is available.\n- Documentation was adjusted to describe the new collector\n- New functionality in Aetos is required to support the `time` and\n  `timeout` parameters in queries - implementation merged.\n\nNote on usage of AI:\nAI was used to generate the initial implementation. I then manually\ndiffed the prometheus related code against the original prometheus client /\ncollector to ensure the code stayed the same and no unwanted change\nslipped in. Aetos related implementation was reviewed by me and adjusted\nin places to follow patterns seen in other services. The tests stayed\nmostly as generated by AI with some adjustements to accomodate manual\nchanges to the client / collector code and to follow hacking a bit better.\nDocumentation and releasenote is fully AI generated with some guidance\nthrough additional prompts.\n\nImplements: https://review.opendev.org/c/openstack/cloudkitty-specs/+/966753\n\nAssisted-By: Claude Sonnet 4.5\nChange-Id: Ic701146ef818b7318fceacaf3dfd7f1cf035abb5\nSigned-off-by: Jaromir Wysoglad \u003cjwysogla@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/ca618796b7e1e120ab399de82fc812886a796992"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/ca618796b7e1e120ab399de82fc812886a796992"}]},"branch":"refs/heads/master"},"1a54c8ac403523cca707909f8ba30405ab0b603d":{"kind":"REWORK","_number":7,"created":"2026-03-31 10:14:51.000000000","uploader":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"ref":"refs/changes/98/978198/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/98/978198/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/98/978198/7"}}},"commit":{"parents":[{"commit":"848b1c8b17609010d02b7ee994dc592f49039d66","subject":"Merge \"Optimize the loading of rating rules\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/848b1c8b17609010d02b7ee994dc592f49039d66"}]}],"author":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-02-18 10:41:02.000000000","tz":-300},"committer":{"name":"Jaromir Wysoglad","email":"jwysogla@redhat.com","date":"2026-03-31 10:12:25.000000000","tz":0},"subject":"Add Aetos collector with Keystone authentication","message":"Add Aetos collector with Keystone authentication\n\nAetos is a reverse-proxy for Prometheus adding keystone-based\nauthentication capabilities when querying metrics.\n\n- The PrometheusClient and PrometheusCollector classes were split into a\n  base and concrete class. In both cases it\u0027s quite a clean split without too\n  many changes to the original code. Only notable change to the original\n  code except for moving it around is a slight change to the imports to\n  get them closer to the openstack conventions described in hacking\n  (importing a module, not objects)\n- AetosClient and AetosCollector classes were added to communicate with\n  Prometheus through Aetos. These reuse as much code from the Promethus\n  base classes as possible. The python-observabilityclient is used as an\n  interface for creating the Aetos client and for sending request to\n  Aetos. This is the usual pattern to handle communicating with Aetos\n  seen in other services (Watcher, Aodh).\n- A new requirement for python-observabilityclient \u003e\u003d 1.1.0 is added.\n  This is the first version, where the get_prom_client_from_keystone\n  function is available.\n- Documentation was adjusted to describe the new collector\n- New functionality in Aetos is required to support the `time` and\n  `timeout` parameters in queries - implementation merged.\n\nNote on usage of AI:\nAI was used to generate the initial implementation. I then manually\ndiffed the prometheus related code against the original prometheus client /\ncollector to ensure the code stayed the same and no unwanted change\nslipped in. Aetos related implementation was reviewed by me and adjusted\nin places to follow patterns seen in other services. The tests stayed\nmostly as generated by AI with some adjustements to accomodate manual\nchanges to the client / collector code and to follow hacking a bit better.\nDocumentation and releasenote is fully AI generated with some guidance\nthrough additional prompts.\n\nImplements: https://review.opendev.org/c/openstack/cloudkitty-specs/+/966753\n\nAssisted-By: Claude Sonnet 4.5\nChange-Id: Ic701146ef818b7318fceacaf3dfd7f1cf035abb5\nSigned-off-by: Jaromir Wysoglad \u003cjwysogla@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/1a54c8ac403523cca707909f8ba30405ab0b603d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/1a54c8ac403523cca707909f8ba30405ab0b603d"}]},"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":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"}},{"label":"Review-Priority","status":"MAY"}]}],"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":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\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":""}}}]}
