)]}'
{"id":"openstack%2Fansible-collections-openstack~850460","triplet_id":"openstack%2Fansible-collections-openstack~master~I28cc05c95419b72552899c926721eb87fb6f0868","project":"openstack/ansible-collections-openstack","branch":"master","topic":"drop-redirects","attention_set":{},"removed_from_attention_set":{"32962":{"account":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"last_update":"2022-07-22 12:48:13.000000000","reason":"\u003cGERRIT_ACCOUNT_32962\u003e replied on the change","reason_account":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"}},"10969":{"account":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"last_update":"2022-07-22 09:39:59.000000000","reason":"\u003cGERRIT_ACCOUNT_10969\u003e replied on the change","reason_account":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"}}},"hashtags":[],"change_id":"I28cc05c95419b72552899c926721eb87fb6f0868","subject":"Dropped symbolic links and plugin routing for deprecated module names","status":"MERGED","created":"2022-07-20 08:12:23.000000000","updated":"2022-07-22 13:47:10.000000000","submitted":"2022-07-22 13:47:10.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"850460-drop-redirects","meta_rev_id":"e24cde2590eb02a69cb5dfa06a662f5cc6651183","_number":850460,"virtual_id_number":850460,"owner":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},{"value":0,"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2022-07-22 13:47:10.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":-1,"date":"2022-07-22 11:51:44.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":23181,"name":"RDO Third Party CI","email":"dmsimard+rdothirdparty@redhat.com","username":"rdothirdparty","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":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"all":[{"value":2,"date":"2022-07-22 12:48:13.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},{"value":2,"date":"2022-07-22 09:48:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":23181,"name":"RDO Third Party CI","email":"dmsimard+rdothirdparty@redhat.com","username":"rdothirdparty","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":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"all":[{"value":1,"date":"2022-07-22 12:48:13.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},{"value":0,"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":23181,"name":"RDO Third Party CI","email":"dmsimard+rdothirdparty@redhat.com","username":"rdothirdparty","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":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":23181,"name":"RDO Third Party CI","email":"dmsimard+rdothirdparty@redhat.com","username":"rdothirdparty","tags":["SERVICE_USER"]},{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2022-07-20 09:06:51.000000000","updated_by":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"reviewer":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"state":"REVIEWER"},{"updated":"2022-07-20 10:52:03.000000000","updated_by":{"_account_id":23181,"name":"RDO Third Party CI","email":"dmsimard+rdothirdparty@redhat.com","username":"rdothirdparty","tags":["SERVICE_USER"]},"reviewer":{"_account_id":23181,"name":"RDO Third Party CI","email":"dmsimard+rdothirdparty@redhat.com","username":"rdothirdparty","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2022-07-20 11:12:01.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"}],"messages":[{"id":"c2de6333d51c482e62113cbf5cee2fb092355b9c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-07-20 08:12:23.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"a7d335873d6911a256c5a901aa06a4ef27060b7e","author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"date":"2022-07-20 09:06:51.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"ad1f94188848f2191d4a82fc23c8071c83b42d24","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-07-20 09:15:45.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"4865d03622ed59682f2a7d7c1b7d6890f4107416","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-07-20 09:19:41.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"5b0fd9f2d73620dfc11882c1bf76dd5e8870c2b4","author":{"_account_id":23181,"name":"RDO Third Party CI","email":"dmsimard+rdothirdparty@redhat.com","username":"rdothirdparty","tags":["SERVICE_USER"]},"date":"2022-07-20 10:52:03.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- tripleo-ci-centos-9-ovb-1ctlr_1comp-featureset001 https://review.rdoproject.org/zuul/build/7e9b0d927d7c42a3b9089ffdf5e9480f : FAILURE in 1h 35m 11s","accounts_in_message":[],"_revision_number":2},{"id":"800972ebe3c2a7097c08df71165e7f22bd296031","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-07-20 11:12:01.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f6fcd8e7b8234ba5ab587fe985abc1c8\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/283413e4ed9c4791a434f2875fcb0d0d : SUCCESS in 3m 14s\n- openstack-tox-linters-ansible-devel https://zuul.opendev.org/t/openstack/build/273a3bb7e3ab42eabb884a3171030f9b : FAILURE in 5m 20s (non-voting)\n- openstack-tox-linters-ansible-2.12 https://zuul.opendev.org/t/openstack/build/8569a27ac9aa4e1a89e97e7e170061e8 : SUCCESS in 9m 11s\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/8851dad269d949deb5a18297a7797ab3 : SUCCESS in 47m 00s\n- ansible-collections-openstack-functional-devstack-releases https://zuul.opendev.org/t/openstack/build/24e6b44faa504f73ae521ff2ac641c96 : SUCCESS in 46m 40s\n- ansible-collections-openstack-functional-devstack-ansible-2.9 https://zuul.opendev.org/t/openstack/build/f74e5b3a36bf4f0ab8a651117bddab08 : SUCCESS in 49m 26s\n- ansible-collections-openstack-functional-devstack-ansible-2.12 https://zuul.opendev.org/t/openstack/build/abe3884f74624dfaa25af6dd5fb5b64e : SUCCESS in 48m 06s\n- ansible-collections-openstack-functional-devstack-ansible-devel https://zuul.opendev.org/t/openstack/build/f678118a1aae47bf8a240de1070bd946 : SUCCESS in 49m 01s (non-voting)\n- bifrost-collections-src https://zuul.opendev.org/t/openstack/build/375aa365a610441c93fe95a266ad5645 : FAILURE in 10m 58s (non-voting)\n- bifrost-keystone-collections-src https://zuul.opendev.org/t/openstack/build/2e33d9867d5c4ff1a470b0b7dc1a12ed : FAILURE in 12m 50s (non-voting)\n- tripleo-ci-centos-9-standalone-osa https://zuul.opendev.org/t/openstack/build/4a47df1e355c41e28e504c8c4668b919 : FAILURE in 1h 33m 59s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"0c4a97cf9e2bc593ba464730b676c140ad93ed98","author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"date":"2022-07-22 09:39:59.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"beea7f4c401f6433c6c0724bd94fb13618a84a66","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-07-22 09:45:10.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"ae854a8b6eb9c7b6f8f0787d241c788c735821ed","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-07-22 09:45:46.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"1f7d152cf9742be016315c9a01fb3152208d6490","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-07-22 09:48:20.000000000","message":"Patch Set 3: Patch Set 2 was rebased","accounts_in_message":[],"_revision_number":3},{"id":"c9f40b9c70ca518f918360eb025eb55207e409af","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-07-22 11:30:40.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2fa7e7b00f774547babc348786bd59d7\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/59b2b3954f2f4bb9bc064c0fc677519c : SUCCESS in 4m 02s\n- openstack-tox-linters-ansible-devel https://zuul.opendev.org/t/openstack/build/b6a5e95011b5402d86a8d1b8f4994840 : FAILURE in 4m 45s (non-voting)\n- openstack-tox-linters-ansible-2.12 https://zuul.opendev.org/t/openstack/build/3659608e08c24373aaba982bac685424 : SUCCESS in 8m 03s\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/7ec1ec37364f41b49069fea9363514e9 : SUCCESS in 41m 05s\n- ansible-collections-openstack-functional-devstack-releases https://zuul.opendev.org/t/openstack/build/30be90ac4d4a4f60a67b4cdb05f85688 : SUCCESS in 44m 19s\n- ansible-collections-openstack-functional-devstack-ansible-2.9 https://zuul.opendev.org/t/openstack/build/7977664b766b42128a6ec524c918cbb6 : SUCCESS in 47m 00s\n- ansible-collections-openstack-functional-devstack-ansible-2.12 https://zuul.opendev.org/t/openstack/build/6338f1c4fda448deb0eac2f8de0c4fba : SUCCESS in 46m 47s\n- ansible-collections-openstack-functional-devstack-ansible-devel https://zuul.opendev.org/t/openstack/build/b9be10fa341b438bbabfa9b607e337b1 : FAILURE in 30m 27s (non-voting)\n- bifrost-collections-src https://zuul.opendev.org/t/openstack/build/7b43754b427145dfbe6506c79dc4f380 : FAILURE in 11m 51s (non-voting)\n- bifrost-keystone-collections-src https://zuul.opendev.org/t/openstack/build/be568c52deb441c1a809f8ee88d390ac : FAILURE in 12m 28s (non-voting)\n- tripleo-ci-centos-9-standalone-osa https://zuul.opendev.org/t/openstack/build/56ab4750ef1d4b869b3ea8b71365727e : FAILURE in 1h 29m 58s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"cae9b8a75a240ec3edb8c09315aa084294f1fca3","author":{"_account_id":23181,"name":"RDO Third Party CI","email":"dmsimard+rdothirdparty@redhat.com","username":"rdothirdparty","tags":["SERVICE_USER"]},"date":"2022-07-22 11:51:44.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- tripleo-ci-centos-9-ovb-1ctlr_1comp-featureset001 https://review.rdoproject.org/zuul/build/04dcfdf86e2b46b997c12f0d9e7eb9b3 : FAILURE in 2h 02m 25s","accounts_in_message":[],"_revision_number":3},{"id":"c5a5b2b9a5f3778b87b094dcf6b827d23aefb46d","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-07-22 12:48:13.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"943b430d22cd2f5032fe716837b53ada4633bec2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-07-22 12:48:47.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"f63dca19e3840064b6eb042f97dd4e6539179dd5","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-07-22 13:47:10.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/09524ba51fd64efc992d36b78ebe371a\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/fb9fe6fa96414b4c876a41f9b888cda1 : SUCCESS in 6m 31s\n- openstack-tox-linters-ansible-2.12 https://zuul.opendev.org/t/openstack/build/906214ffa99e43668c91199d52234bf2 : SUCCESS in 10m 19s\n- ansible-collections-openstack-functional-devstack-releases https://zuul.opendev.org/t/openstack/build/46ef9001797d4b47a12b0db12db08403 : SUCCESS in 57m 15s","accounts_in_message":[],"_revision_number":3},{"id":"e24cde2590eb02a69cb5dfa06a662f5cc6651183","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-07-22 13:47:10.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"b87ae7dcceff47a31be6e276b4018f85110e4b76","revisions":{"f5076a54998aa8417f2551d827472fe6326fc4dd":{"kind":"REWORK","_number":1,"created":"2022-07-20 08:12:23.000000000","uploader":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"ref":"refs/changes/60/850460/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/60/850460/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/1"}}},"commit":{"parents":[{"commit":"bae75b84bd564f670c870932a7f1de9d4592b7fe","subject":"Merge \"Raise minimum OpenStack SDK version to 0.99.0 again\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/bae75b84bd564f670c870932a7f1de9d4592b7fe"}]}],"author":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-07-20 08:12:10.000000000","tz":120},"committer":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-07-20 08:12:10.000000000","tz":120},"subject":"Dropped symbolic links and plugin routing for deprecated module names","message":"Dropped symbolic links and plugin routing for deprecated module names\n\nWith Ansible OpenStack collection 2.0.0 we break backward\ncompatibility to older releases, mainly due to breaking changes\ncoming with openstacksdk \u003e\u003d0.99.0. For example, results will change\nfor most Ansible modules in this collection.\n\nWe take this opportunity to drop the symbolic links with prefix\nos_ in plugins/modules and the plugin routing in meta/runtime.yml.\nThis means users have to call modules of the Ansible OpenStack\ncollection using their FQCN (Fully Qualified Collection Name) such\nas openstack.cloud.server. Short module names such as os_server\nwill now raise an Ansible error. This also decreases the likelihood\nof incompatible Ansible code going undetected.\n\nSymbolic links were introduced to keep our collection backward\ncompatible to user code which was written for old(er) Ansible releases\nwhich did not have support for collections and where OpenStack modules\nwhere named with a prefix os_ such as os_server which is nowadays\nknown and stored as openstack.cloud.server.\n\nIn Ansible aka ansible-base 2.10, a internal routing table\nlib/ansible/config/ansible_builtin_runtime.yml [1] was introduced which\nAnsible uses to resolve deprecated module names missing the FQCN (Fully\nQualified Collection Name). Additionally, collections can define their\nown plugin routing table in meta/runtime.yml [2] which we did.\n\nIn ansible-base 2.10 and ansible-core 2.11 or later, if a user uses a\nshort module name and the collections keyword is not used, Ansible\nwill first look in the internal routing table, get an FQCN, and then\nlooks in the collection for that FQCN. If there is another routing\nentry for that new name in that collection\u0027s meta/runtime.yml,\nAnsible will continue with that redirect. If it does not find another\nredirect, Ansible will look for the plugin itself, so it will not\nfind a redirect in the collection before looking at its internal\nredirects. Except if the user uses a FQCN, then it looks directly in\nthat collection.\n\nAnsible 2.9 and 2.8 do not have any notion of these redirects with a\nplugin routing table, backward compatibility with deprecated os_*\nmodule names is solely achieved with symbolic links. Ansible releases\nolder than 2.11 are EOL [3], so usage of os_* symlinks should reduce\nsoon.\n\n[1] https://github.com/ansible/ansible/blob/devel/lib/ansible/config/ansible_builtin_runtime.yml\n[2] https://github.com/openstack/ansible-collections-openstack/blob/master/meta/runtime.yml\n[3] https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html\n\nChange-Id: I28cc05c95419b72552899c926721eb87fb6f0868\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/f5076a54998aa8417f2551d827472fe6326fc4dd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/f5076a54998aa8417f2551d827472fe6326fc4dd"}]},"branch":"refs/heads/master"},"e8d391373c3f628ec846b7d9bdba2dae9a2e85d6":{"kind":"REWORK","_number":2,"created":"2022-07-20 09:15:45.000000000","uploader":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"ref":"refs/changes/60/850460/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/60/850460/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/2"}}},"commit":{"parents":[{"commit":"bae75b84bd564f670c870932a7f1de9d4592b7fe","subject":"Merge \"Raise minimum OpenStack SDK version to 0.99.0 again\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/bae75b84bd564f670c870932a7f1de9d4592b7fe"}]}],"author":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-07-20 08:12:10.000000000","tz":120},"committer":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-07-20 09:15:14.000000000","tz":120},"subject":"Dropped symbolic links and plugin routing for deprecated module names","message":"Dropped symbolic links and plugin routing for deprecated module names\n\nWith Ansible OpenStack collection 2.0.0 we break backward\ncompatibility to older releases, mainly due to breaking changes\ncoming with openstacksdk \u003e\u003d0.99.0. For example, results will change\nfor most Ansible modules in this collection.\n\nWe take this opportunity to drop the symbolic links with prefix\nos_ in plugins/modules and the plugin routing in meta/runtime.yml.\nThis means users have to call modules of the Ansible OpenStack\ncollection using their FQCN (Fully Qualified Collection Name) such\nas openstack.cloud.server. Short module names such as os_server\nwill now raise an Ansible error. This also decreases the likelihood\nof incompatible Ansible code going undetected.\n\nSymbolic links were introduced to keep our collection backward\ncompatible to user code which was written for old(er) Ansible releases\nwhich did not have support for collections and where OpenStack modules\nwhere named with a prefix os_ such as os_server which is nowadays\nknown and stored as openstack.cloud.server.\n\nIn Ansible aka ansible-base 2.10, a internal routing table\nlib/ansible/config/ansible_builtin_runtime.yml [1] was introduced which\nAnsible uses to resolve deprecated module names missing the FQCN (Fully\nQualified Collection Name). Additionally, collections can define their\nown plugin routing table in meta/runtime.yml [2] which we did.\n\nIn ansible-base 2.10 and ansible-core 2.11 or later, if a user uses a\nshort module name and the collections keyword is not used, Ansible\nwill first look in the internal routing table, get an FQCN, and then\nlooks in the collection for that FQCN. If there is another routing\nentry for that new name in that collection\u0027s meta/runtime.yml,\nAnsible will continue with that redirect. If it does not find another\nredirect, Ansible will look for the plugin itself, so it will not\nfind a redirect in the collection before looking at its internal\nredirects. Except if the user uses a FQCN, then it looks directly in\nthat collection.\n\nAnsible 2.9 and 2.8 do not have any notion of these redirects with a\nplugin routing table, backward compatibility with deprecated os_*\nmodule names is solely achieved with symbolic links. Ansible releases\nolder than 2.11 are EOL [3], so usage of os_* symlinks should reduce\nsoon.\n\n[1] https://github.com/ansible/ansible/blob/devel/lib/ansible/config/ansible_builtin_runtime.yml\n[2] https://github.com/openstack/ansible-collections-openstack/blob/master/meta/runtime.yml\n[3] https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html\n\nChange-Id: I28cc05c95419b72552899c926721eb87fb6f0868\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/e8d391373c3f628ec846b7d9bdba2dae9a2e85d6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/e8d391373c3f628ec846b7d9bdba2dae9a2e85d6"}]},"branch":"refs/heads/master"},"b87ae7dcceff47a31be6e276b4018f85110e4b76":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2022-07-22 09:48:20.000000000","uploader":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"ref":"refs/changes/60/850460/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/60/850460/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/60/850460/3"}}},"commit":{"parents":[{"commit":"fd15087c4ddb3d6c62ffd94702b795367d4578e0","subject":"Add a wait argument to baremetal_node","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/fd15087c4ddb3d6c62ffd94702b795367d4578e0"}]}],"author":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-07-20 08:12:10.000000000","tz":120},"committer":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-07-22 09:48:20.000000000","tz":0},"subject":"Dropped symbolic links and plugin routing for deprecated module names","message":"Dropped symbolic links and plugin routing for deprecated module names\n\nWith Ansible OpenStack collection 2.0.0 we break backward\ncompatibility to older releases, mainly due to breaking changes\ncoming with openstacksdk \u003e\u003d0.99.0. For example, results will change\nfor most Ansible modules in this collection.\n\nWe take this opportunity to drop the symbolic links with prefix\nos_ in plugins/modules and the plugin routing in meta/runtime.yml.\nThis means users have to call modules of the Ansible OpenStack\ncollection using their FQCN (Fully Qualified Collection Name) such\nas openstack.cloud.server. Short module names such as os_server\nwill now raise an Ansible error. This also decreases the likelihood\nof incompatible Ansible code going undetected.\n\nSymbolic links were introduced to keep our collection backward\ncompatible to user code which was written for old(er) Ansible releases\nwhich did not have support for collections and where OpenStack modules\nwhere named with a prefix os_ such as os_server which is nowadays\nknown and stored as openstack.cloud.server.\n\nIn Ansible aka ansible-base 2.10, a internal routing table\nlib/ansible/config/ansible_builtin_runtime.yml [1] was introduced which\nAnsible uses to resolve deprecated module names missing the FQCN (Fully\nQualified Collection Name). Additionally, collections can define their\nown plugin routing table in meta/runtime.yml [2] which we did.\n\nIn ansible-base 2.10 and ansible-core 2.11 or later, if a user uses a\nshort module name and the collections keyword is not used, Ansible\nwill first look in the internal routing table, get an FQCN, and then\nlooks in the collection for that FQCN. If there is another routing\nentry for that new name in that collection\u0027s meta/runtime.yml,\nAnsible will continue with that redirect. If it does not find another\nredirect, Ansible will look for the plugin itself, so it will not\nfind a redirect in the collection before looking at its internal\nredirects. Except if the user uses a FQCN, then it looks directly in\nthat collection.\n\nAnsible 2.9 and 2.8 do not have any notion of these redirects with a\nplugin routing table, backward compatibility with deprecated os_*\nmodule names is solely achieved with symbolic links. Ansible releases\nolder than 2.11 are EOL [3], so usage of os_* symlinks should reduce\nsoon.\n\n[1] https://github.com/ansible/ansible/blob/devel/lib/ansible/config/ansible_builtin_runtime.yml\n[2] https://github.com/openstack/ansible-collections-openstack/blob/master/meta/runtime.yml\n[3] https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html\n\nChange-Id: I28cc05c95419b72552899c926721eb87fb6f0868\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/b87ae7dcceff47a31be6e276b4018f85110e4b76"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/b87ae7dcceff47a31be6e276b4018f85110e4b76"}]},"branch":"refs/heads/master","description":"Rebase"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"}},{"label":"Workflow","status":"OK","applied_by":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"}}]}],"submit_requirements":[]}
