)]}'
{"id":"openstack%2Fopenstack-helm~1009390","triplet_id":"openstack%2Fopenstack-helm~master~I2e93809fe2a801d8796cf94f7167f9aa145b4162","project":"openstack/openstack-helm","branch":"master","topic":"watcher-api-uwsgi","attention_set":{},"removed_from_attention_set":{"39426":{"account":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"last_update":"2026-10-10 05:37:40.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I2e93809fe2a801d8796cf94f7167f9aa145b4162","subject":"watcher: Run the API under uWSGI","status":"MERGED","created":"2026-10-08 02:16:30.000000000","updated":"2026-10-10 08:59:04.000000000","submitted":"2026-10-10 05:37:40.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1009390-watcher-api-uwsgi","meta_rev_id":"0ceab7e0649ec833a94d193140c19a0bf50b5735","_number":1009390,"virtual_id_number":1009390,"owner":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":0,"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-10-10 05:37:40.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":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"all":[{"value":2,"date":"2026-10-10 02:36:55.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":2,"date":"2026-10-09 20:02:14.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},{"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":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"all":[{"value":1,"date":"2026-10-10 02:36:55.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":0,"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},{"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}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-10-08 06:45:00.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-10-09 20:02:14.000000000","updated_by":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"reviewer":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"state":"REVIEWER"},{"updated":"2026-10-10 02:36:55.000000000","updated_by":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"reviewer":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"state":"REVIEWER"}],"messages":[{"id":"98e8929798cb3282b6877e96904e88b8e4455c03","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"date":"2026-10-08 02:16:30.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"5e030fa488c1629a28b123a8648fa9ac13068ba3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-08 06:45:00.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/281f90c98654411b873f5957fe59da1b\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3c72e1d7d4d24a4299c7d8743f2c8cff : SUCCESS in 3m 22s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/21ff728b626f4031ac699c70f79599d8 : SUCCESS in 3m 08s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/5f812393cce0404796ad09711f66202c : SUCCESS in 3m 41s\n- openstack-helm-pre-commit https://zuul.opendev.org/t/openstack/build/55601461d02b4d4fbf6863ec2fef6f3e : SUCCESS in 2m 38s\n- openstack-helm-build-charts https://zuul.opendev.org/t/openstack/build/fb86383ac4a64892bce08b2bbfc95a7a : SUCCESS in 4m 28s\n- openstack-helm-compute-kit-2025-2-ubuntu_noble https://zuul.opendev.org/t/openstack/build/27e71dd0ccee4648a3b9747972611b82 : SUCCESS in 1h 03m 57s\n- openstack-helm-compute-kit-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/3d42ed078d224efcaf3eb3b5291cb10a : SUCCESS in 1h 46m 01s\n- openstack-helm-tls-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/fc12ed1948104f3eb76d051d2c04c9ea : SUCCESS in 1h 06m 45s\n- openstack-helm-crd-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/aeb0e12d9a8c41da9d3e5cc00b6ebbce : SUCCESS in 1h 49m 04s\n- openstack-helm-operators-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/8cd686c544c748b2aa5f3de29d6abd98 : SUCCESS in 1h 04m 11s\n- openstack-helm-compute-kit-2026-2-ubuntu_resolute https://zuul.opendev.org/t/openstack/build/0872b1909f094b4aa0fd291f57fa7949 : SUCCESS in 1h 12m 30s\n- openstack-helm-logging https://zuul.opendev.org/t/openstack/build/d9d976eec8b344be8beccbb2d460f160 : SUCCESS in 42m 29s\n- openstack-helm-monitoring https://zuul.opendev.org/t/openstack/build/bd564a70be324376b047061d9bda9a42 : SUCCESS in 30m 32s","accounts_in_message":[],"_revision_number":1},{"id":"7c8160ab725bd98f171fb5f67c9c388a45feb7f9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"real_author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"date":"2026-10-09 18:41:46.000000000","message":"Patch Set 2: Patch Set 1 was rebased on behalf of \u003cGERRIT_ACCOUNT_39426\u003e\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"}],"_revision_number":2},{"id":"0b349a5f4bcf369bae02101681ec2d23926a5de0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-09 19:25:13.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/01fa5639b1a84cfebbc1e463fdf93098\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0995d485289c47dd9c33799cabb530c5 : SUCCESS in 3m 32s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0ac63021238641d3ab81695cc1909a80 : SUCCESS in 2m 24s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/be5510f4cb504835b2b6ad231f399249 : SUCCESS in 3m 57s\n- openstack-helm-pre-commit https://zuul.opendev.org/t/openstack/build/73cfacfdc9774fb3b823d0e4ed6f2569 : SUCCESS in 1m 59s\n- openstack-helm-build-charts https://zuul.opendev.org/t/openstack/build/4a3e658df716465caed7c723700f1684 : SUCCESS in 3m 35s\n- openstack-helm-watcher-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/2c51a1916abd4d5b81aea30298ff6ec7 : SUCCESS in 39m 26s","accounts_in_message":[],"_revision_number":2},{"id":"88458380e896979213529ed1531f13765f1125d6","author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"date":"2026-10-09 20:02:14.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"99a79c52aede499cf6bdc4931baf7b2a01acd9df","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-10-10 02:36:55.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"2f81b671d68bc9015544ddd5cfb53b50301b74ea","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-10 02:41:18.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"4f3c4e450d92a3be664f515c25f6623c76f0fe35","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-10 05:37:40.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/acc94d4ba2d64e7c95473ede2671903a\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c4e461718b8946b898b850419d09236f : SUCCESS in 3m 52s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/86ee28a966d44737ba84945e0404213c : SUCCESS in 2m 31s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/339b36a42930463782ad2abbff7d127c : SUCCESS in 3m 40s\n- openstack-helm-compute-kit-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/01090c0747a44c09bebaa3613b30b05e : SUCCESS in 59m 53s\n- openstack-helm-logging https://zuul.opendev.org/t/openstack/build/946051ac8b6f491280c5a2e74ccafcb3 : SUCCESS in 27m 03s\n- openstack-helm-monitoring https://zuul.opendev.org/t/openstack/build/24f3577667b548a1bc487e09cb6ed59a : SUCCESS in 25m 58s","accounts_in_message":[],"_revision_number":2},{"id":"cbc2e89d074f40add67362496f9a0e60adf15e88","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-10 05:37:40.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"0ceab7e0649ec833a94d193140c19a0bf50b5735","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-10 08:59:04.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f4908afa360a4dd6b69c556008544312\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/684c057e8e8841d9bf211c1d0af3a701 : SUCCESS in 1m 06s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/30d34a9d151f4ddaa3b8809fb473a255 : SUCCESS in 1m 12s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"3fd96ca685887e21e82f437d87ad77054e2a7e06","revisions":{"4ca546c5679f04a6620cd91f921b105f4419195b":{"kind":"REWORK","_number":1,"created":"2026-10-08 02:16:30.000000000","uploader":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"ref":"refs/changes/90/1009390/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-helm","ref":"refs/changes/90/1009390/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/90/1009390/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/90/1009390/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/90/1009390/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-helm refs/changes/90/1009390/1"}}},"commit":{"parents":[{"commit":"2553ec68d5f2bcb72597c0292330d560c042f5b7","subject":"Merge \"feat(nova): run the conductor and scheduler as StatefulSets\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/2553ec68d5f2bcb72597c0292330d560c042f5b7"}]}],"author":{"name":"Simon Zhou","email":"td@fivetime.ltd","date":"2026-10-08 01:56:01.000000000","tz":0},"committer":{"name":"Simon Zhou","email":"td@fivetime.ltd","date":"2026-10-08 02:15:31.000000000","tz":0},"subject":"watcher: Run the API under uWSGI","message":"watcher: Run the API under uWSGI\n\nFrom Watcher 2026.2 all services run in native threading mode by\ndefault, eventlet patching being opt-in. The watcher-api command still\nserves through oslo.service\u0027s wsgi.Server, which oslo.service refuses\nwith the threading backend:\n\n  UnsupportedBackendError: The oslo.service.wsgi.Server class is\n  deprecated and cannot be used with the threading backend.\n\nThe process exits a few seconds after start, so with a 2026.2 image the\nAPI pod never becomes ready.\n\nWatcher ships a WSGI entry point, watcher.wsgi.api:application, which is\nwhat its devstack plugin runs under uWSGI. Run it the same way here, as\nthe heat and other charts run theirs: render conf.watcher_api_uwsgi into\nwatcher-api-uwsgi.ini, with http-socket on the infra-optim API port\nunless set, so the probe and the Service keep working, and start\nuwsgi --ini on it. The entry point reads /etc/watcher/watcher.conf, the\nfile the command was given.\n\nAssisted-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I2e93809fe2a801d8796cf94f7167f9aa145b4162\nSigned-off-by: Simon Zhou \u003ctd@fivetime.ltd\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/4ca546c5679f04a6620cd91f921b105f4419195b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/4ca546c5679f04a6620cd91f921b105f4419195b"}]},"branch":"refs/heads/master"},"3fd96ca685887e21e82f437d87ad77054e2a7e06":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-10-09 18:41:46.000000000","uploader":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"real_uploader":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"ref":"refs/changes/90/1009390/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-helm","ref":"refs/changes/90/1009390/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/90/1009390/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/90/1009390/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/90/1009390/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-helm refs/changes/90/1009390/2"}}},"commit":{"parents":[{"commit":"e7357bd7528db1af230fb16ebc8764b72da0460e","subject":"Run the watcher job in the check pipeline","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/e7357bd7528db1af230fb16ebc8764b72da0460e"}]}],"author":{"name":"Simon Zhou","email":"td@fivetime.ltd","date":"2026-10-08 01:56:01.000000000","tz":0},"committer":{"name":"fivetime","email":"td@fivetime.ltd","date":"2026-10-09 18:41:46.000000000","tz":0},"subject":"watcher: Run the API under uWSGI","message":"watcher: Run the API under uWSGI\n\nFrom Watcher 2026.2 all services run in native threading mode by\ndefault, eventlet patching being opt-in. The watcher-api command still\nserves through oslo.service\u0027s wsgi.Server, which oslo.service refuses\nwith the threading backend:\n\n  UnsupportedBackendError: The oslo.service.wsgi.Server class is\n  deprecated and cannot be used with the threading backend.\n\nThe process exits a few seconds after start, so with a 2026.2 image the\nAPI pod never becomes ready.\n\nWatcher ships a WSGI entry point, watcher.wsgi.api:application, which is\nwhat its devstack plugin runs under uWSGI. Run it the same way here, as\nthe heat and other charts run theirs: render conf.watcher_api_uwsgi into\nwatcher-api-uwsgi.ini, with http-socket on the infra-optim API port\nunless set, so the probe and the Service keep working, and start\nuwsgi --ini on it. The entry point reads /etc/watcher/watcher.conf, the\nfile the command was given.\n\nAssisted-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I2e93809fe2a801d8796cf94f7167f9aa145b4162\nSigned-off-by: Simon Zhou \u003ctd@fivetime.ltd\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/3fd96ca685887e21e82f437d87ad77054e2a7e06"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/3fd96ca685887e21e82f437d87ad77054e2a7e06"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"base":"2553ec68d5f2bcb72597c0292330d560c042f5b7","ours":"4ca546c5679f04a6620cd91f921b105f4419195b","theirs":"e7357bd7528db1af230fb16ebc8764b72da0460e","merge_strategy":"recursive","contains_conflicts":false}}},"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":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
