)]}'
{"id":"openstack%2Fwatcher-dashboard~978186","triplet_id":"openstack%2Fwatcher-dashboard~master~I9eb6ff4e1283ccc5e3907c90946801ebff48353e","project":"openstack/watcher-dashboard","branch":"master","attention_set":{},"removed_from_attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-03-03 10:20:08.000000000","reason":"\u003cGERRIT_ACCOUNT_11604\u003e replied on the change","reason_account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},"28006":{"account":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"last_update":"2026-03-03 18:42:29.000000000","reason":"Change was submitted"},"26471":{"account":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"last_update":"2026-03-02 07:13:28.000000000","reason":"removed on reply"},"12393":{"account":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"last_update":"2026-03-03 18:42:29.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I9eb6ff4e1283ccc5e3907c90946801ebff48353e","subject":"Add microversion discovery and gating for API calls","status":"MERGED","created":"2026-02-27 10:50:30.000000000","updated":"2026-03-03 18:43:18.000000000","submitted":"2026-03-03 18:42:29.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":18,"unresolved_comment_count":4,"has_review_started":true,"submission_id":"978186","meta_rev_id":"c71a53b89bb0d1cea6fac7b95031fbaabc71ae95","_number":978186,"virtual_id_number":978186,"owner":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-03-03 18:42:29.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":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"all":[{"value":2,"date":"2026-03-03 18:33:31.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":2,"date":"2026-03-02 10:32:25.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":1,"date":"2026-03-02 10:07:59.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":1,"date":"2026-03-03 08:03:55.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"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":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"all":[{"value":1,"date":"2026-03-03 18:33:31.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"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":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Standard Change","+1":"Important Change","+2":"High Priority Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}],"CC":[{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-02-27 10:50:42.000000000","updated_by":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"reviewer":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"state":"CC"},{"updated":"2026-02-27 11:06:14.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-02-27 15:20:53.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"},{"updated":"2026-02-27 18:52:35.000000000","updated_by":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"reviewer":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"state":"REVIEWER"},{"updated":"2026-03-03 08:03:55.000000000","updated_by":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"reviewer":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"state":"REVIEWER"},{"updated":"2026-03-03 18:33:31.000000000","updated_by":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"reviewer":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"state":"REVIEWER"}],"messages":[{"id":"5a2371d9ae3a53bc04abb0fed54c83dccb791dca","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-27 10:50:30.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"d17a417076697fe63edd4992319df1d3cd72a6bb","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-27 10:50:42.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"349dac04dfb625db5f8245500ce55120040c4f30","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-27 11:00:10.000000000","message":"Patch Set 1:\n\n(6 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/ad7ef7d09ea547dba0f43424bc6fc199\n\n- teim-code-review https://zuul.teim.app/t/main/build/a7d22aa6b231444985cbcc983b9ef31b : SUCCESS in 9m 20s","accounts_in_message":[],"_revision_number":1},{"id":"e5a80d249e342610c3db65447198add28fdbad5f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 11:06:14.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/68e1971ef29c47ebba13bb9b437dfd81\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/cba29aa67d6e44908f304f19160f0ed3 : SUCCESS in 2m 15s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/3b8bfe3f526a4cd98e24e1d6827dd0e2 : SUCCESS in 2m 25s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/712acfbb1e45456c9f6d7cb12c71513c : SUCCESS in 3m 49s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c892e7cd3eb1484c825396c1b500027e : SUCCESS in 2m 24s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/17bf8697198a427db893a4f91602805f : SUCCESS in 5m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/be64a5e9f46048abb220c12083874e86 : FAILURE in 3m 30s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/c83cf804b07b40248bd3dd38f1fe8452 : SUCCESS in 4m 57s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c58b4d0a7e0d40a2a80ddf0b59854410 : SUCCESS in 7m 30s","accounts_in_message":[],"_revision_number":1},{"id":"36a5640de346ca4c293aa965f750a23999315cea","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-27 13:05:55.000000000","message":"Patch Set 2: Patch Set 1 was rebased\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"c4737954951cf768f6ff297325ef7da50f5eefc9","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-27 13:06:07.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"02dfc95fee3c8372bbde78791813185a34b22fe3","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-27 13:15:12.000000000","message":"Patch Set 2:\n\n(14 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/94e904a991d84e4397dd5baf54235616\n\n- teim-code-review https://zuul.teim.app/t/main/build/978baec2945b4044ae8113fd191a804a : SUCCESS in 8m 58s","accounts_in_message":[],"_revision_number":2},{"id":"26bafca7bd119a6d7f97a061a9bff38364b36cd7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 13:22:11.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3585b44ffae6466b98ffbd292ea53f61\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/10e87f1cb0bc412e9b3e18f96e6cce38 : SUCCESS in 4m 14s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/dfb18db4c3044c34bb6054f7033f8a52 : SUCCESS in 5m 01s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/54b324d10a4f4d849eede72e10f13d00 : SUCCESS in 2m 48s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d92fab1269cc46a39d2cd7199c69ae66 : SUCCESS in 2m 53s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ae9992594ed5410d92287f11d996ee45 : SUCCESS in 6m 02s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/041074f28aa148379c588a4d3033630b : FAILURE in 3m 47s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/db74c891a386461392e6087fece2fa8d : SUCCESS in 2m 52s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/be294f8ebed94255aaf3b75d15263732 : SUCCESS in 7m 39s","accounts_in_message":[],"_revision_number":2},{"id":"f90747792c4e3f6eca4791fb266f480c4e9ed5e4","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-27 13:40:13.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"64e220ddd3a70d64e4de2743b6535aca8f9de614","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-27 14:27:04.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":3},{"id":"e1a14365ed86d184cf6b1839f8bb40cfc786bb63","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-27 14:27:15.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"6d59d4d25859f25f784588503eabcb9ca4459964","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-27 14:29:05.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"0a99f5d977e5365ba94a533880b9bb917a55a57e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-27 14:37:58.000000000","message":"Patch Set 3:\n\n(7 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/256c9d1abf9a46ba8f729db0d968d6b8\n\n- teim-code-review https://zuul.teim.app/t/main/build/4b57ab1161624f22ad1d0d90fc1b5612 : SUCCESS in 10m 35s\n\nWarning:\n  Comments left for invalid file pyproject.toml","accounts_in_message":[],"_revision_number":3},{"id":"1fbd97c71dc601414347efe0082e5773f1e9d7e7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 14:43:27.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/20b53f9f978e4e98ad6113dadc018895\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b91b9a9fe54a47549d1ded0668217e15 : SUCCESS in 5m 19s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/b689b0d71dfc4a57bc90cdb818a97bfd : SUCCESS in 4m 06s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/effd9b8c905547b08ddfb40a76af774a : SUCCESS in 4m 55s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0153e52fa7884c8db82c3f2ae0f9f077 : SUCCESS in 3m 58s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/8f0adf2e789a4ab28d7e9abcf4c3ebdb : SUCCESS in 5m 40s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/771c61fdcd5a4b91997d478c765e85fa : FAILURE in 6m 15s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8d7a4307033144fdb81d3067cbee0a28 : SUCCESS in 2m 47s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/798af194081a4a119010205304430421 : SUCCESS in 8m 49s","accounts_in_message":[],"_revision_number":3},{"id":"f5127aca21eb07ea2e64ea5fd4a7f4cd30d14d2d","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-02-27 15:20:53.000000000","message":"Patch Set 3: Code-Review+1\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"c79e69243ce6cf5d4cf6a21ce987da5cbb16d57a","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-02-27 18:52:35.000000000","message":"Patch Set 3: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/423c9351695a4f008241e287413eb25c\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/16027464c88a435784407dfc639e89d7 : SUCCESS in 2h 51m 23s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/c18923ee643845b780e422592131e846 : FAILURE in 1h 55m 52s","accounts_in_message":[],"_revision_number":3},{"id":"79e56747abf39c673d5606a3357ad985931deb4a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-03-02 07:13:12.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review+1, Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":4},{"id":"f8cea87f58035b61c5c57f9f20bb26837e27f27b","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-03-02 07:13:28.000000000","message":"Patch Set 4: Code-Review-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.\nWarning:\n  Error merging opendev.org/openstack/watcher-dashboard for 978171,2","accounts_in_message":[],"_revision_number":4},{"id":"b79bc1d283c4bbe4336b7aeaf1830b0544506b0f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-03-02 07:13:29.000000000","message":"Patch Set 5: Patch Set 4 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n","accounts_in_message":[],"_revision_number":5},{"id":"e863be5aa8d228393c464f60623ce23ebabfc369","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-02 07:13:39.000000000","message":"Patch Set 5:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":5},{"id":"84be83121a0058f2e1d42751bff42f40177657c9","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-03-02 07:21:47.000000000","message":"Patch Set 5:\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"4c9c2dcfdfce06989e4dbe64c421a2319ebddf78","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-02 07:30:41.000000000","message":"Patch Set 5:\n\n(7 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/dc649ee4e4964719acdce5a19455103b\n\n- teim-code-review https://zuul.teim.app/t/main/build/89da9de937434c409dfbce0c6534c3ee : SUCCESS in 16m 54s","accounts_in_message":[],"_revision_number":5},{"id":"ad7249edcb69cc7461720ec6c4c47ad5c40266c3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-02 07:32:55.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/31ca6c8f73be473992db8cf33ad4da3a\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/951e27d72770472baaee397129f1f5a4 : SUCCESS in 2m 36s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/aa0750402dd542248327d74eb55e35f3 : SUCCESS in 3m 28s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/4c5fbd180c604f28995fd5361e430112 : SUCCESS in 4m 19s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4cf639e75a044808a5156b56d25949b0 : SUCCESS in 3m 43s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/497b666a57c44628b909cb7fa6edaa2a : SUCCESS in 3m 57s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a234f907ca924e9e836a1fdfffe9a635 : FAILURE in 8m 05s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4d3501bcf59e49b4b4f121aac85f5403 : SUCCESS in 2m 22s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9bf75b0eb7214aa9b5bd9755d925c3bc : SUCCESS in 8m 19s","accounts_in_message":[],"_revision_number":5},{"id":"2c4b9420e88fbece39d447350280cefc470b2cf3","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-03-02 10:07:59.000000000","message":"Patch Set 5: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/a6eef065950641b7ac7ad6a42c8bc400\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/380eb9bfb9994644b772c74d63983f39 : SUCCESS in 2h 53m 14s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/50735d73587e4c238586aa917bb0e693 : SUCCESS in 2h 01m 28s","accounts_in_message":[],"_revision_number":5},{"id":"8b8103b5e7505eebeabbdeb005d7a1dddb9e5a69","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-02 10:32:25.000000000","message":"Patch Set 5: Code-Review+2\n\n(5 comments)","accounts_in_message":[],"_revision_number":5},{"id":"562874d8bc9674e563240ea44f7e93a089cff92b","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-03-02 11:36:33.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"990155e58ba7143245a11afd817f63745e4d190f","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-03-03 08:03:55.000000000","message":"Patch Set 5: Code-Review+1","accounts_in_message":[],"_revision_number":5},{"id":"ba65f4d20e376b18c9b5b33891d062da8620622f","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-03 10:20:08.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"9b4b86e5410622f24bc8706a96a4de88af6c81dd","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-03-03 18:33:31.000000000","message":"Patch Set 5: Code-Review+2 Workflow+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"dfcc4c4aa0a9a23172ddcee0cf3a25cbfb07d0c4","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 18:33:48.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"0df6d676741071089f56d1c1c28d84381e5d5809","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 18:42:29.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/219c516d3cf34f60abab87666089492a\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/262ed77b73734c28bc94ce0b83cd2947 : SUCCESS in 3m 44s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/fabafe46ade1484aa8488040889d47be : SUCCESS in 7m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/68e364a370f74201b6a1c2f0d4bab9df : SUCCESS in 3m 04s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/e2b7c10d45e24da68127c046975dd1c2 : SUCCESS in 3m 59s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0cb7ec01423d4f8eb827a0a9e158dd57 : SUCCESS in 5m 39s","accounts_in_message":[],"_revision_number":5},{"id":"8de26eb86f79f6cb0e71dca939801291834ff738","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 18:42:29.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":5},{"id":"c71a53b89bb0d1cea6fac7b95031fbaabc71ae95","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 18:43:18.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/16ce4e35abc74d0f81c9a49a6517f3c4\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0f5f22fc22fe47469b076888ed35dd7f : SUCCESS in 38s","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"e6edaba67f6f9d333ad8151be6f7650cc0a53e95","revisions":{"049e166c2e6da638f422cc54c3ce8081dd3135a2":{"kind":"REWORK","_number":1,"created":"2026-02-27 10:50:30.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/86/978186/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/86/978186/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/1"}}},"commit":{"parents":[{"commit":"ec6e7e80d9c5d2759b9c262da6b2d5c8096f0d1d","subject":"Simplify selected goal retrieval in Audit template CreateForm","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/ec6e7e80d9c5d2759b9c262da6b2d5c8096f0d1d"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-02-27 10:27:31.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-02-27 10:27:31.000000000","tz":0},"subject":"Add microversion discovery for API calls","message":"Add microversion discovery for API calls\n\nDiscover the server\u0027s maximum supported microversion by querying\nthe Watcher API root endpoint, and use it when making API calls\ninstead of hardcoding version 1.1.\n\n- client.py: Add get_max_version() to query the server for its\n  max microversion, and is_microversion_supported() to compare\n  versions using watcherclient APIVersion objects.\n- watcher.py: Accept api_version parameter in Audit.create,\n  Audit.list, Audit.get, ActionPlan.get and Action.get. Callers\n  decide which version to use rather than the API layer.\n- Views: Discover max version once per request using\n  @memoized.memoized_method and pass it to all API calls.\n- forms.py: Discover max version before creating audits.\n- Update tests to match new api_version plumbing and add\n  coverage for is_microversion_supported.\n\nAssisted-By: Cursor (claude-4.6-opus-high)\n\nChange-Id: I9eb6ff4e1283ccc5e3907c90946801ebff48353e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/049e166c2e6da638f422cc54c3ce8081dd3135a2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/049e166c2e6da638f422cc54c3ce8081dd3135a2"}]},"branch":"refs/heads/master"},"01a52b8a86e3e9771bb72f355ca1d2a14d727d81":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-02-27 13:05:55.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/86/978186/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/86/978186/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/2"}}},"commit":{"parents":[{"commit":"f2bc92cfa61c27d9e6b56f8e09459ac67615f930","subject":"Simplify selected goal retrieval in Audit template CreateForm","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/f2bc92cfa61c27d9e6b56f8e09459ac67615f930"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-02-27 10:27:31.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-02-27 13:05:55.000000000","tz":0},"subject":"Add microversion discovery for API calls","message":"Add microversion discovery for API calls\n\nDiscover the server\u0027s maximum supported microversion by querying\nthe Watcher API root endpoint, and use it when making API calls\ninstead of hardcoding version 1.1.\n\n- client.py: Add get_max_version() to query the server for its\n  max microversion, and is_microversion_supported() to compare\n  versions using watcherclient APIVersion objects.\n- watcher.py: Accept api_version parameter in Audit.create,\n  Audit.list, Audit.get, ActionPlan.get and Action.get. Callers\n  decide which version to use rather than the API layer.\n- Views: Discover max version once per request using\n  @memoized.memoized_method and pass it to all API calls.\n- forms.py: Discover max version before creating audits.\n- Update tests to match new api_version plumbing and add\n  coverage for is_microversion_supported.\n\nAssisted-By: Cursor (claude-4.6-opus-high)\n\nChange-Id: I9eb6ff4e1283ccc5e3907c90946801ebff48353e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/01a52b8a86e3e9771bb72f355ca1d2a14d727d81"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/01a52b8a86e3e9771bb72f355ca1d2a14d727d81"}]},"branch":"refs/heads/master","description":"Rebase"},"701bd46b813fa60cbc8c9ba789c360be9d221df1":{"kind":"REWORK","_number":3,"created":"2026-02-27 14:27:04.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/86/978186/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/86/978186/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/3"}}},"commit":{"parents":[{"commit":"f2bc92cfa61c27d9e6b56f8e09459ac67615f930","subject":"Simplify selected goal retrieval in Audit template CreateForm","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/f2bc92cfa61c27d9e6b56f8e09459ac67615f930"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-02-27 10:27:31.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-02-27 14:25:41.000000000","tz":0},"subject":"Add microversion discovery and gating for API calls","message":"Add microversion discovery and gating for API calls\n\nPreviously the dashboard hardcoded microversion 1.1 in every\nWatcher API call.  This broke on servers that only support 1.0\nand could not take advantage of newer versions (e.g. 1.x).\n\nThis patch queries the Watcher API root endpoint (GET /) to\ndiscover the server\u0027s maximum supported microversion, then uses\nthat value when making API calls.  UI elements tied to a specific\nmicroversion are shown only when the server actually supports it.\n\n- client.py: Add get_max_version() to discover the server\u0027s max\n  microversion, and is_microversion_supported() to check whether\n  a given version is available.  Both use watcherclient APIVersion\n  objects for correct semantic comparison.\n- watcher.py: Replace hardcoded api_version\u003d\u00271.1\u0027 with an\n  api_version\u003dNone parameter on Audit.create, Audit.list,\n  Audit.get, ActionPlan.get and Action.get.  When None is passed\n  the client defaults to version 1.0.\n- Views: Cache the discovered max version once per request using\n  @memoized.memoized_method and pass it to every API call.\n- forms.py: Show the audit start_time/end_time fields only when\n  the server supports microversion 1.1 or higher.\n- Tests: Cover api_version propagation for each API method and\n  version comparison via is_microversion_supported.\n\nAdding support for a new microversion (eg. 1.x):\n\n  1. Add a named constant in common/client.py.\n  2. Add or update the API method in api/watcher.py with\n     api_version\u003dNone if it does not already accept one.\n  3. Gate UI elements in the view or form using\n     is_microversion_supported(max_ver, NEW_CONSTANT).\n  4. Pass the discovered max version to the API call.\n  5. Add tests for the gating logic and API passthrough.\n\nAssisted-By: Cursor (claude-4.6-opus-high)\n\nChange-Id: I9eb6ff4e1283ccc5e3907c90946801ebff48353e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/701bd46b813fa60cbc8c9ba789c360be9d221df1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/701bd46b813fa60cbc8c9ba789c360be9d221df1"}]},"branch":"refs/heads/master"},"4bca683f65d27a4633efc8558a5d48df2d41407f":{"kind":"REWORK","_number":4,"created":"2026-03-02 07:13:12.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/86/978186/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/86/978186/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/4"}}},"commit":{"parents":[{"commit":"f2bc92cfa61c27d9e6b56f8e09459ac67615f930","subject":"Simplify selected goal retrieval in Audit template CreateForm","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/f2bc92cfa61c27d9e6b56f8e09459ac67615f930"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-02-27 10:27:31.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-03-02 07:12:37.000000000","tz":0},"subject":"Add microversion discovery and gating for API calls","message":"Add microversion discovery and gating for API calls\n\nPreviously Audit.create, Audit.list and Audit.get hardcoded\napi_version\u003d\u00271.1\u0027 (MV_START_END) in every call to watcherclient.\nThis would break against a Watcher server that only supports\nmicroversion 1.0.\n\nAdd get_max_version() in common/client.py to discover the\nserver\u0027s maximum supported microversion by querying the API\nroot endpoint, and is_microversion_supported() to compare it\nagainst a required version using watcherclient APIVersion\nobjects for correct semantic comparison.\n\nReplace the hardcoded api_version\u003d\u00271.1\u0027 in Audit.create,\nAudit.list and Audit.get with an api_version\u003dNone parameter\nso the caller decides which version to request.  Views and\nforms now discover the server\u0027s max version (cached per\nrequest via @memoized_method), check whether MV_START_END\nis supported, and pass the specific version constant only\nwhen it is -- otherwise they pass None which defaults to 1.0.\n\nIn audits/forms.py the start_time and end_time form fields\nare now hidden when the server does not support MV_START_END,\nso users cannot submit values the server cannot accept.\n\nTests are updated to cover api_version propagation and\nis_microversion_supported comparison logic.\n\nAdding support for a new microversion (e.g. 1.2):\n\n  1. Add a named constant in common/client.py\n     (e.g. MV_NEW_FEATURE \u003d \u00271.2\u0027).\n  2. If the API method in api/watcher.py does not already\n     accept api_version\u003dNone, add that parameter and pass\n     it through to watcherclient().\n  3. In the view or form, discover the server\u0027s max version\n     via get_max_version() and gate the call:\n       version \u003d MV_NEW_FEATURE if is_microversion_supported(\n           max_ver, MV_NEW_FEATURE) else None\n     Pass version as api_version to the API method.\n  4. Hide or show UI elements based on\n     is_microversion_supported(max_ver, MV_NEW_FEATURE).\n  5. Add tests for the gating logic and api_version\n     propagation.\n\nAssisted-By: Cursor (claude-4.6-opus-high)\n\nChange-Id: I9eb6ff4e1283ccc5e3907c90946801ebff48353e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/4bca683f65d27a4633efc8558a5d48df2d41407f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/4bca683f65d27a4633efc8558a5d48df2d41407f"}]},"branch":"refs/heads/master"},"e6edaba67f6f9d333ad8151be6f7650cc0a53e95":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2026-03-02 07:13:29.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/86/978186/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/86/978186/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/86/978186/5"}}},"commit":{"parents":[{"commit":"e5d4b16788c12eb02360f1cd487a8e457f958e1f","subject":"Simplify selected goal retrieval in Audit template CreateForm","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/e5d4b16788c12eb02360f1cd487a8e457f958e1f"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-02-27 10:27:31.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-03-02 07:13:29.000000000","tz":0},"subject":"Add microversion discovery and gating for API calls","message":"Add microversion discovery and gating for API calls\n\nPreviously Audit.create, Audit.list and Audit.get hardcoded\napi_version\u003d\u00271.1\u0027 (MV_START_END) in every call to watcherclient.\nThis would break against a Watcher server that only supports\nmicroversion 1.0.\n\nAdd get_max_version() in common/client.py to discover the\nserver\u0027s maximum supported microversion by querying the API\nroot endpoint, and is_microversion_supported() to compare it\nagainst a required version using watcherclient APIVersion\nobjects for correct semantic comparison.\n\nReplace the hardcoded api_version\u003d\u00271.1\u0027 in Audit.create,\nAudit.list and Audit.get with an api_version\u003dNone parameter\nso the caller decides which version to request.  Views and\nforms now discover the server\u0027s max version (cached per\nrequest via @memoized_method), check whether MV_START_END\nis supported, and pass the specific version constant only\nwhen it is -- otherwise they pass None which defaults to 1.0.\n\nIn audits/forms.py the start_time and end_time form fields\nare now hidden when the server does not support MV_START_END,\nso users cannot submit values the server cannot accept.\n\nTests are updated to cover api_version propagation and\nis_microversion_supported comparison logic.\n\nAdding support for a new microversion (e.g. 1.2):\n\n  1. Add a named constant in common/client.py\n     (e.g. MV_NEW_FEATURE \u003d \u00271.2\u0027).\n  2. If the API method in api/watcher.py does not already\n     accept api_version\u003dNone, add that parameter and pass\n     it through to watcherclient().\n  3. In the view or form, discover the server\u0027s max version\n     via get_max_version() and gate the call:\n       version \u003d MV_NEW_FEATURE if is_microversion_supported(\n           max_ver, MV_NEW_FEATURE) else None\n     Pass version as api_version to the API method.\n  4. Hide or show UI elements based on\n     is_microversion_supported(max_ver, MV_NEW_FEATURE).\n  5. Add tests for the gating logic and api_version\n     propagation.\n\nAssisted-By: Cursor (claude-4.6-opus-high)\n\nChange-Id: I9eb6ff4e1283ccc5e3907c90946801ebff48353e\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/e6edaba67f6f9d333ad8151be6f7650cc0a53e95"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/e6edaba67f6f9d333ad8151be6f7650cc0a53e95"}]},"branch":"refs/heads/master","description":"Rebase"}},"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":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}}]}],"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":{}}},{"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":{}}},{"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":{}}}]}
