)]}'
{"id":"openstack%2Ffreezer-api~1003785","triplet_id":"openstack%2Ffreezer-api~master~I0bf2cd6eecaa98415e3a453d1b4bfecd1c1f8da3","project":"openstack/freezer-api","branch":"master","attention_set":{"39044":{"account":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"last_update":"2026-09-15 11:46:48.000000000","reason":"\u003cGERRIT_ACCOUNT_28619\u003e replied on the change","reason_account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I0bf2cd6eecaa98415e3a453d1b4bfecd1c1f8da3","subject":"Report client liveness derived from the last heartbeat","status":"NEW","created":"2026-09-03 14:00:27.000000000","updated":"2026-09-15 11:46:48.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":4,"unresolved_comment_count":4,"has_review_started":true,"meta_rev_id":"4eb055b930a1301f6ec716d994d4b5708cb10617","_number":1003785,"virtual_id_number":1003785,"owner":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-10 12:02:52.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":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":{"all":[{"_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}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-03 14:29:27.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":"CC"},{"updated":"2026-09-03 14:56:25.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-09-15 11:46:48.000000000","updated_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"reviewer":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"state":"CC"}],"messages":[{"id":"a56242ff6c8f2ece7434b25e3d3de92581f77e14","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"date":"2026-09-03 14:00:27.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"6a791e436515f4a385d1b1ed9ce612c09184db01","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-03 14:29:27.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4c38cfcb05c74fc39b3035f03d96d5c1\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/0c251a79fb884480aa8d0d651da89438 : SUCCESS in 7m 48s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/e734ad204a314abf885cb4911e2204da : SUCCESS in 6m 28s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/3412a4c0565c4ebaa49d33128312578a : SUCCESS in 10m 09s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"5f122d0304a866a5204e659da6608e0811e95e43","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-03 14:56:25.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cd9149ad6fe84675ba50c4a947ab466c\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/fd9ee3a4c5704583bd4395d457d5a79e : SUCCESS in 4m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/16eb3e63734a467d8e42ca63164d0740 : SUCCESS in 3m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/33cef6e8c48f49df90576a4f34edf7b1 : SUCCESS in 3m 25s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/7c81ebf8eeca40c49ce20cec436b152a : SUCCESS in 4m 19s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/0512f5a5fd724bff8a5bae8dcc604d0a : SUCCESS in 6m 22s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/049bee611e464266b9b04b4e62556fba : SUCCESS in 4m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8cd315f54b4d44b2b04f0e337a8dbb8e : SUCCESS in 4m 34s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/ea8f6172ea2d4f919b2ff6bb6ae478d9 : SUCCESS in 4m 44s\n- freezer-tempest-basic https://zuul.opendev.org/t/openstack/build/c7e4f0f479384d1f9ae5b910d12a8b76 : SUCCESS in 21m 48s\n- freezer-tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/21d9135f92c648c18d5b21c337d10222 : SUCCESS in 30m 27s","accounts_in_message":[],"_revision_number":1},{"id":"eb336bc3674fbe2498ae32578f083779323ebcd1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"date":"2026-09-07 10:25:28.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"2e7677cd22c424f4057ee3ac34ad93670a4df5bc","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-07 10:40:35.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/dba6a36fcead4cac9923492b1d1a03cc\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/7577c79f3f12448292e632e2c3556c03 : SUCCESS in 7m 14s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/4750684159234eac9de0c12902ea9d54 : SUCCESS in 6m 33s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/56263ee7151e4c2ebe0677506d846992 : SUCCESS in 12m 06s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"5c83194e5887d620fd9dbe9b5a68efbc3ad5f201","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-07 10:57:10.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6949287d401b493ca2722e0b23acc536\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/3d5a292647574332b5eb45eb345202d2 : SUCCESS in 3m 29s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/71285dbe9f6941a8961b02094c197e74 : SUCCESS in 4m 00s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/701f8c7ea43f4aba97ee6188d3dccb97 : SUCCESS in 4m 33s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b508d221a0424d2197bd0dc209befe2a : SUCCESS in 6m 41s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/6798328313eb4ea0af51f275f02683b4 : SUCCESS in 7m 05s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/94b0a8192a3d44668e0a9578d28259da : SUCCESS in 3m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4f276c5ab84645d19c6dfcf9a61c929a : SUCCESS in 4m 05s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/8925bd0a023143a39f1652521a20ff62 : SUCCESS in 4m 35s\n- freezer-tempest-basic https://zuul.opendev.org/t/openstack/build/969faa08de02487c89c08a63fb0a4fe8 : SUCCESS in 27m 56s\n- freezer-tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/23f3e62f3e1b48c5812bd32570b4cdae : SUCCESS in 29m 15s","accounts_in_message":[],"_revision_number":2},{"id":"09bb4bd7ba265a28f63fb23ee24cd379f04dead4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"date":"2026-09-10 11:18:27.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"c83bb5c31dd15f1700cd237a0ecedea0c5802e0d","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-10 11:42:47.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6d7094c768534d628b3166ef57d0b189\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/39160c4e5e794df0b750c3f0ec7b627d : SUCCESS in 5m 48s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/ad0ed889f900429eb4ab4a9208dd45a0 : SUCCESS in 6m 13s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/5a238e26c2974557a725ad85ac5c2735 : SUCCESS in 8m 54s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"87113363d086f96cabfae7e784f828c002aab004","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-10 12:02:52.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/59cd73ceecf84a6da5e10fcbf33a5485\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/9bdbdb4be3ca4c9684c215d2f6ae7dd8 : SUCCESS in 2m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a8990b10745e425bb367f9b53551a388 : SUCCESS in 5m 11s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/23ef981b936c4a329b9cd5443359dabd : SUCCESS in 3m 45s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/862f200498d14d14bf6cd6ea3897a5b2 : SUCCESS in 4m 12s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/0b466ab39aac48e88d66b8a285e0874b : SUCCESS in 8m 00s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0f992ed2cd5140138af4bc92a83050e3 : SUCCESS in 3m 46s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e0b5bf42a0ff4865a0a2fddc57e5cca7 : SUCCESS in 4m 40s\n- openstack-tox-pylint https://zuul.opendev.org/t/openstack/build/74f1ef5649814bde9cc029ca6669f78b : SUCCESS in 4m 44s\n- freezer-tempest-basic https://zuul.opendev.org/t/openstack/build/0d93b1a3e76f4d09808d7e9d9ec82126 : SUCCESS in 34m 19s\n- freezer-tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/44a6218857804759a58de4c107f2c623 : SUCCESS in 37m 41s","accounts_in_message":[],"_revision_number":3},{"id":"4eb055b930a1301f6ec716d994d4b5708cb10617","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-09-15 11:46:48.000000000","message":"Patch Set 3:\n\n(4 comments)","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"69f9d66290f6ded06c7bb8e01e7d2a37172a072f","revisions":{"70d0581fc683994afcd6c2069ada2ec81c82a254":{"kind":"REWORK","_number":1,"created":"2026-09-03 14:00:27.000000000","uploader":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"ref":"refs/changes/85/1003785/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/freezer-api","ref":"refs/changes/85/1003785/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/1"}}},"commit":{"parents":[{"commit":"21e06ba8eab95b6889ee94df502ab2c9a8e22239","subject":"Add last_heartbeat column to Client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/21e06ba8eab95b6889ee94df502ab2c9a8e22239"}]}],"author":{"name":"Alicja Filipek","email":"alicja.filipek@cleura.com","date":"2026-09-03 13:59:41.000000000","tz":120},"committer":{"name":"Alicja Filipek","email":"alicja.filipek@cleura.com","date":"2026-09-03 13:59:41.000000000","tz":120},"subject":"Report client liveness derived from the last heartbeat","message":"Report client liveness derived from the last heartbeat\n\nExpose last_heartbeat and derive a status on read: online within\n[clients] heartbeat_timeout (default 180s), offline beyond it, unknown\nwhen none was ever received.\n\nSchedulers sharing a client_id give that client one record each, so\nshowing a client now answers with the client as a whole: the counts\nmembers_total, members_up, members_down and members_unknown, plus a\nmembers list with each scheduler\u0027s own record. Previously it answered\nwith an arbitrary one of the records, as happens today for central\nclients. Fields the schedulers disagree on are null, and capabilities\nare reported per member only.\n\nNothing writes last_heartbeat until the heartbeat endpoint lands, so\nclients read as unknown for now.\n\nImplements: blueprint client-heartbeat\nChange-Id: I0bf2cd6eecaa98415e3a453d1b4bfecd1c1f8da3\nSigned-off-by: Alicja Filipek \u003calicja.filipek@cleura.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/70d0581fc683994afcd6c2069ada2ec81c82a254"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/70d0581fc683994afcd6c2069ada2ec81c82a254"}]},"branch":"refs/heads/master"},"694e5c24cc17f67af21b889d6ea123dffe730092":{"kind":"REWORK","_number":2,"created":"2026-09-07 10:25:28.000000000","uploader":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"ref":"refs/changes/85/1003785/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/freezer-api","ref":"refs/changes/85/1003785/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/2"}}},"commit":{"parents":[{"commit":"21e06ba8eab95b6889ee94df502ab2c9a8e22239","subject":"Add last_heartbeat column to Client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/21e06ba8eab95b6889ee94df502ab2c9a8e22239"}]}],"author":{"name":"Alicja Filipek","email":"alicja.filipek@cleura.com","date":"2026-09-03 13:59:41.000000000","tz":120},"committer":{"name":"Alicja Filipek","email":"alicja.filipek@cleura.com","date":"2026-09-07 10:24:09.000000000","tz":120},"subject":"Report client liveness derived from the last heartbeat","message":"Report client liveness derived from the last heartbeat\n\nExpose last_heartbeat and derive a liveness status on read:\n- online: if heartbeat heard within heartbeat_timeout (default 180s)\n- offline: beyond it\n- unknown: when none was ever received.\n\nSchedulers sharing a client_id give that client one record each, so\nshowing a client now answers with the client as a whole.\nIf schedulers within one cluster do not agree on uuid or hostname\nthe fields are null.\nNewly added fields are \u0027last_heartbeat\u0027, \u0027status\u0027 and \u0027members\u0027.\nMembers list with each scheduler\u0027s \u0027uuid\u0027 and \u0027hostname\u0027.\nPreviously it answered with an arbitrary one of the records,\nas happens today for central clients.\n\nNothing writes last_heartbeat until the heartbeat endpoint lands, so\nclients read as unknown for now.\n\nImplements: blueprint client-heartbeat\nChange-Id: I0bf2cd6eecaa98415e3a453d1b4bfecd1c1f8da3\nSigned-off-by: Alicja Filipek \u003calicja.filipek@cleura.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/694e5c24cc17f67af21b889d6ea123dffe730092"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/694e5c24cc17f67af21b889d6ea123dffe730092"}]},"branch":"refs/heads/master"},"69f9d66290f6ded06c7bb8e01e7d2a37172a072f":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-09-10 11:18:27.000000000","uploader":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"ref":"refs/changes/85/1003785/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/freezer-api","ref":"refs/changes/85/1003785/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/freezer-api refs/changes/85/1003785/3"}}},"commit":{"parents":[{"commit":"892ea032b58db9e18c713a726c528ccec1114626","subject":"Add last_heartbeat column to Client","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/892ea032b58db9e18c713a726c528ccec1114626"}]}],"author":{"name":"Alicja Filipek","email":"alicja.filipek@cleura.com","date":"2026-09-03 13:59:41.000000000","tz":120},"committer":{"name":"Alicja Filipek","email":"alicja.filipek@cleura.com","date":"2026-09-10 10:22:04.000000000","tz":120},"subject":"Report client liveness derived from the last heartbeat","message":"Report client liveness derived from the last heartbeat\n\nExpose last_heartbeat and derive a liveness status on read:\n- online: if heartbeat heard within heartbeat_timeout (default 180s)\n- offline: beyond it\n- unknown: when none was ever received.\n\nSchedulers sharing a client_id give that client one record each, so\nshowing a client now answers with the client as a whole.\nIf schedulers within one cluster do not agree on uuid or hostname\nthe fields are null.\nNewly added fields are \u0027last_heartbeat\u0027, \u0027status\u0027 and \u0027members\u0027.\nMembers list with each scheduler\u0027s \u0027uuid\u0027 and \u0027hostname\u0027.\nPreviously it answered with an arbitrary one of the records,\nas happens today for central clients.\n\nNothing writes last_heartbeat until the heartbeat endpoint lands, so\nclients read as unknown for now.\n\nImplements: blueprint client-heartbeat\nChange-Id: I0bf2cd6eecaa98415e3a453d1b4bfecd1c1f8da3\nSigned-off-by: Alicja Filipek \u003calicja.filipek@cleura.com\u003e\nAssisted-By: Claude Opus 5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/69f9d66290f6ded06c7bb8e01e7d2a37172a072f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/freezer-api/commit/69f9d66290f6ded06c7bb8e01e7d2a37172a072f"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
