)]}'
{"id":"openstack%2Fopenstack-ansible-os_nova~944283","triplet_id":"openstack%2Fopenstack-ansible-os_nova~master~I7a57c829803fc5baa8b1d3a1805c102f04b8ab2c","project":"openstack/openstack-ansible-os_nova","branch":"master","topic":"fix_ansible_difference_filtering","attention_set":{},"removed_from_attention_set":{"16318":{"account":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"last_update":"2025-03-17 09:10:43.000000000","reason":"\u003cGERRIT_ACCOUNT_16318\u003e replied on the change","reason_account":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"}},"28619":{"account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"last_update":"2025-03-13 17:26:13.000000000","reason":"\u003cGERRIT_ACCOUNT_28619\u003e replied on the change","reason_account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}},"14805":{"account":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"last_update":"2025-03-17 09:44:53.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I7a57c829803fc5baa8b1d3a1805c102f04b8ab2c","subject":"Fix ansible `difference()` filter use","status":"MERGED","created":"2025-03-13 16:36:46.000000000","updated":"2025-03-17 09:45:57.000000000","submitted":"2025-03-17 09:44:53.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":5,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"944283-fix_ansible_difference_filtering","meta_rev_id":"314796d4f96c3e07d82debed9729fdf03a38450a","_number":944283,"virtual_id_number":944283,"owner":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-03-17 09:44:53.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2025-03-13 17:26:13.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":2,"date":"2025-03-17 08:10:35.000000000","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":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":1,"date":"2025-03-17 08:10:35.000000000","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":{"approved":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2025-03-13 17:31:54.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_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":[{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"}],"reviewers":{"REVIEWER":[{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},{"_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"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-03-13 16:52:20.000000000","updated_by":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"reviewer":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"state":"REVIEWER"},{"updated":"2025-03-13 17:13:30.000000000","updated_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"reviewer":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"state":"CC"},{"updated":"2025-03-13 17:15:40.000000000","updated_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"reviewer":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"state":"REVIEWER"},{"updated":"2025-03-13 20:04:33.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-17 08:10:35.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":"c2e47db89cb6b4f095482fd45ecf0b58bcd32b36","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"date":"2025-03-13 16:36:46.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"00df2255d17d6edb1cd83f076086c2e3eefccef5","author":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"date":"2025-03-13 16:52:20.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"6bd078b21ce6d576b62eb98aaa3c5acd2d7f6dea","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2025-03-13 17:13:30.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"f70f236f08458464487a81b203705d9ca33b14be","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2025-03-13 17:15:40.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"a2e7886f873dee56ed43717a34055d46bdab0113","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"date":"2025-03-13 17:25:42.000000000","message":"Uploaded patch set 2: Commit message was updated.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":2},{"id":"eef383c7ec6f971f04efeff44a9153516ad6b229","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2025-03-13 17:26:13.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"516213decf6b83eb0f00985a64d90d1523f63415","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2025-03-13 17:31:54.000000000","message":"Patch Set 2: Backport-Candidate+1","accounts_in_message":[],"_revision_number":2},{"id":"48e3c82da19a9b5fca3c0a214899fcd2db3e5c2c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-13 20:04:33.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8fda1d56432d4937a7d00a36bb7261ac\n\n- openstack-ansible-linters-ubuntu-noble https://zuul.opendev.org/t/openstack/build/e1a79631f93842478c82edb94092b348 : SUCCESS in 6m 41s\n- openstack-ansible-deploy-aio_metal-debian-bookworm https://zuul.opendev.org/t/openstack/build/bb584dc873d3443d9f257f6734974cf6 : SUCCESS in 1h 14m 29s\n- openstack-ansible-deploy-aio_metal-centos-9-stream https://zuul.opendev.org/t/openstack/build/27868d6882d8442385d85c12435c4fd8 : SUCCESS in 1h 12m 07s (non-voting)\n- openstack-ansible-deploy-aio_metal-rockylinux-9 https://zuul.opendev.org/t/openstack/build/d05fa7feeb0e471f9ab631a549ed93ea : SUCCESS in 1h 16m 40s\n- openstack-ansible-deploy-aio_metal-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/7b31de6a9cc4466a9db213978dbe16ad : SUCCESS in 1h 11m 40s\n- openstack-ansible-deploy-aio_metal-ubuntu-noble https://zuul.opendev.org/t/openstack/build/d867ab2b4e8f43dea630b8c7f0622409 : SUCCESS in 1h 21m 14s\n- openstack-ansible-deploy-aio_metal_tls-rockylinux-9 https://zuul.opendev.org/t/openstack/build/86373ea2d3cc47ee8b1d4466b4375b93 : SUCCESS in 1h 14m 30s\n- openstack-ansible-deploy-aio_metal_tls-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/4f2f58354abc46578b7ba283fd2b2266 : SUCCESS in 1h 24m 55s\n- openstack-ansible-deploy-aio_metal_tls-ubuntu-noble https://zuul.opendev.org/t/openstack/build/78da83f90cac4fedb82b4e90bf2edbeb : SUCCESS in 39m 04s\n- openstack-ansible-upgrade-aio_metal-rockylinux-9 https://zuul.opendev.org/t/openstack/build/097f568536cd4be89be047e5dda70d29 : SUCCESS in 1h 44m 30s\n- openstack-ansible-upgrade_2024.1-aio_metal-rockylinux-9 https://zuul.opendev.org/t/openstack/build/4a93986e30af4f90b5db0ba8974dbcda : SUCCESS in 1h 44m 14s\n- openstack-ansible-upgrade-aio_metal-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/b04e41e08d704deaae2412027b3695e4 : SUCCESS in 1h 59m 36s\n- openstack-ansible-upgrade_2024.1-aio_metal-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/9f18db9207234007993ebd993e2a1796 : SUCCESS in 1h 48m 01s\n- openstack-ansible-upgrade-aio_metal_tls-rockylinux-9 https://zuul.opendev.org/t/openstack/build/7d3f3dd774714a32947e339e38731155 : SUCCESS in 2h 31m 03s\n- openstack-ansible-upgrade-aio_metal_tls-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/108fd77fdcf647cf85538453b5020cd0 : SUCCESS in 51m 06s\n- openstack-ansible-deploy-aio_distro_metal-rockylinux-9 https://zuul.opendev.org/t/openstack/build/7ea9259dbd404a109c90218414e361ba : SUCCESS in 1h 08m 25s (non-voting)\n- openstack-ansible-deploy-aio_distro_metal-ubuntu-noble https://zuul.opendev.org/t/openstack/build/5a4c836ad6334eabafcf554218201b0f : SUCCESS in 56m 10s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c52adeb2b29d4cb7a5e9821563e4866e : SUCCESS in 4m 28s","accounts_in_message":[],"_revision_number":2},{"id":"707d0d394ae77122077a44a308c99109deafc5d3","author":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"date":"2025-03-14 16:37:43.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"0020ae5da422cef692bfd1cb792e24d6e69a7684","author":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"date":"2025-03-14 16:38:47.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"e1bc048eaf22f128bb19be7fbd914c87138364ef","author":{"_account_id":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"},"date":"2025-03-17 08:10:35.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"82f1ea948e61d5078a2575e8e9d6ee2e956dd6c2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-17 08:12:44.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"c9fc0b63b8da4fcc9bf41250bfd70412eb9555ae","author":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"date":"2025-03-17 09:10:43.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"a2ca2309dd75d41269cd3ef8e9aa34037386d83f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-17 09:44:53.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3f1316d223804788a46af32bca4daf2d\n\n- openstack-ansible-linters-ubuntu-noble https://zuul.opendev.org/t/openstack/build/68c03920f09e45889d80af4c035c6736 : SUCCESS in 8m 05s\n- openstack-ansible-deploy-aio_metal-debian-bookworm https://zuul.opendev.org/t/openstack/build/236246d914194611b3a0ce75b62a047e : SUCCESS in 44m 19s\n- openstack-ansible-deploy-aio_metal-rockylinux-9 https://zuul.opendev.org/t/openstack/build/2f72aaefaa7b419a8cdd05f1efeb79cf : SUCCESS in 1h 21m 05s\n- openstack-ansible-deploy-aio_metal-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/76f02b0a1129437baebbe6ea8799044a : SUCCESS in 43m 02s\n- openstack-ansible-deploy-aio_metal-ubuntu-noble https://zuul.opendev.org/t/openstack/build/71e7c181160e4f30903ff375dfdd1716 : SUCCESS in 1h 26m 53s\n- openstack-ansible-deploy-aio_metal_tls-rockylinux-9 https://zuul.opendev.org/t/openstack/build/69c485a4873f4c1c8651d45150265b3c : SUCCESS in 44m 41s\n- openstack-ansible-deploy-aio_metal_tls-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/4139fca0b23142c985800b59241a4937 : SUCCESS in 1h 20m 16s\n- openstack-ansible-deploy-aio_metal_tls-ubuntu-noble https://zuul.opendev.org/t/openstack/build/5888b0eb0e434495910287bdbb7dcfc1 : SUCCESS in 1h 21m 24s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/50a75c8b0e8d4c68bd1d0a783e8be155 : SUCCESS in 6m 39s","accounts_in_message":[],"_revision_number":2},{"id":"48b22b8d44429d9881c4a5b9fd1b040df80c7349","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-17 09:44:53.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"314796d4f96c3e07d82debed9729fdf03a38450a","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-03-17 09:45:57.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0caed42ef51a482ca422699de5167129\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1ddff359078640b18073b1d7d3795d3c : SUCCESS in 46s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"ca89c07cd4f1b187460630f2ccb308e02815065e","revisions":{"331d60d1af76899cb4206e6855d9ae6f08d8f88e":{"kind":"REWORK","_number":1,"created":"2025-03-13 16:36:46.000000000","uploader":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"ref":"refs/changes/83/944283/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-ansible-os_nova","ref":"refs/changes/83/944283/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/83/944283/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/83/944283/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/83/944283/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/83/944283/1"}}},"commit":{"parents":[{"commit":"11ff642fe688a35afa3876f0f9dd7c4425f13d95","subject":"Auto-fix usage of modules via FQCN","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-os_nova/commit/11ff642fe688a35afa3876f0f9dd7c4425f13d95"}]}],"author":{"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","date":"2025-03-13 12:54:52.000000000","tz":60},"committer":{"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","date":"2025-03-13 16:17:40.000000000","tz":60},"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\nChange-Id: I7a57c829803fc5baa8b1d3a1805c102f04b8ab2c\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@iphc.cnrs.fr\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-os_nova/commit/331d60d1af76899cb4206e6855d9ae6f08d8f88e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-os_nova/commit/331d60d1af76899cb4206e6855d9ae6f08d8f88e"}]},"branch":"refs/heads/master"},"ca89c07cd4f1b187460630f2ccb308e02815065e":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2025-03-13 17:25:42.000000000","uploader":{"_account_id":16318,"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","username":"vincentleg"},"ref":"refs/changes/83/944283/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-ansible-os_nova","ref":"refs/changes/83/944283/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/83/944283/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/83/944283/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/83/944283/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-ansible-os_nova refs/changes/83/944283/2"}}},"commit":{"parents":[{"commit":"11ff642fe688a35afa3876f0f9dd7c4425f13d95","subject":"Auto-fix usage of modules via FQCN","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-os_nova/commit/11ff642fe688a35afa3876f0f9dd7c4425f13d95"}]}],"author":{"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","date":"2025-03-13 12:54:52.000000000","tz":60},"committer":{"name":"Vincent Legoll","email":"vincent.legoll@iphc.cnrs.fr","date":"2025-03-13 17:21:59.000000000","tz":60},"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","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-os_nova/commit/ca89c07cd4f1b187460630f2ccb308e02815065e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-ansible-os_nova/commit/ca89c07cd4f1b187460630f2ccb308e02815065e"}]},"branch":"refs/heads/master"}},"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":31542,"name":"Andrew Bonney","email":"andrew.bonney@bbc.co.uk","username":"andrewbonney"}},{"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","applied_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}}]}],"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":{}}}]}
