)]}'
{"id":"openstack%2Fopenstack-ansible-os_nova~944640","triplet_id":"openstack%2Fopenstack-ansible-os_nova~stable%2F2024.2~I7a57c829803fc5baa8b1d3a1805c102f04b8ab2c","project":"openstack/openstack-ansible-os_nova","branch":"stable/2024.2","topic":"fix_ansible_difference_filtering-stable/2024.2","attention_set":{},"removed_from_attention_set":{"28619":{"account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"last_update":"2025-03-18 15:23:30.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I7a57c829803fc5baa8b1d3a1805c102f04b8ab2c","subject":"Fix ansible `difference()` filter use","status":"MERGED","created":"2025-03-17 09:46:20.000000000","updated":"2025-03-18 15:24:39.000000000","submitted":"2025-03-18 15:23:30.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":"944640-fix_ansible_difference_filtering-stable/2024.2","cherry_pick_of_change":944283,"cherry_pick_of_patch_set":2,"meta_rev_id":"4b49ec3f74ef1d89cbed69f4ec38fdcc605519ad","_number":944640,"virtual_id_number":944640,"owner":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},{"value":0,"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-03-18 15:23:30.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":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"all":[{"value":2,"date":"2025-03-18 13:49:02.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},{"value":2,"date":"2025-03-17 09:47:01.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"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":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"all":[{"value":1,"date":"2025-03-18 13:49:02.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},{"value":0,"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"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},"Backport-Candidate":{"all":[{"value":0,"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},{"value":0,"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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"}],"CC":[{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-03-17 09:46:20.000000000","updated_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"reviewer":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"state":"CC"},{"updated":"2025-03-17 11:54:52.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":"2025-03-18 13:49:02.000000000","updated_by":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"reviewer":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"state":"REVIEWER"}],"messages":[{"id":"67e3ff9a93529b890e1b17d47d66afae9ad761bc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2025-03-17 09:46:20.000000000","message":"Patch Set 1: Cherry Picked from branch master.","accounts_in_message":[],"_revision_number":1},{"id":"974f8847a33874f799df876e5bf484e0216ac327","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2025-03-17 09:47:01.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"384ea910576000aa5d080f3a82c29b7a7ef26115","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-17 11:54:52.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/db979a9c79254858977845d07f178fc5\n\n- openstack-ansible-linters-ubuntu-noble https://zuul.opendev.org/t/openstack/build/d9e081ddd2e54920abc2e5f6ef186f79 : SUCCESS in 6m 09s\n- openstack-ansible-deploy-aio_metal-debian-bookworm https://zuul.opendev.org/t/openstack/build/3bf07722b3a74672850a0bc36df28749 : SUCCESS in 1h 26m 53s\n- openstack-ansible-deploy-aio_metal-centos-9-stream https://zuul.opendev.org/t/openstack/build/c9d204dc4b624bf48ed291ceac6f9d90 : SUCCESS in 1h 08m 10s (non-voting)\n- openstack-ansible-deploy-aio_metal-rockylinux-9 https://zuul.opendev.org/t/openstack/build/a1fa0cc3624747569ab7f66f582e2723 : SUCCESS in 1h 21m 04s\n- openstack-ansible-deploy-aio_metal-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/d297d7df91b44449b3074f3ea948d3ea : SUCCESS in 1h 12m 50s\n- openstack-ansible-deploy-aio_metal-ubuntu-noble https://zuul.opendev.org/t/openstack/build/c262ba0c22274f3abc9c9b5fc7ba1a7c : SUCCESS in 1h 14m 23s\n- openstack-ansible-deploy-aio_metal_tls-rockylinux-9 https://zuul.opendev.org/t/openstack/build/c090357d13274ad780bb2dba5205644c : SUCCESS in 1h 21m 37s\n- openstack-ansible-deploy-aio_metal_tls-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/170850ecaca7447dbc879170551c6136 : SUCCESS in 40m 13s\n- openstack-ansible-deploy-aio_metal_tls-ubuntu-noble https://zuul.opendev.org/t/openstack/build/7d93a9020bac4fe993082e4ec280cb04 : SUCCESS in 1h 15m 01s\n- openstack-ansible-upgrade-aio_metal-rockylinux-9 https://zuul.opendev.org/t/openstack/build/f7f81c7e2b254554aeecdfedf293f455 : SUCCESS in 1h 49m 17s\n- openstack-ansible-upgrade-aio_metal-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/3b91ee6494f040159166bfaf959528c9 : SUCCESS in 1h 59m 47s\n- openstack-ansible-upgrade-aio_metal_tls-rockylinux-9 https://zuul.opendev.org/t/openstack/build/fab3db15d20145d491b18aba6d0f0232 : SUCCESS in 1h 50m 12s\n- openstack-ansible-upgrade-aio_metal_tls-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/474975b3df5b4de2a57f264942e03aac : SUCCESS in 1h 51m 44s\n- openstack-ansible-deploy-aio_distro_metal-rockylinux-9 https://zuul.opendev.org/t/openstack/build/55712ba88b4346809f36d60f5a03fad1 : SUCCESS in 34m 28s (non-voting)\n- openstack-ansible-deploy-aio_distro_metal-ubuntu-noble https://zuul.opendev.org/t/openstack/build/7f9f911849494cf2bae6c42ba54eaee5 : SUCCESS in 58m 55s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dc885324bcca4a5197dac921bb90b93b : SUCCESS in 4m 10s","accounts_in_message":[],"_revision_number":1},{"id":"f9f2839d2839db82b2d0819a70ef6d6986880f06","author":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"date":"2025-03-18 13:49:02.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"cf4a8e91e1a61887c391d463138acf0d2a8f3044","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-18 13:51:12.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"99776e7877bd30dcbbdae8a6fa676c0ded29abae","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-18 15:23:30.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5ee07540b3c749c6845305ccd378ec4e\n\n- openstack-ansible-linters-ubuntu-noble https://zuul.opendev.org/t/openstack/build/e85a7529091e4cc6855b04a727049bd4 : SUCCESS in 3m 57s\n- openstack-ansible-deploy-aio_metal-debian-bookworm https://zuul.opendev.org/t/openstack/build/1d9ef1c7172944e8b925c1691a10c8ea : SUCCESS in 1h 18m 37s\n- openstack-ansible-deploy-aio_metal-rockylinux-9 https://zuul.opendev.org/t/openstack/build/3e03a27957fa42bfad4d2fd36c39bc61 : SUCCESS in 1h 26m 03s\n- openstack-ansible-deploy-aio_metal-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/59bf824cae3f409b8c65e28bf2eba05b : SUCCESS in 1h 21m 11s\n- openstack-ansible-deploy-aio_metal-ubuntu-noble https://zuul.opendev.org/t/openstack/build/6b80f033460a495f802353185b9d6d41 : SUCCESS in 37m 28s\n- openstack-ansible-deploy-aio_metal_tls-rockylinux-9 https://zuul.opendev.org/t/openstack/build/e5b5986b17ee41018c3f5f65e4fe926f : SUCCESS in 1h 23m 44s\n- openstack-ansible-deploy-aio_metal_tls-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/e88f809e1f2c4ceebe9616f41944df78 : SUCCESS in 1h 20m 24s\n- openstack-ansible-deploy-aio_metal_tls-ubuntu-noble https://zuul.opendev.org/t/openstack/build/47b73193759d41c6874bffc6e936f7c2 : SUCCESS in 42m 01s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/209ff3e5e26143c69683b205ea55161b : SUCCESS in 5m 28s","accounts_in_message":[],"_revision_number":1},{"id":"254032cadcc94aab5054b2289e8e6792b8228c12","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-18 15:23:30.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"4b49ec3f74ef1d89cbed69f4ec38fdcc605519ad","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-18 15:24:39.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/42d465cb96c047a8bd1905f3bcae52b4\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cccc10d3684d4fea99008694a2e5c64d : SUCCESS in 52s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"5ce463551aeda103d218d4bc66347facaa625fcf","revisions":{"5ce463551aeda103d218d4bc66347facaa625fcf":{"kind":"REWORK","_number":1,"created":"2025-03-17 09:46:20.000000000","uploader":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"ref":"refs/changes/40/944640/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-ansible-os_nova","ref":"refs/changes/40/944640/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/40/944640/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/40/944640/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/40/944640/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/40/944640/1"}}},"commit":{"parents":[{"commit":"f8148653a16add4b70ccb9050b5dc66259be5dfa","subject":"Update TOX_CONSTRAINTS_FILE for stable/2024.2","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-os_nova/commit/f8148653a16add4b70ccb9050b5dc66259be5dfa"}]}],"author":{"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","date":"2025-03-13 12:54:52.000000000","tz":60},"committer":{"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","date":"2025-03-17 09:46:20.000000000","tz":0},"subject":"Fix ansible `difference()` filter use","message":"Fix ansible `difference()` filter use\n\nThe `difference()` filter inputs a list, and takes another list as\nparameter, computes a set difference between the two, and returns\nthe resulting (unordered) list.\n\nThis is documented here:\nhttps://docs.ansible.com/ansible/latest/collections/ansible/builtin/difference_filter.html\n\nThis filter was changed in:\nhttps://github.com/ansible/ansible/commit/7d3d4572edcb4e436883a9aca2859f620077390a\n\nThe behaviour changed in ansible-core between 2.15 and 2.16:\n\n```\n    ################################################################\n    ### Testing ansible-core\u003d\u003d2.16\n    ################################################################\n\n    PLAY [Test ansible difference filter] ******************************************\n\n    TASK [debug] *******************************************************************\n    ok: [localhost] \u003d\u003e {\n        \"msg\": \"diff with a string: [\u0027one\u0027, \u0027two\u0027, \u0027six\u0027] | difference(\u0027two\u0027)   \u003d\u003e [\u0027one\u0027, \u0027six\u0027, \u0027two\u0027]\"\n    }\n\n    TASK [debug] *******************************************************************\n    ok: [localhost] \u003d\u003e {\n        \"msg\": \"diff with a list:   [\u0027one\u0027, \u0027two\u0027, \u0027six\u0027] | difference([\u0027two\u0027]) \u003d\u003e [\u0027one\u0027, \u0027six\u0027]\"\n    }\n\n    PLAY RECAP *********************************************************************\n    localhost                  : ok\u003d2    changed\u003d0    unreachable\u003d0    failed\u003d0    skipped\u003d0    rescued\u003d0    ignored\u003d0\n\n    ################################################################\n    ### Testing ansible-core\u003d\u003d2.15\n    ################################################################\n\n    PLAY [Test ansible difference filter] ******************************************\n\n    TASK [debug] *******************************************************************\n    ok: [localhost] \u003d\u003e {\n        \"msg\": \"diff with a string: [\u0027one\u0027, \u0027two\u0027, \u0027six\u0027] | difference(\u0027two\u0027)   \u003d\u003e [\u0027one\u0027, \u0027six\u0027]\"\n    }\n\n    TASK [debug] *******************************************************************\n    ok: [localhost] \u003d\u003e {\n        \"msg\": \"diff with a list:   [\u0027one\u0027, \u0027two\u0027, \u0027six\u0027] | difference([\u0027two\u0027]) \u003d\u003e [\u0027one\u0027, \u0027six\u0027]\"\n    }\n\n    PLAY RECAP *********************************************************************\n    localhost                  : ok\u003d2    changed\u003d0    unreachable\u003d0    failed\u003d0    skipped\u003d0    rescued\u003d0    ignored\u003d0\n```\n\nThe above was generated by using: https://github.com/vincent-legoll/test_ansible_diff\n\nCloses-Bug: #2096936\nChange-Id: I7a57c829803fc5baa8b1d3a1805c102f04b8ab2c\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@iphc.cnrs.fr\u003e\n(cherry picked from commit ca89c07cd4f1b187460630f2ccb308e02815065e)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-os_nova/commit/5ce463551aeda103d218d4bc66347facaa625fcf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-os_nova/commit/5ce463551aeda103d218d4bc66347facaa625fcf"}]},"branch":"refs/heads/stable/2024.2"}},"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":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"}},{"label":"Backport-Candidate","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"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":"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":{}}}]}
