azavea / ansible-java

An Ansible role for installing Java.
Apache License 2.0
4 stars 15 forks source link

Recursive symlink #17

Closed AMeng closed 8 years ago

AMeng commented 8 years ago

Packer uploads roles from ansible-galaxy and is unable to do that with this role because of a symlink. Packer gives the following error:

Error uploading playbook_dir directory: open /home/ansible/community-roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java/examples/roles/azavea.java: too many levels of symbolic links

Can this symlink be removed, and just have the example reference the role some other way?

hectcastro commented 8 years ago

We've run into this issue as well and currently resolve it by deleting the example directories before running Packer:

Bash

rm -rf deployment/ansible/roles/*/examples/

Python

for role_path in os.listdir(ansible_roles_path):
    examples_path = os.path.join(ansible_roles_path, role_path, 'examples')

    if role_path.startswith('azavea') and os.path.isdir(examples_path):
        LOGGER.debug('Removing %s', examples_path)
        shutil.rmtree(examples_path)

We don't have any immediate plans to remove the symlinks, but we are looking to replace the examples setup with one that makes use of Molecule long term, which should eliminate this issue.