)]}'
{"id":"openstack%2Fopenstack-ansible-plugins~975123","triplet_id":"openstack%2Fopenstack-ansible-plugins~master~I6fe6890fee786d5dcfd29bf0b7ad1749923b95d3","project":"openstack/openstack-ansible-plugins","branch":"master","attention_set":{},"removed_from_attention_set":{"32666":{"account":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"last_update":"2026-02-03 08:41:46.000000000","reason":"Change was abandoned"},"28619":{"account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"last_update":"2026-02-03 08:41:46.000000000","reason":"Change was abandoned"},"31542":{"account":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"last_update":"2026-02-03 08:41:46.000000000","reason":"Change was abandoned"}},"hashtags":[],"change_id":"I6fe6890fee786d5dcfd29bf0b7ad1749923b95d3","subject":"Add reject_when filter","status":"ABANDONED","created":"2026-01-29 09:12:39.000000000","updated":"2026-02-03 08:41:46.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"0fc4fbd4e34afa4fae5e7a4c8c77a0ed346bbe96","_number":975123,"virtual_id_number":975123,"owner":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-01-29 10:53:41.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"}],"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":{"recommended":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-01-30 10:20:44.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"}],"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"}],"values":{"-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-01-29 10:53:41.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-01-30 10:20:44.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"state":"REVIEWER"},{"updated":"2026-01-30 10:20:44.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"state":"REVIEWER"},{"updated":"2026-01-30 10:20:44.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"state":"REVIEWER"},{"updated":"2026-01-30 10:20:44.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"state":"REVIEWER"}],"messages":[{"id":"42b7ea517e74d720a870a7bc873ae6c655cf2343","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"date":"2026-01-29 09:12:39.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"648158e0ddf4725eccc5f6b383e20382e065ff1e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-29 10:53:41.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/98c1fdfbb4b040a69551f91489a4dde6\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/17b286c079244a35b201ed9c98c7672d : SUCCESS in 2m 20s\n- openstack-ansible-tox-molecule-debian-bookworm https://zuul.opendev.org/t/openstack/build/1620001042354be9a7bc70e6df423230 : SUCCESS in 4m 23s\n- openstack-ansible-tox-molecule-debian-trixie https://zuul.opendev.org/t/openstack/build/f22aa3cde1984e61ba3ae337ef9fb26b : SUCCESS in 6m 58s\n- openstack-ansible-tox-molecule-ubuntu-noble https://zuul.opendev.org/t/openstack/build/5465499b12404466a1012018eed67712 : SUCCESS in 7m 16s\n- openstack-ansible-tox-molecule-centos-10-stream https://zuul.opendev.org/t/openstack/build/c47e49b544a24e138ce09ae6cbc34fb6 : SUCCESS in 6m 12s\n- openstack-ansible-tox-molecule-rockylinux-10 https://zuul.opendev.org/t/openstack/build/56dc0096885449a8a2e5c3092f451472 : SUCCESS in 6m 35s (non-voting)\n- openstack-ansible-upgrade-infra_lxc-ubuntu-noble https://zuul.opendev.org/t/openstack/build/725a450fe1544c018dbff934e49052f7 : SUCCESS in 1h 21m 13s\n- openstack-ansible-deploy-infra_lxc-centos-10-stream https://zuul.opendev.org/t/openstack/build/596ff70efa4a4fad9d5f7ff5683d82b5 : SUCCESS in 1h 27m 38s\n- openstack-ansible-deploy-infra_lxc-debian-bookworm https://zuul.opendev.org/t/openstack/build/ae66d5e836a7483ea07ed7659c29c33f : SUCCESS in 1h 14m 36s\n- openstack-ansible-deploy-infra_lxc-debian-trixie https://zuul.opendev.org/t/openstack/build/07a6b5dc313242b79001a6c35e264277 : SUCCESS in 1h 22m 52s\n- openstack-ansible-deploy-infra_lxc-rockylinux-10 https://zuul.opendev.org/t/openstack/build/2acd9ccaa09041f285ca921f2b954124 : SUCCESS in 1h 27m 55s\n- openstack-ansible-deploy-infra_lxc_tls-rockylinux-10 https://zuul.opendev.org/t/openstack/build/d88c3885b0fb4363a7dfca88ce4c3372 : SUCCESS in 46m 21s\n- openstack-ansible-deploy-infra_lxc-ubuntu-noble https://zuul.opendev.org/t/openstack/build/a6cc95a4633246438e6b1ef34555f399 : SUCCESS in 39m 30s\n- openstack-ansible-deploy-infra_lxc_stepca-ubuntu-noble https://zuul.opendev.org/t/openstack/build/127ca3a7fc35477bbffda058896ecf38 : SUCCESS in 1h 00m 13s\n- openstack-ansible-deploy-infra_lxc_tls-ubuntu-noble https://zuul.opendev.org/t/openstack/build/c9282ec68ec144b9825b20895c210114 : SUCCESS in 1h 02m 07s","accounts_in_message":[],"_revision_number":1},{"id":"9cc9dbe97210142060441cc2649f69d6298a94a0","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-01-30 10:20:44.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"0fc4fbd4e34afa4fae5e7a4c8c77a0ed346bbe96","tag":"autogenerated:gerrit:abandon","author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"date":"2026-02-03 08:41:46.000000000","message":"Abandoned\n\nbetter version of rejectattr now merging","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"468c9aa6b6fd9f2532416ed983e52f82942ed8f5","revisions":{"468c9aa6b6fd9f2532416ed983e52f82942ed8f5":{"kind":"REWORK","_number":1,"created":"2026-01-29 09:12:39.000000000","uploader":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"ref":"refs/changes/23/975123/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-ansible-plugins","ref":"refs/changes/23/975123/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-ansible-plugins refs/changes/23/975123/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-ansible-plugins refs/changes/23/975123/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-ansible-plugins refs/changes/23/975123/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-ansible-plugins refs/changes/23/975123/1"}}},"commit":{"parents":[{"commit":"63f32430c24df1d82fe572b9c729ee957aa13a7b","subject":"Update for CONTRIBUTING.rst file","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-plugins/commit/63f32430c24df1d82fe572b9c729ee957aa13a7b"}]}],"author":{"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","date":"2026-01-29 08:40:29.000000000","tz":0},"committer":{"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","date":"2026-01-29 09:10:15.000000000","tz":0},"subject":"Add reject_when filter","message":"Add reject_when filter\n\nAnsible 2.19 can no longer use selectattr/rejectattr to select or\nreject using keys that are not present in all elements of the input\ndata.\n\nIn many data structures in openstack-ansible we use an optional key\nusually named \"condition\" which allows lists to be filtered on some\nother condition before being used.\n\nUsing builtin constructs in ansible 2.19 to emulate the old behaviour\nis difficult, requiring an additional step of filtering out list\nelements that do not define the condition, selecting/rejecting those\nwhich meet the condition, and then recombining the two sets of results.\n\nThe reject_when filter can be used as follows:\n\n  input | reject_when(\u0027condition\u0027)\n  or\n  input | reject_when(\u0027use_uwsgi\u0027, false)\n\n  # default parameters\n  input | reject_when(key\u003d\u0027condition\u0027, when\u003dfalse, default\u003dtrue)\n\nAny input elements that do not define `condition` assume the default\nvalue. If the resulting value matches `when`, the element is rejected.\n\nChange-Id: I6fe6890fee786d5dcfd29bf0b7ad1749923b95d3\nSigned-off-by: jonathan.rosser@rd.bbc.co.uk\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-plugins/commit/468c9aa6b6fd9f2532416ed983e52f82942ed8f5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-plugins/commit/468c9aa6b6fd9f2532416ed983e52f82942ed8f5"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"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":{}}},{"name":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"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":{}}},{"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":{}}}]}
