)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33080,"name":"Mikolaj Ciecierski","display_name":"Mikolaj Ciecierski","email":"mciecier@redhat.com","username":"mciecierski"},"change_message_id":"f6328d5a503434704844c14be622d045abf930fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e88db96a_54bd0a6a","updated":"2022-06-09 06:50:24.000000000","message":"recheck","commit_id":"74d30fef43115527b75c7577eaa09a0ee79c4145"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"75d41e975e270b12d2e7df75fd331938ed1a1a97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"25100c95_68b7b4cd","updated":"2022-06-10 11:39:51.000000000","message":"To pass ci, the name must be mangled before creating the script so that they retrieve they short value.","commit_id":"55ee8d70029efe41c27ac4c40fc3f2d3978d9e22"}],"filter_plugins/tripleo_upgrade.py":[{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"75d41e975e270b12d2e7df75fd331938ed1a1a97","unresolved":true,"context_lines":[{"line_number":35,"context_line":"            if group \u003d\u003d \u0027Undercloud\u0027:"},{"line_number":36,"context_line":"                group_host_map[group] \u003d list(inventory[group][\u0027hosts\u0027])"},{"line_number":37,"context_line":"            else:"},{"line_number":38,"context_line":"                for host in inventory[group][\u0027hosts\u0027]:"},{"line_number":39,"context_line":"                    group_host_map[group].append("},{"line_number":40,"context_line":"                        inventory[group][\u0027hosts\u0027][host].get("},{"line_number":41,"context_line":"                            \u0027ctlplane_hostname\u0027, \u0027\u0027))"},{"line_number":42,"context_line":"        else:"},{"line_number":43,"context_line":"            if \u0027children\u0027 in inventory[group]:"},{"line_number":44,"context_line":"                for child in inventory[group][\u0027children\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9971d49d_eb77e983","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":53},"updated":"2022-06-10 11:39:51.000000000","message":"You\u0027re changing the structure here.  Before it was returning:\n\n group_host_map \u003d {\n    \u0027qe-Cloud-0_CephStorage\u0027: [{\n        \u0027ceph-0\u0027: {\n            \u0027ansible_host\u0027: ...,\n            ....\n         },\n         \u0027ceph-1\u0027: {...\n...\n}]\n\n(which was a \"weird\" one element list as far as I can tell)\n\nNow it returns:\n  \n  group_host_map \u003d {\n    \u0027qe-Cloud-0_CephStorage\u0027: [\u0027ceph-0.ctlplane.redhat.local\u0027, \u0027ceph-1.ctlplane.redhat.local\u0027, \u0027ceph-2.ctlplane.redhat.local\u0027]\n\n  }\n\nThis is one thing, I think, but as it doesn\u0027t seem to affect the process as can be seen below. Furthermore, the error stems from something else.\n\n\nThen, I\u0027ve compared with a \"working run\"[1] and we have this output:\n\n\n    oc_role_host_list_controlplane:\n    - - ceph-0\n      - ceph-1\n      - ceph-2\n    - - controller-0\n      - controller-1\n      - controller-2\n    - - database-0\n      - database-1\n      - database-2\n    - - messaging-0\n      - messaging-1\n      - messaging-2\n    - - networker-0\n      - networker-1\n2022-06-01 12:56:07,655 p\u003d32404 u\u003dzuul n\u003dansible | TASK [tripleo-upgrade : create controlplane based overcloud system upgrade script for {{ item }}] ***\n\nSo it\u0027s a list of list. Then we iterate over this list using tasks/fast-forward-upgrade/create-overcloud-ffu-hosts-scripts.yaml where item is now a list. \n\nIt seems expected and we create script where we concatenate the names in the list (like so /home/zuul/overcloud_system_upgrade-ceph-0,controller-0,database-0,messaging-0,networker-0.sh) - a list by role\u0027s hosts first \"primary\" host.\n\nThe issue now is that your version comes up with[2]:\n\n    oc_role_host_list_controlplane:\n    - - ceph-0.ctlplane.redhat.local\n      - ceph-1.ctlplane.redhat.local\n      - ceph-2.ctlplane.redhat.local\n    - - controller-0.ctlplane.redhat.local\n      - controller-1.ctlplane.redhat.local\n      - controller-2.ctlplane.redhat.local\n    - - database-0.ctlplane.redhat.local\n      - database-1.ctlplane.redhat.local\n      - database-2.ctlplane.redhat.local\n    - - messaging-0.ctlplane.redhat.local\n      - messaging-1.ctlplane.redhat.local\n      - messaging-2.ctlplane.redhat.local\n    - - networker-0.ctlplane.redhat.local\n      - networker-1.ctlplane.redhat.local\n\nand then we try to create a script like this:\n\n/home/zuul/overcloud_upgrade_run-ceph-1.ctlplane.redhat.local,controller-1.ctlplane.redhat.local,database-1.ctlplane.redhat.local,messaging-1.ctlplane.redhat.local,networker-1.ctlplane.redhat.local,ceph-0.ctlplane.redhat.local,controller-0.ctlplane.redhat.local,database-0.ctlplane.redhat.local,messaging-0.ctlplane.redhat.local,networker-0.ctlplane.redhat.local.sh\n\nand fail (to stats it) like so:\n\n{\"failed\": true, \"msg\": \"File name too long\", \"exception\": \"  File \\\\\"/tmp/ansible_ansible.legacy.stat_payload_uhyfvawo/ansible_ansible.legacy.stat_payload.zip/ansible/modules/stat.py\\\\\", line 473, in main\\\\n\", \"invocation\": {\"module_args\": {\"path\": \"/home/zuul/overcloud_upgrade_run-ceph-1.ctlplane.redhat.local,controller-1.ctlplane.redhat.local,database-1.ctlplane.redhat.local,messaging-1.ctlplane.redhat.local,networker-1.ctlplane.redhat.local,ceph-0.ctlplane.redhat.local,controller-0.ctlplane.redhat.local,database-0.ctlplane.redhat.local,messaging-0.ctlplane.redhat.local,networker-0.ctlplane.redhat.local.sh\", \"follow\": false, \"get_checksum\": true, \"checksum_algorithm\": \"sha1\", \"get_md5\": false, \"get_mime\": true, \"get_attributes\": true}}}\n\n\nSo ... what\u0027s the conclusion here:\n\n 1. the way we name the script might eventually leads to file name too long if we have enough host in a group (it seems, I\u0027ve not checked it fully);\n 2. using the control plane name give rises to this issue even with a limited number of hosts\n\n1. should be tackle in its own right ... or not as it\u0027s just a CI thing.\n\nFor the current review .... we should create the script with the original name at the minimum (to have ci happy), something like mangling the name to get the same short name at places like this[3] doing a regex search replace for \"([^.]+)\\..*\",\"\\1\" , you get the idea.\n\n\nhope it helps.\n\n\n[1] https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_c8b/843868/4/check/tripleo-upgrade-centos-8-molecule/c8bcf51/ansible-execution.log\n[2] https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_12a/844561/3/check/tripleo-upgrade-centos-8-molecule/12a1eaa/ansible-execution.log\n[3] https://opendev.org/openstack/tripleo-upgrade/src/branch/review/mikolaj_ciecierski/844561/tasks/fast-forward-upgrade/create-overcloud-ffu-hosts-scripts.yaml#L20","commit_id":"55ee8d70029efe41c27ac4c40fc3f2d3978d9e22"}]}
