{ "info": { "author": "Bernardo Vale", "author_email": "bernardosilveiravale@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "# Molecule Ansible Galaxy Wrapper\n\nAn Ansible Galaxy wrapper to serve as a molecule dependency plugin with intra-dependencies support.\n\n\n## Motivation\n\nImagine the scenario, you have a Role named `child` that depends on a role called `parent` and `parent` depends on `grandparent`.\n\nTo install `child` you need to have `parent` and `grandparent` in your `roles_path`:\n\n```\nchild -> parent -> grandparent\n```\n\nAnsible Galaxy is smart enough to figure that out, all you have to do is define `grandparent` as a dependency of `parent` role inside `meta/main.yml` and then `parent` as a dependency inside `child` role `meta/main.yml` file.\n\nThe problem is that [molecule]() enforces tracking role dependencies inside a `requirements.yml` file, in that case, you have two options:\n\n1. Include both `parent` and `child` in your `requirements.yml` and simply ignore `meta/main.yml`\n1. Include `parent` inside `requirements.yml` and duplicate the same content inside `meta/main.yml`\n\nFirst approach might look reasonable in a scenarion like this, but you might have a more complex dependency relationship and in that case you will soon have big problems.\n\nThe latter looks ugly but at least you can delegate the responsability of figuring out the dependency tree to Ansible Galaxy.\n\n## Enter the Dirty Hack\n\nAt some point we will forget to append dependencies to both `requirements.yml` and `meta/main.yml`. To avoid this issue I've created this tiny wrapper that does basically two things:\n\n1. Copy the content of `requirements.yml` into `meta/main.yml` requirements list\n1. Run `ansible-galaxy install`\n\n\n# Usage\n\nInstall `molecule-galaxy wrapper`:\n\n```\npip install molecule-galaxy-wrapper\n```\n\nConfigure `molecule.yml` to use the warpper:\n\n```\ndependency:\n name: shell\n command: galaxywrapper\ndriver:\n name: docker\n...\n```\n\nTest it by running:\n\n```\nmolecule dependency\n```\n\nNow you can maintain role dependencies inside your `requirements.yml` file.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bernardoVale/molecule-galaxy-wrapper", "keywords": "molecule ansible ansible-galaxy galaxy dependency", "license": "", "maintainer": "", "maintainer_email": "", "name": "molecule-galaxy-wrapper", "package_url": "https://pypi.org/project/molecule-galaxy-wrapper/", "platform": "", "project_url": "https://pypi.org/project/molecule-galaxy-wrapper/", "project_urls": { "Homepage": "https://github.com/bernardoVale/molecule-galaxy-wrapper" }, "release_url": "https://pypi.org/project/molecule-galaxy-wrapper/0.0.4/", "requires_dist": [ "ruamel.yaml (>=0.15.87)" ], "requires_python": "", "summary": "A wrapper for ansible-galaxy that allows you to define role dependencies inside a requirements.yml", "version": "0.0.4" }, "last_serial": 4731446, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "811068bf2d87827766e10dccd02ad6cc", "sha256": "cb551afd5d0fb3e2c9978ec6e043dd2d221f775a06c7a0c13edb686833afa680" }, "downloads": -1, "filename": "molecule_galaxy_wrapper-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "811068bf2d87827766e10dccd02ad6cc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8859, "upload_time": "2019-01-22T19:58:55", "url": "https://files.pythonhosted.org/packages/24/cd/e73cc0e09443eebd5a2126210b5e246a78a321d333788f585c09352cb590/molecule_galaxy_wrapper-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1fbfbc8753e493f19fc9586b6d6e5b8a", "sha256": "0aa5a7a64a701c795e19da97b30cc9238c4b76436603afbaa510aeace896399d" }, "downloads": -1, "filename": "molecule-galaxy-wrapper-0.0.1.tar.gz", "has_sig": false, "md5_digest": "1fbfbc8753e493f19fc9586b6d6e5b8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3096, "upload_time": "2019-01-22T19:58:57", "url": "https://files.pythonhosted.org/packages/99/1f/40a5d249f16a22741c4ea53ef342bbc5b6dd9fdc1e529cf7b0a8f0239f09/molecule-galaxy-wrapper-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "83b5a1153f65cb69352fc42c8d29737d", "sha256": "5465519b4023d71a47c5733b0686a4313d05ca8e794ec08df0fca8299dc85342" }, "downloads": -1, "filename": "molecule_galaxy_wrapper-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "83b5a1153f65cb69352fc42c8d29737d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8469, "upload_time": "2019-01-22T20:22:04", "url": "https://files.pythonhosted.org/packages/37/7c/1e31c4f047f710a8e8c7741f63a41883a2241bc66e0543a314e369caa6be/molecule_galaxy_wrapper-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1af848223554e227de6dd094b382f31", "sha256": "2257f43067d43f694485040db0ee5194378c37427db209475370fe970913f450" }, "downloads": -1, "filename": "molecule-galaxy-wrapper-0.0.2.tar.gz", "has_sig": false, "md5_digest": "b1af848223554e227de6dd094b382f31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3115, "upload_time": "2019-01-22T20:22:05", "url": "https://files.pythonhosted.org/packages/78/a4/ed81ae13946b6fdcd33cafee58c467e8e718fc0520941710fd3f1f503055/molecule-galaxy-wrapper-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1a25e71ea95b688bae6b7b27d72449a7", "sha256": "0ef81aa2bf2351e0b841a2656e8af0a2823835896f4b608994c6a500ab40594c" }, "downloads": -1, "filename": "molecule_galaxy_wrapper-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1a25e71ea95b688bae6b7b27d72449a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9077, "upload_time": "2019-01-23T12:28:15", "url": "https://files.pythonhosted.org/packages/47/18/6ee4bf3ebf5169e92e29b60fa2b91e10cf6f625ced27795aedfb4f84137f/molecule_galaxy_wrapper-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07ba06ee83642a2e5ab55b3ef34e0082", "sha256": "13859d290f3a0c1eaac34c44284ac499ee50ea919597992ef1ac0a9059c83024" }, "downloads": -1, "filename": "molecule-galaxy-wrapper-0.0.3.tar.gz", "has_sig": false, "md5_digest": "07ba06ee83642a2e5ab55b3ef34e0082", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3557, "upload_time": "2019-01-23T12:28:16", "url": "https://files.pythonhosted.org/packages/6b/73/99c9c2a1c509eef4632f05ba1191352cfa7cc06d7fc6a9a15e453a176c27/molecule-galaxy-wrapper-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "2fc485ddb17793dfbade1bf872fd1605", "sha256": "ca23e51e44a49d3d40e81c73dc8fff5c22a64769541f1c937b571ab555430afa" }, "downloads": -1, "filename": "molecule_galaxy_wrapper-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2fc485ddb17793dfbade1bf872fd1605", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9079, "upload_time": "2019-01-23T13:40:08", "url": "https://files.pythonhosted.org/packages/9d/cf/8254b926923315f2c97a1c074e12edb3e026ba631b3f9180be2a7fb4f920/molecule_galaxy_wrapper-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01b806ff8727e639814f4d2ab4d0cde2", "sha256": "b599f51d2d8f8f5e0d92df29373b750d153ad921268d5f933fdfde53610edcd7" }, "downloads": -1, "filename": "molecule-galaxy-wrapper-0.0.4.tar.gz", "has_sig": false, "md5_digest": "01b806ff8727e639814f4d2ab4d0cde2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3571, "upload_time": "2019-01-23T13:40:09", "url": "https://files.pythonhosted.org/packages/3f/26/722c119ed18893513840d1c05a877a94d503638899aca597a18f09c2ad5e/molecule-galaxy-wrapper-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2fc485ddb17793dfbade1bf872fd1605", "sha256": "ca23e51e44a49d3d40e81c73dc8fff5c22a64769541f1c937b571ab555430afa" }, "downloads": -1, "filename": "molecule_galaxy_wrapper-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2fc485ddb17793dfbade1bf872fd1605", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9079, "upload_time": "2019-01-23T13:40:08", "url": "https://files.pythonhosted.org/packages/9d/cf/8254b926923315f2c97a1c074e12edb3e026ba631b3f9180be2a7fb4f920/molecule_galaxy_wrapper-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01b806ff8727e639814f4d2ab4d0cde2", "sha256": "b599f51d2d8f8f5e0d92df29373b750d153ad921268d5f933fdfde53610edcd7" }, "downloads": -1, "filename": "molecule-galaxy-wrapper-0.0.4.tar.gz", "has_sig": false, "md5_digest": "01b806ff8727e639814f4d2ab4d0cde2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3571, "upload_time": "2019-01-23T13:40:09", "url": "https://files.pythonhosted.org/packages/3f/26/722c119ed18893513840d1c05a877a94d503638899aca597a18f09c2ad5e/molecule-galaxy-wrapper-0.0.4.tar.gz" } ] }