)]}'
{"ansible/roles/kolla-openstack/tasks/config.yml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"8f7cd76942867620c2e19c25fa6109901939df80","unresolved":true,"context_lines":[{"line_number":75,"context_line":"- name: Find extra configuration files"},{"line_number":76,"context_line":"  find:"},{"line_number":77,"context_line":"    path: \"{{ item.src }}\""},{"line_number":78,"context_line":"    patterns: \"{{ item.patterns }}\""},{"line_number":79,"context_line":"    recurse: true"},{"line_number":80,"context_line":"    file_type: any"},{"line_number":81,"context_line":"    follow: false"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bbe5ab6c_32c74666","line":78,"range":{"start_line":78,"start_character":4,"end_line":78,"end_character":35},"updated":"2021-10-05 09:30:26.000000000","message":"For patterns other than \u0027*\u0027, this filters out any files that don\u0027t match, including directories.","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":33466,"name":"Lukasz Zalewski","email":"lzal3wski@gmail.com","username":"lzalewski"},"change_message_id":"e215aef392f858c231f51dbf641119812f625c81","unresolved":true,"context_lines":[{"line_number":75,"context_line":"- name: Find extra configuration files"},{"line_number":76,"context_line":"  find:"},{"line_number":77,"context_line":"    path: \"{{ item.src }}\""},{"line_number":78,"context_line":"    patterns: \"{{ item.patterns }}\""},{"line_number":79,"context_line":"    recurse: true"},{"line_number":80,"context_line":"    file_type: any"},{"line_number":81,"context_line":"    follow: false"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"81a99d0c_7915097d","line":78,"range":{"start_line":78,"start_character":4,"end_line":78,"end_character":35},"in_reply_to":"bbe5ab6c_32c74666","updated":"2021-10-11 10:02:29.000000000","message":"Are you suggesting we should try to incorporate the excludes part into patterns?","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"8f7cd76942867620c2e19c25fa6109901939df80","unresolved":true,"context_lines":[{"line_number":83,"context_line":"  with_items: \"{{ kolla_openstack_custom_config }}\""},{"line_number":84,"context_line":"  register: find_src_result"},{"line_number":85,"context_line":"  vars:"},{"line_number":86,"context_line":"    loop_risk_dirs:"},{"line_number":87,"context_line":"      - \u0027proc\u0027"},{"line_number":88,"context_line":"      - \u0027sys\u0027"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"- name: Stat extra configuration files"},{"line_number":91,"context_line":"  stat:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"48730a86_b1352c42","line":88,"range":{"start_line":86,"start_character":0,"end_line":88,"end_character":13},"updated":"2021-10-05 09:30:26.000000000","message":"I\u0027m interested to know how kayobe custom config could end up with these in.","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":33466,"name":"Lukasz Zalewski","email":"lzal3wski@gmail.com","username":"lzalewski"},"change_message_id":"e215aef392f858c231f51dbf641119812f625c81","unresolved":true,"context_lines":[{"line_number":83,"context_line":"  with_items: \"{{ kolla_openstack_custom_config }}\""},{"line_number":84,"context_line":"  register: find_src_result"},{"line_number":85,"context_line":"  vars:"},{"line_number":86,"context_line":"    loop_risk_dirs:"},{"line_number":87,"context_line":"      - \u0027proc\u0027"},{"line_number":88,"context_line":"      - \u0027sys\u0027"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"- name: Stat extra configuration files"},{"line_number":91,"context_line":"  stat:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7a9671cd_f4828fb4","line":88,"range":{"start_line":86,"start_character":0,"end_line":88,"end_character":13},"in_reply_to":"48730a86_b1352c42","updated":"2021-10-11 10:02:29.000000000","message":"When kolla_extra_config_path does not have the value set (the default), https://opendev.org/openstack/kayobe/src/branch/master/ansible/roles/kolla-openstack/vars/main.yml#L102 becomes /. This is the why the molecule tests were timing out. \nThe workarounds in this patch are tailored towards that specific case, although there is a possibility of symlinking any of the extra config directories to / (or /sys, or /proc), or creating loops somewhere else.\nI wonder if given the upcoming re-write of the extra config feature, setting default value in https://opendev.org/openstack/kayobe/src/branch/master/ansible/roles/kolla-openstack/defaults/main.yml#L3 for now would be a sufficient workaround (although hitting the loop would be still a possibility)?","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"8f7cd76942867620c2e19c25fa6109901939df80","unresolved":true,"context_lines":[{"line_number":90,"context_line":"- name: Stat extra configuration files"},{"line_number":91,"context_line":"  stat:"},{"line_number":92,"context_line":"    path: \"{{ item.1.path }}\""},{"line_number":93,"context_line":"    follow: true"},{"line_number":94,"context_line":"  with_subelements:"},{"line_number":95,"context_line":"    - \"{{ find_src_result.results }}\""},{"line_number":96,"context_line":"    - files"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bb4f173b_31399a2c","line":93,"range":{"start_line":93,"start_character":12,"end_line":93,"end_character":16},"updated":"2021-10-05 09:30:26.000000000","message":"Why follow here but not for the find?","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":33466,"name":"Lukasz Zalewski","email":"lzal3wski@gmail.com","username":"lzalewski"},"change_message_id":"e215aef392f858c231f51dbf641119812f625c81","unresolved":true,"context_lines":[{"line_number":90,"context_line":"- name: Stat extra configuration files"},{"line_number":91,"context_line":"  stat:"},{"line_number":92,"context_line":"    path: \"{{ item.1.path }}\""},{"line_number":93,"context_line":"    follow: true"},{"line_number":94,"context_line":"  with_subelements:"},{"line_number":95,"context_line":"    - \"{{ find_src_result.results }}\""},{"line_number":96,"context_line":"    - files"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bcbd9d46_9519791f","line":93,"range":{"start_line":93,"start_character":12,"end_line":93,"end_character":16},"in_reply_to":"bb4f173b_31399a2c","updated":"2021-10-11 10:02:29.000000000","message":"The lack of follow in the find is to avoid getting into the loops. The follow in the stat call allows us to determine the type (isdir, isreg) that is then used in filtering down the line. Without it only islnk will be set to true.","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"8f7cd76942867620c2e19c25fa6109901939df80","unresolved":true,"context_lines":[{"line_number":97,"context_line":"    - skip_missing: true"},{"line_number":98,"context_line":"  register: stat_src_result"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"- name: Find extra configuration files in linked directories"},{"line_number":101,"context_line":"  find:"},{"line_number":102,"context_line":"    path: \"{{ link_dirs }}\""},{"line_number":103,"context_line":"    recurse: true"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"cab5b9d2_c0c7f132","line":100,"updated":"2021-10-05 09:30:26.000000000","message":"Would this work for doubly symlinked files?","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":33466,"name":"Lukasz Zalewski","email":"lzal3wski@gmail.com","username":"lzalewski"},"change_message_id":"e215aef392f858c231f51dbf641119812f625c81","unresolved":true,"context_lines":[{"line_number":97,"context_line":"    - skip_missing: true"},{"line_number":98,"context_line":"  register: stat_src_result"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"- name: Find extra configuration files in linked directories"},{"line_number":101,"context_line":"  find:"},{"line_number":102,"context_line":"    path: \"{{ link_dirs }}\""},{"line_number":103,"context_line":"    recurse: true"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5ca117de_45378dc8","line":100,"in_reply_to":"cab5b9d2_c0c7f132","updated":"2021-10-11 10:02:29.000000000","message":"Assuming that you referring to symlinks pointing at symlinks, then yes it should. Given the links pointing outside the environments/osdevlocal/kolla/config/cinder directory:\n\n ├── ceph.conf -\u003e ../../../../../kolla/config/ceph.conf.link\n ├── cinder-backup -\u003e ../../../../../kolla/config/cinder-backup-link\n ├── cinder-backup.conf\n ├── cinder-volume\n │   └── ceph.client.cinder.keyring\n └── cinder-volume.conf -\u003e ../../../../../kolla/config/cinder/cinder-volume.conf\n\nwhere\n\n ls -la ../../../../../kolla/config/cinder-backup-link\n lrwxrwxrwx. 1 vagrant vagrant 20 Oct  7 15:02 ../../../../../kolla/config/cinder-backup-link - \n \u003e cinder/cinder-backup\n ls -la ../../../../../kolla/config/ceph.conf.link\n lrwxrwxrwx. 1 vagrant vagrant 16 Oct  7 14:57 ../../../../../kolla/config/ceph.conf.link -\u003e \n cinder/ceph.conf\n\nkolla/config/cinder becomes\n\n ├── ceph.conf\n ├── cinder-backup\n │   ├── ceph.client.cinder-backup.keyring\n │   └── ceph.client.cinder.keyring\n ├── cinder-backup.conf\n ├── cinder-volume\n │   └── ceph.client.cinder.keyring\n └── cinder-volume.conf","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"8f7cd76942867620c2e19c25fa6109901939df80","unresolved":true,"context_lines":[{"line_number":110,"context_line":"    # Select the result that is directory symlink"},{"line_number":111,"context_line":"    target_item: \u003e-"},{"line_number":112,"context_line":"      {{ stat_src_result.results |"},{"line_number":113,"context_line":"         selectattr(\u0027item.0.item\u0027, \u0027equalto\u0027, item) |"},{"line_number":114,"context_line":"         selectattr(\u0027item.1.islnk\u0027, \u0027equalto\u0027, true) |"},{"line_number":115,"context_line":"         selectattr(\u0027stat.isdir\u0027, \u0027equalto\u0027, true) }}"},{"line_number":116,"context_line":"    link_dirs: \u003e-"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"f138062a_feea551a","line":113,"range":{"start_line":113,"start_character":9,"end_line":113,"end_character":53},"updated":"2021-10-05 09:30:26.000000000","message":"It would be a bit more efficient to use the together lookup: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/together_lookup.html","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":33466,"name":"Lukasz Zalewski","email":"lzal3wski@gmail.com","username":"lzalewski"},"change_message_id":"e215aef392f858c231f51dbf641119812f625c81","unresolved":true,"context_lines":[{"line_number":110,"context_line":"    # Select the result that is directory symlink"},{"line_number":111,"context_line":"    target_item: \u003e-"},{"line_number":112,"context_line":"      {{ stat_src_result.results |"},{"line_number":113,"context_line":"         selectattr(\u0027item.0.item\u0027, \u0027equalto\u0027, item) |"},{"line_number":114,"context_line":"         selectattr(\u0027item.1.islnk\u0027, \u0027equalto\u0027, true) |"},{"line_number":115,"context_line":"         selectattr(\u0027stat.isdir\u0027, \u0027equalto\u0027, true) }}"},{"line_number":116,"context_line":"    link_dirs: \u003e-"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"fa896d36_3e9a305e","line":113,"range":{"start_line":113,"start_character":9,"end_line":113,"end_character":53},"in_reply_to":"f138062a_feea551a","updated":"2021-10-11 10:02:29.000000000","message":"Will look into this","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"8f7cd76942867620c2e19c25fa6109901939df80","unresolved":true,"context_lines":[{"line_number":111,"context_line":"    target_item: \u003e-"},{"line_number":112,"context_line":"      {{ stat_src_result.results |"},{"line_number":113,"context_line":"         selectattr(\u0027item.0.item\u0027, \u0027equalto\u0027, item) |"},{"line_number":114,"context_line":"         selectattr(\u0027item.1.islnk\u0027, \u0027equalto\u0027, true) |"},{"line_number":115,"context_line":"         selectattr(\u0027stat.isdir\u0027, \u0027equalto\u0027, true) }}"},{"line_number":116,"context_line":"    link_dirs: \u003e-"},{"line_number":117,"context_line":"      {{ target_item |"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"70e7ef16_7d601900","line":114,"range":{"start_line":114,"start_character":34,"end_line":114,"end_character":51},"updated":"2021-10-05 09:30:26.000000000","message":"may be omitted","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":33466,"name":"Lukasz Zalewski","email":"lzal3wski@gmail.com","username":"lzalewski"},"change_message_id":"e215aef392f858c231f51dbf641119812f625c81","unresolved":true,"context_lines":[{"line_number":111,"context_line":"    target_item: \u003e-"},{"line_number":112,"context_line":"      {{ stat_src_result.results |"},{"line_number":113,"context_line":"         selectattr(\u0027item.0.item\u0027, \u0027equalto\u0027, item) |"},{"line_number":114,"context_line":"         selectattr(\u0027item.1.islnk\u0027, \u0027equalto\u0027, true) |"},{"line_number":115,"context_line":"         selectattr(\u0027stat.isdir\u0027, \u0027equalto\u0027, true) }}"},{"line_number":116,"context_line":"    link_dirs: \u003e-"},{"line_number":117,"context_line":"      {{ target_item |"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3c1b592d_98ef7a59","line":114,"range":{"start_line":114,"start_character":34,"end_line":114,"end_character":51},"in_reply_to":"70e7ef16_7d601900","updated":"2021-10-11 10:02:29.000000000","message":"Will fix","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"8f7cd76942867620c2e19c25fa6109901939df80","unresolved":true,"context_lines":[{"line_number":112,"context_line":"      {{ stat_src_result.results |"},{"line_number":113,"context_line":"         selectattr(\u0027item.0.item\u0027, \u0027equalto\u0027, item) |"},{"line_number":114,"context_line":"         selectattr(\u0027item.1.islnk\u0027, \u0027equalto\u0027, true) |"},{"line_number":115,"context_line":"         selectattr(\u0027stat.isdir\u0027, \u0027equalto\u0027, true) }}"},{"line_number":116,"context_line":"    link_dirs: \u003e-"},{"line_number":117,"context_line":"      {{ target_item |"},{"line_number":118,"context_line":"         selectattr(\u0027stat.path\u0027, \u0027defined\u0027) |"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"a7305a98_a342eaf6","line":115,"range":{"start_line":115,"start_character":32,"end_line":115,"end_character":49},"updated":"2021-10-05 09:30:26.000000000","message":"ditto","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"},{"author":{"_account_id":33466,"name":"Lukasz Zalewski","email":"lzal3wski@gmail.com","username":"lzalewski"},"change_message_id":"e215aef392f858c231f51dbf641119812f625c81","unresolved":true,"context_lines":[{"line_number":112,"context_line":"      {{ stat_src_result.results |"},{"line_number":113,"context_line":"         selectattr(\u0027item.0.item\u0027, \u0027equalto\u0027, item) |"},{"line_number":114,"context_line":"         selectattr(\u0027item.1.islnk\u0027, \u0027equalto\u0027, true) |"},{"line_number":115,"context_line":"         selectattr(\u0027stat.isdir\u0027, \u0027equalto\u0027, true) }}"},{"line_number":116,"context_line":"    link_dirs: \u003e-"},{"line_number":117,"context_line":"      {{ target_item |"},{"line_number":118,"context_line":"         selectattr(\u0027stat.path\u0027, \u0027defined\u0027) |"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bbcca216_2c086b10","line":115,"range":{"start_line":115,"start_character":32,"end_line":115,"end_character":49},"in_reply_to":"a7305a98_a342eaf6","updated":"2021-10-11 10:02:29.000000000","message":"Will fix","commit_id":"4093f4030ebacf5fdfbfcf50d13d2fc57c1ceaa0"}]}
