)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Isolate Ansible from the deployment host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change allows the Ansible to be installed and executed from within"},{"line_number":10,"context_line":"a virtual environment. The openstack-ansible command wrapper has been"},{"line_number":11,"context_line":"rewritten to allow for auto-bootstraping based on a known version of Ansible"},{"line_number":12,"context_line":"which  can be changed using command line or environment variables."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5a18252c_07e98b14","line":9,"updated":"2016-04-13 22:49:26.000000000","message":"Ansible application? Ansible binary?","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Isolate Ansible from the deployment host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change allows the Ansible to be installed and executed from within"},{"line_number":10,"context_line":"a virtual environment. The openstack-ansible command wrapper has been"},{"line_number":11,"context_line":"rewritten to allow for auto-bootstraping based on a known version of Ansible"},{"line_number":12,"context_line":"which  can be changed using command line or environment variables."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5a18252c_dd548422","line":9,"in_reply_to":"5a18252c_07e98b14","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Notable Features:"},{"line_number":24,"context_line":"  * Install Ansible from git or PyPi within a virtual environment"},{"line_number":25,"context_line":"  * Ansible execution environment is contained within a versioned virtualenv"},{"line_number":26,"context_line":"    which allows for fast switching between Ansible versions while also ensuing"},{"line_number":27,"context_line":"    the host is not polluted with Ansible dependencies."},{"line_number":28,"context_line":"  * If the option `--osa-config` is used the CLI tool will temporary bind"},{"line_number":29,"context_line":"    mount the extra configuration path over the known \"/etc/openstack_deploy\""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5a18252c_c7c5d38e","line":26,"updated":"2016-04-13 22:49:26.000000000","message":"ensuring","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Notable Features:"},{"line_number":24,"context_line":"  * Install Ansible from git or PyPi within a virtual environment"},{"line_number":25,"context_line":"  * Ansible execution environment is contained within a versioned virtualenv"},{"line_number":26,"context_line":"    which allows for fast switching between Ansible versions while also ensuing"},{"line_number":27,"context_line":"    the host is not polluted with Ansible dependencies."},{"line_number":28,"context_line":"  * If the option `--osa-config` is used the CLI tool will temporary bind"},{"line_number":29,"context_line":"    mount the extra configuration path over the known \"/etc/openstack_deploy\""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5a18252c_fd59805b","line":26,"in_reply_to":"5a18252c_c7c5d38e","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  * Ansible execution environment is contained within a versioned virtualenv"},{"line_number":26,"context_line":"    which allows for fast switching between Ansible versions while also ensuing"},{"line_number":27,"context_line":"    the host is not polluted with Ansible dependencies."},{"line_number":28,"context_line":"  * If the option `--osa-config` is used the CLI tool will temporary bind"},{"line_number":29,"context_line":"    mount the extra configuration path over the known \"/etc/openstack_deploy\""},{"line_number":30,"context_line":"    directory. This is done to allow a deployer the ability to build multiple"},{"line_number":31,"context_line":"    clouds from a single host using multiple directory trees without having to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5a18252c_4738a3a0","line":28,"updated":"2016-04-13 22:49:26.000000000","message":"temporarily","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  * Ansible execution environment is contained within a versioned virtualenv"},{"line_number":26,"context_line":"    which allows for fast switching between Ansible versions while also ensuing"},{"line_number":27,"context_line":"    the host is not polluted with Ansible dependencies."},{"line_number":28,"context_line":"  * If the option `--osa-config` is used the CLI tool will temporary bind"},{"line_number":29,"context_line":"    mount the extra configuration path over the known \"/etc/openstack_deploy\""},{"line_number":30,"context_line":"    directory. This is done to allow a deployer the ability to build multiple"},{"line_number":31,"context_line":"    clouds from a single host using multiple directory trees without having to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5a18252c_fd306003","line":28,"in_reply_to":"5a18252c_4738a3a0","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"985336d2bf5fda6028dd2260d3fcfd663f701534","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    directory. This is done to allow a deployer the ability to build multiple"},{"line_number":31,"context_line":"    clouds from a single host using multiple directory trees without having to"},{"line_number":32,"context_line":"    manually move files around or create symlinks."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Closes-Bug: 1431324"},{"line_number":35,"context_line":"Change-Id: I41e60ffdcb0b0013ea41f150c05e7ace96b566dc"},{"line_number":36,"context_line":"Signed-off-by: Kevin Carter \u003ckevin.carter@rackspace.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":28,"id":"bab6814e_a46385db","line":33,"updated":"2016-05-19 11:26:29.000000000","message":"Please add \u0027Implements: blueprint ansible-2-1-support\u0027","commit_id":"5c87ad11d702019897b8749658b9192a3679c5df"}],"doc/source/developer-docs/scripts.rst":[{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":49,"context_line":"simply run ``ls`` on the **.ansible-runtime** directory within your home folder."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"For more information on all of the functions available within the"},{"line_number":52,"context_line":"``openstack-ansible`` command use the ``--osa-help`` to all of the available"},{"line_number":53,"context_line":"options."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":".. _core: https://github.com/ansible/ansible-modules-core"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a18252c_2762c7ad","line":52,"updated":"2016-04-13 22:49:26.000000000","message":"to list all","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":49,"context_line":"simply run ``ls`` on the **.ansible-runtime** directory within your home folder."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"For more information on all of the functions available within the"},{"line_number":52,"context_line":"``openstack-ansible`` command use the ``--osa-help`` to all of the available"},{"line_number":53,"context_line":"options."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":".. _core: https://github.com/ansible/ansible-modules-core"}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a18252c_5d487487","line":52,"in_reply_to":"5a18252c_2762c7ad","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  functional test."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"  The convergence test is the execution of an AIO build which aims to test"},{"line_number":204,"context_line":"  the primary code path for a functional environment. The functional test"},{"line_number":205,"context_line":"  then executes OpenStack\u0027s Tempest testing suite to verify that the"},{"line_number":206,"context_line":"  environment that has deployed successfully actually works."},{"line_number":207,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a18252c_e768cf89","line":204,"updated":"2016-04-13 22:49:26.000000000","message":"environment","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  functional test."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"  The convergence test is the execution of an AIO build which aims to test"},{"line_number":204,"context_line":"  the primary code path for a functional environment. The functional test"},{"line_number":205,"context_line":"  then executes OpenStack\u0027s Tempest testing suite to verify that the"},{"line_number":206,"context_line":"  environment that has deployed successfully actually works."},{"line_number":207,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"5a18252c_fd822093","line":204,"in_reply_to":"5a18252c_e768cf89","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"3dfe0f7b9ccf658695bf677e76c5e0e7e4c49a88","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"To see all of the installed versions of Ansible available on a given system"},{"line_number":49,"context_line":"simply run ``ls`` on the **.ansible-runtime** directory within your home folder."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"For more information on all of the functions available within the"},{"line_number":52,"context_line":"``openstack-ansible`` command use the ``--osa-help`` to list all of the available"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1a122d0e_93541d55","line":49,"updated":"2016-04-15 20:49:30.000000000","message":"use `openstack-ansible --runtime-versions-list` ?\nBasically same result, but gives more clear and immediate feedback.","commit_id":"6ae3b9832bf22fee06504478327810e5669ff708"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"8725ad0c8d49b70b76d77739564cacdbc8dcc8c1","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"To see all of the installed versions of Ansible available on a given system"},{"line_number":49,"context_line":"simply run ``ls`` on the **.ansible-runtime** directory within your home folder."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"For more information on all of the functions available within the"},{"line_number":52,"context_line":"``openstack-ansible`` command use the ``--osa-help`` to list all of the available"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1a122d0e_061e08ba","line":49,"in_reply_to":"1a122d0e_93541d55","updated":"2016-04-16 02:55:37.000000000","message":"Done","commit_id":"6ae3b9832bf22fee06504478327810e5669ff708"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"3a1decd15f8c0a21a5ae0030ed4328e05405cd50","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"To see all of the installed versions of Ansible available on a given system"},{"line_number":49,"context_line":"simply run ``openstack-ansible --runtime-versions-lis`` which will print all"},{"line_number":50,"context_line":"available runtime versions."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"For more information on all of the functions available within the"}],"source_content_type":"text/x-rst","patch_set":21,"id":"1a122d0e_b8ee56b2","line":49,"range":{"start_line":49,"start_character":50,"end_line":49,"end_character":53},"updated":"2016-04-21 23:56:55.000000000","message":"small typo: list","commit_id":"290cba0adc80bcd0298649306b3061ca76a31270"},{"author":{"_account_id":20038,"name":"Michael Gugino","email":"michael.gugino@walmart.com","username":"michaelgugino"},"change_message_id":"e66f8788be88171c39cd6cf79ec33ce1462818ad","unresolved":false,"context_lines":[{"line_number":34,"context_line":"arguments to ``ansible-playbook`` as a convenience."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Once the bootstrap command has been executed, Ansible will be installed within"},{"line_number":37,"context_line":"the executing user\u0027s home folder at ``$HOME/.ansible-runtime/$VERSION``. While"},{"line_number":38,"context_line":"the ``openstack-ansible`` command will execute Ansible functions from within the"},{"line_number":39,"context_line":"virtual environment automatically, the convenience script is not required. To"},{"line_number":40,"context_line":"activate the virtual environment for access to normal Ansible commands simply"}],"source_content_type":"text/x-rst","patch_set":26,"id":"dab17558_b1b7fc38","line":37,"range":{"start_line":37,"start_character":38,"end_line":37,"end_character":69},"updated":"2016-05-10 15:38:32.000000000","message":"why can\u0027t we place it in /opt where it has been?","commit_id":"6a7597004a74b0c11497b323bb0e3df20d2acc88"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"e939b6e61bc0ad49dd6e497dd9f0bfba92619d6c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"arguments to ``ansible-playbook`` as a convenience."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Once the bootstrap command has been executed, Ansible will be installed within"},{"line_number":37,"context_line":"the executing user\u0027s home folder at ``$HOME/.ansible-runtime/$VERSION``. While"},{"line_number":38,"context_line":"the ``openstack-ansible`` command will execute Ansible functions from within the"},{"line_number":39,"context_line":"virtual environment automatically, the convenience script is not required. To"},{"line_number":40,"context_line":"activate the virtual environment for access to normal Ansible commands simply"}],"source_content_type":"text/x-rst","patch_set":26,"id":"dab17558_8d29d98c","line":37,"range":{"start_line":37,"start_character":38,"end_line":37,"end_character":69},"in_reply_to":"dab17558_b1b7fc38","updated":"2016-05-11 06:31:36.000000000","message":"Before the introduction of this tool Ansible had been installed in the root namespace. This tool sets the default location to the users home folder which should allow multiple users to have various Ansible runtime environments based on a particular users needs/wants. That said, the runtime path can be set using the \"--runtime-path\" switch.","commit_id":"6a7597004a74b0c11497b323bb0e3df20d2acc88"}],"doc/source/install-guide/install-infrastructure.rst":[{"author":{"_account_id":20038,"name":"Michael Gugino","email":"michael.gugino@walmart.com","username":"michaelgugino"},"change_message_id":"e66f8788be88171c39cd6cf79ec33ce1462818ad","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"   .. code-block:: shell-session"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"       # openstack-ansible --adhoc galera_container -m shell -a \"mysql \\"},{"line_number":63,"context_line":"       -h localhost -e \u0027show status like \\\"%wsrep_cluster_%\\\";\u0027\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"   Example output:"}],"source_content_type":"text/x-rst","patch_set":26,"id":"dab17558_b17ffca9","line":62,"range":{"start_line":62,"start_character":9,"end_line":62,"end_character":72},"updated":"2016-05-10 15:38:32.000000000","message":"I would prefer we teach users how to use venv instead of forcing them to use this command in such a way.","commit_id":"6a7597004a74b0c11497b323bb0e3df20d2acc88"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"e939b6e61bc0ad49dd6e497dd9f0bfba92619d6c","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"   .. code-block:: shell-session"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"       # openstack-ansible --adhoc galera_container -m shell -a \"mysql \\"},{"line_number":63,"context_line":"       -h localhost -e \u0027show status like \\\"%wsrep_cluster_%\\\";\u0027\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"   Example output:"}],"source_content_type":"text/x-rst","patch_set":26,"id":"dab17558_6d53d517","line":62,"range":{"start_line":62,"start_character":9,"end_line":62,"end_character":72},"in_reply_to":"dab17558_b17ffca9","updated":"2016-05-11 06:31:36.000000000","message":"I don\u0027t mind teaching users to execute from the venv however I think this is a generally simpler option which improves upon a pattern we already have when it comes to the execution of ansible playbooks.","commit_id":"6a7597004a74b0c11497b323bb0e3df20d2acc88"}],"releasenotes/notes/new-openstack-ansible-command-1fdbf54ba7b4ac7a.yaml":[{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    using the environment variable **ANSIBLE_RUNTIME_PATH** or the CLI switch"},{"line_number":13,"context_line":"    *--run-time-path*."},{"line_number":14,"context_line":"  - The ``openstack-ansible`` command now allows for fast switching between Ansible"},{"line_number":15,"context_line":"    versions while also ensuing the host is not polluted with Ansible dependencies. To"},{"line_number":16,"context_line":"    switch Ansible versions the enviornment variables **ANSIBLE_PYPI_VERSION** or"},{"line_number":17,"context_line":"    **ANSIBLE_GIT_VERSION** can be set or the cli switches *--bootstrap-git-version* or"},{"line_number":18,"context_line":"    *--bootstrap-pypi-version* can be used."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5a18252c_e7160ff0","line":15,"updated":"2016-04-13 22:49:26.000000000","message":"ensuring","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    using the environment variable **ANSIBLE_RUNTIME_PATH** or the CLI switch"},{"line_number":13,"context_line":"    *--run-time-path*."},{"line_number":14,"context_line":"  - The ``openstack-ansible`` command now allows for fast switching between Ansible"},{"line_number":15,"context_line":"    versions while also ensuing the host is not polluted with Ansible dependencies. To"},{"line_number":16,"context_line":"    switch Ansible versions the enviornment variables **ANSIBLE_PYPI_VERSION** or"},{"line_number":17,"context_line":"    **ANSIBLE_GIT_VERSION** can be set or the cli switches *--bootstrap-git-version* or"},{"line_number":18,"context_line":"    *--bootstrap-pypi-version* can be used."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5a18252c_fde6a0b2","line":15,"in_reply_to":"5a18252c_e7160ff0","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    *--run-time-path*."},{"line_number":14,"context_line":"  - The ``openstack-ansible`` command now allows for fast switching between Ansible"},{"line_number":15,"context_line":"    versions while also ensuing the host is not polluted with Ansible dependencies. To"},{"line_number":16,"context_line":"    switch Ansible versions the enviornment variables **ANSIBLE_PYPI_VERSION** or"},{"line_number":17,"context_line":"    **ANSIBLE_GIT_VERSION** can be set or the cli switches *--bootstrap-git-version* or"},{"line_number":18,"context_line":"    *--bootstrap-pypi-version* can be used."},{"line_number":19,"context_line":"  - When using the ``openstack-ansible`` command the option `--osa-config` can be"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5a18252c_47d4231f","line":16,"updated":"2016-04-13 22:49:26.000000000","message":"environment","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    *--run-time-path*."},{"line_number":14,"context_line":"  - The ``openstack-ansible`` command now allows for fast switching between Ansible"},{"line_number":15,"context_line":"    versions while also ensuing the host is not polluted with Ansible dependencies. To"},{"line_number":16,"context_line":"    switch Ansible versions the enviornment variables **ANSIBLE_PYPI_VERSION** or"},{"line_number":17,"context_line":"    **ANSIBLE_GIT_VERSION** can be set or the cli switches *--bootstrap-git-version* or"},{"line_number":18,"context_line":"    *--bootstrap-pypi-version* can be used."},{"line_number":19,"context_line":"  - When using the ``openstack-ansible`` command the option `--osa-config` can be"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5a18252c_7de9f07f","line":16,"in_reply_to":"5a18252c_47d4231f","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    **ANSIBLE_GIT_VERSION** can be set or the cli switches *--bootstrap-git-version* or"},{"line_number":18,"context_line":"    *--bootstrap-pypi-version* can be used."},{"line_number":19,"context_line":"  - When using the ``openstack-ansible`` command the option `--osa-config` can be"},{"line_number":20,"context_line":"    used temporary bind mount a configuration path over the known"},{"line_number":21,"context_line":"    \"/etc/openstack_deploy\" directory. This is done to allow a deployer the ability"},{"line_number":22,"context_line":"    to build multiple clouds from a single host using multiple directory trees without"},{"line_number":23,"context_line":"    having to manually move files around or create symlinks. This capability does require"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5a18252c_c7e833e5","line":20,"updated":"2016-04-13 22:49:26.000000000","message":"to temporarily","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    **ANSIBLE_GIT_VERSION** can be set or the cli switches *--bootstrap-git-version* or"},{"line_number":18,"context_line":"    *--bootstrap-pypi-version* can be used."},{"line_number":19,"context_line":"  - When using the ``openstack-ansible`` command the option `--osa-config` can be"},{"line_number":20,"context_line":"    used temporary bind mount a configuration path over the known"},{"line_number":21,"context_line":"    \"/etc/openstack_deploy\" directory. This is done to allow a deployer the ability"},{"line_number":22,"context_line":"    to build multiple clouds from a single host using multiple directory trees without"},{"line_number":23,"context_line":"    having to manually move files around or create symlinks. This capability does require"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5a18252c_9dfe8c36","line":20,"in_reply_to":"5a18252c_c7e833e5","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    and that the default OpenStack-Ansible runtime is available for use."},{"line_number":29,"context_line":"deprecations:"},{"line_number":30,"context_line":"  - System installed versions of Ansible will no longer be supported. While installing"},{"line_number":31,"context_line":"    ansible on the base system in the root path will work the ``openstack-ansible``"},{"line_number":32,"context_line":"    command will no longer work with it."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5a18252c_27be47d4","line":31,"updated":"2016-04-13 22:49:26.000000000","message":"Ansible (capitalised)","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    and that the default OpenStack-Ansible runtime is available for use."},{"line_number":29,"context_line":"deprecations:"},{"line_number":30,"context_line":"  - System installed versions of Ansible will no longer be supported. While installing"},{"line_number":31,"context_line":"    ansible on the base system in the root path will work the ``openstack-ansible``"},{"line_number":32,"context_line":"    command will no longer work with it."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"5a18252c_7da0d043","line":31,"in_reply_to":"5a18252c_27be47d4","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"da90b444f0a045e73443be4471b8549a614c1622","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    **ANSIBLE_GIT_VERSION** can be set or the cli switches *--bootstrap-git-version* or"},{"line_number":18,"context_line":"    *--bootstrap-pypi-version* can be used."},{"line_number":19,"context_line":"  - When using the ``openstack-ansible`` command the option `--osa-config` can be"},{"line_number":20,"context_line":"    used temporarily bind mount a configuration path over the known"},{"line_number":21,"context_line":"    \"/etc/openstack_deploy\" directory. This is done to allow a deployer the ability"},{"line_number":22,"context_line":"    to build multiple clouds from a single host using multiple directory trees without"},{"line_number":23,"context_line":"    having to manually move files around or create symlinks. This capability does require"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"1a122d0e_318f0925","line":20,"updated":"2016-04-15 17:48:36.000000000","message":"nit: \"used to \"","commit_id":"5018041f20bf8c420b08595755bc78d0ae82ca1b"},{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"da90b444f0a045e73443be4471b8549a614c1622","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    *--bootstrap-pypi-version* can be used."},{"line_number":19,"context_line":"  - When using the ``openstack-ansible`` command the option `--osa-config` can be"},{"line_number":20,"context_line":"    used temporarily bind mount a configuration path over the known"},{"line_number":21,"context_line":"    \"/etc/openstack_deploy\" directory. This is done to allow a deployer the ability"},{"line_number":22,"context_line":"    to build multiple clouds from a single host using multiple directory trees without"},{"line_number":23,"context_line":"    having to manually move files around or create symlinks. This capability does require"},{"line_number":24,"context_line":"    escalated privileges."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"1a122d0e_71b061de","line":21,"range":{"start_line":21,"start_character":44,"end_line":21,"end_character":83},"updated":"2016-04-15 17:48:36.000000000","message":"\"allows a deployer\"","commit_id":"5018041f20bf8c420b08595755bc78d0ae82ca1b"}],"scripts/bootstrap-ansible.sh":[{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"da90b444f0a045e73443be4471b8549a614c1622","unresolved":false,"context_lines":[{"line_number":65,"context_line":"chmod +x /usr/local/bin/openstack-ansible"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"# Bootstrap the Ansible runtime environment and grab the role requirements if needed"},{"line_number":68,"context_line":"if [ -f \"${ANSIBLE_ROLE_FILE}\" ];then"},{"line_number":69,"context_line":"  openstack-ansible --osa-extra-requirement-file requirements.txt \\"},{"line_number":70,"context_line":"                    --galaxy \\"},{"line_number":71,"context_line":"                    install \\"}],"source_content_type":"text/x-sh","patch_set":15,"id":"1a122d0e_5103a573","line":68,"updated":"2016-04-15 17:48:36.000000000","message":"Do we still need to support the absence of a role requirements file now that we\u0027ve completed the IRR work?","commit_id":"5018041f20bf8c420b08595755bc78d0ae82ca1b"}],"scripts/openstack-ansible.sh":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"7539fafd6e8b8760d9b5f581c7f6516523e8aa87","unresolved":false,"context_lines":[{"line_number":116,"context_line":"RUN_HELP\u003dfalse"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"# Environment variables"},{"line_number":119,"context_line":"ANSIBLE_INSTALL_USE_PYPI\u003d\"${ANSIBLE_INSTALL_USE_PYPI:-false}\""},{"line_number":120,"context_line":"ANSIBLE_RUNTIME_PATH\u003d\"${ANSIBLE_RUNTIME_PATH:-${HOME}/.ansible-runtime}\""},{"line_number":121,"context_line":"ANSIBLE_PYPI_VERSION\u003d\"${ANSIBLE_PYPI_VERSION:-1.9.4}\""},{"line_number":122,"context_line":"ANSIBLE_GIT_VERSION\u003d\"${ANSIBLE_GIT_VERSION:-v1.9.4-1}\""}],"source_content_type":"text/x-sh","patch_set":10,"id":"5a18252c_d4363151","line":119,"range":{"start_line":119,"start_character":54,"end_line":119,"end_character":59},"updated":"2016-04-13 17:12:48.000000000","message":"I think this should be true by default. While we have used the git source in the past, I don\u0027t think we need to unless we happen to be testing a pre-release version.","commit_id":"42f5a980f8875763a4c93d60b6c069d19cb2092d"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"a2c8635b54c4ffce0793aa3cd21ddf27cc84cd73","unresolved":false,"context_lines":[{"line_number":116,"context_line":"RUN_HELP\u003dfalse"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"# Environment variables"},{"line_number":119,"context_line":"ANSIBLE_INSTALL_USE_PYPI\u003d\"${ANSIBLE_INSTALL_USE_PYPI:-false}\""},{"line_number":120,"context_line":"ANSIBLE_RUNTIME_PATH\u003d\"${ANSIBLE_RUNTIME_PATH:-${HOME}/.ansible-runtime}\""},{"line_number":121,"context_line":"ANSIBLE_PYPI_VERSION\u003d\"${ANSIBLE_PYPI_VERSION:-1.9.4}\""},{"line_number":122,"context_line":"ANSIBLE_GIT_VERSION\u003d\"${ANSIBLE_GIT_VERSION:-v1.9.4-1}\""}],"source_content_type":"text/x-sh","patch_set":10,"id":"5a18252c_1e055fbb","line":119,"range":{"start_line":119,"start_character":54,"end_line":119,"end_character":59},"in_reply_to":"5a18252c_d4363151","updated":"2016-04-13 19:45:46.000000000","message":"Done","commit_id":"42f5a980f8875763a4c93d60b6c069d19cb2092d"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"7539fafd6e8b8760d9b5f581c7f6516523e8aa87","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                                   The set runtime path is ${ANSIBLE_RUNTIME_PATH}"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"Ansible Commands:"},{"line_number":218,"context_line":"    --adhoc                      | Run an adhoc ansible command"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    --galaxy                     | Run an Ansible galaxy command"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-sh","patch_set":10,"id":"5a18252c_74163da8","line":218,"range":{"start_line":218,"start_character":48,"end_line":218,"end_character":55},"updated":"2016-04-13 17:12:48.000000000","message":"This should be capitalised for consistency.","commit_id":"42f5a980f8875763a4c93d60b6c069d19cb2092d"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"a2c8635b54c4ffce0793aa3cd21ddf27cc84cd73","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                                   The set runtime path is ${ANSIBLE_RUNTIME_PATH}"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"Ansible Commands:"},{"line_number":218,"context_line":"    --adhoc                      | Run an adhoc ansible command"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    --galaxy                     | Run an Ansible galaxy command"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-sh","patch_set":10,"id":"5a18252c_5ed4f71e","line":218,"range":{"start_line":218,"start_character":48,"end_line":218,"end_character":55},"in_reply_to":"5a18252c_74163da8","updated":"2016-04-13 19:45:46.000000000","message":"Done","commit_id":"42f5a980f8875763a4c93d60b6c069d19cb2092d"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"7539fafd6e8b8760d9b5f581c7f6516523e8aa87","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    --playbook                   | Run an Ansible playbook command"},{"line_number":223,"context_line":"                                   This is the DEFAULT ACTION if no other command option is set"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"OpenStack Ansible options:"},{"line_number":226,"context_line":"    --osa-config                 | Set the base OpenStack-Ansible configuration directory"},{"line_number":227,"context_line":"                                   The default is ${OSA_CONFIG_DIR}"},{"line_number":228,"context_line":"                                   * If this option is set the path provided will be mounted"}],"source_content_type":"text/x-sh","patch_set":10,"id":"5a18252c_b410d5a9","line":225,"range":{"start_line":225,"start_character":0,"end_line":225,"end_character":17},"updated":"2016-04-13 17:12:48.000000000","message":"OpenStack-Ansible","commit_id":"42f5a980f8875763a4c93d60b6c069d19cb2092d"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"a2c8635b54c4ffce0793aa3cd21ddf27cc84cd73","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    --playbook                   | Run an Ansible playbook command"},{"line_number":223,"context_line":"                                   This is the DEFAULT ACTION if no other command option is set"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"OpenStack Ansible options:"},{"line_number":226,"context_line":"    --osa-config                 | Set the base OpenStack-Ansible configuration directory"},{"line_number":227,"context_line":"                                   The default is ${OSA_CONFIG_DIR}"},{"line_number":228,"context_line":"                                   * If this option is set the path provided will be mounted"}],"source_content_type":"text/x-sh","patch_set":10,"id":"5a18252c_fe16a3ef","line":225,"range":{"start_line":225,"start_character":0,"end_line":225,"end_character":17},"in_reply_to":"5a18252c_b410d5a9","updated":"2016-04-13 19:45:46.000000000","message":"Done","commit_id":"42f5a980f8875763a4c93d60b6c069d19cb2092d"},{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"4483143987b9bc06c88cbad75ce0cd05ef2721c2","unresolved":false,"context_lines":[{"line_number":276,"context_line":"    shift"},{"line_number":277,"context_line":"done"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"# Help data, his is placed lower than the constants so information can be seen that"},{"line_number":280,"context_line":"#  may have been set on the CLI."},{"line_number":281,"context_line":"HELP_INFO\u003d\"OpenStack-Ansible command help:"},{"line_number":282,"context_line":"Default Environment Variables:"}],"source_content_type":"text/x-sh","patch_set":14,"id":"5a18252c_e7728f48","line":279,"updated":"2016-04-13 22:49:26.000000000","message":"this","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"d63acb2300851b7557ec47931f3b58307b4cd2dc","unresolved":false,"context_lines":[{"line_number":276,"context_line":"    shift"},{"line_number":277,"context_line":"done"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"# Help data, his is placed lower than the constants so information can be seen that"},{"line_number":280,"context_line":"#  may have been set on the CLI."},{"line_number":281,"context_line":"HELP_INFO\u003d\"OpenStack-Ansible command help:"},{"line_number":282,"context_line":"Default Environment Variables:"}],"source_content_type":"text/x-sh","patch_set":14,"id":"5a18252c_5dd514b7","line":279,"in_reply_to":"5a18252c_e7728f48","updated":"2016-04-14 01:29:15.000000000","message":"Done","commit_id":"bea2157868a1368a06990522d6eb9a6cb6d64c61"},{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"da90b444f0a045e73443be4471b8549a614c1622","unresolved":false,"context_lines":[{"line_number":20,"context_line":"#     This tool was created to ease the use of Ansible with multiple variable files"},{"line_number":21,"context_line":"#     and provide the ability to execute an OpenStack-Ansible deployment using separated"},{"line_number":22,"context_line":"#     configuration directories. This gives deployers the ability to do multiple deployments"},{"line_number":23,"context_line":"#     all from the same hosts without going the the mess of creating and removing symlinks"},{"line_number":24,"context_line":"#"},{"line_number":25,"context_line":"#     This tool also makes it easy to execute different versions of Ansible installed"},{"line_number":26,"context_line":"#     via different sources. The Ansible application run time is set within a known"}],"source_content_type":"text/x-sh","patch_set":15,"id":"1a122d0e_319549e4","line":23,"updated":"2016-04-15 17:48:36.000000000","message":"\"resorting to\"","commit_id":"5018041f20bf8c420b08595755bc78d0ae82ca1b"},{"author":{"_account_id":14805,"name":"Jimmy McCrory","email":"jimmy.mccrory@gmail.com","username":"jimmy-mccrory"},"change_message_id":"3dfe0f7b9ccf658695bf677e76c5e0e7e4c49a88","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"function ansible_playbook {"},{"line_number":177,"context_line":"    # Discover the variable files."},{"line_number":178,"context_line":"    VAR1\u003d\"$(for i in $(ls /etc/openstack_deploy/user_*.yml); do echo -ne \"-e @$i \"; done)\""},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # Run the ansible playbook command."},{"line_number":181,"context_line":"    command_run \"ansible-playbook ${VAR1} ${ARGUMENTS}\""}],"source_content_type":"text/x-sh","patch_set":16,"id":"1a122d0e_f3f2b16e","line":178,"updated":"2016-04-15 20:49:30.000000000","message":"This needs to take into account the user specified osa-config folder, or happen after it\u0027s mounted.\nOtherwise, only user_* files in the \u0027real\u0027 /etc/openstack_deploy/ folder are passed instead of files in the given osa-config.","commit_id":"6ae3b9832bf22fee06504478327810e5669ff708"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"8725ad0c8d49b70b76d77739564cacdbc8dcc8c1","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"function ansible_playbook {"},{"line_number":177,"context_line":"    # Discover the variable files."},{"line_number":178,"context_line":"    VAR1\u003d\"$(for i in $(ls /etc/openstack_deploy/user_*.yml); do echo -ne \"-e @$i \"; done)\""},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # Run the ansible playbook command."},{"line_number":181,"context_line":"    command_run \"ansible-playbook ${VAR1} ${ARGUMENTS}\""}],"source_content_type":"text/x-sh","patch_set":16,"id":"1a122d0e_267864f2","line":178,"in_reply_to":"1a122d0e_f3f2b16e","updated":"2016-04-16 02:55:37.000000000","message":"Great catch, I\u0027m updating this now.","commit_id":"6ae3b9832bf22fee06504478327810e5669ff708"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"5e5839638c54928aa0f351d4243a36f8e996a8eb","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            shift"},{"line_number":245,"context_line":"            ANSIBLE_RUNTIME_VERSION\u003d\"${1}\""},{"line_number":246,"context_line":"        ;;"},{"line_number":247,"context_line":"        -rvl|--runtime-versions-list)"},{"line_number":248,"context_line":"            LIST_VERSIONS\u003dtrue"},{"line_number":249,"context_line":"        ;;"},{"line_number":250,"context_line":"        --playbook)"}],"source_content_type":"text/x-sh","patch_set":21,"id":"1a122d0e_b43775e2","line":247,"range":{"start_line":247,"start_character":9,"end_line":247,"end_character":12},"updated":"2016-04-18 12:00:37.000000000","message":"Could you rename to -rtvl, to be consistent with the others parameters? \nOr maybe remove the t from the other ones, this way you only have to remember that the argument is the first letter of each word describing the function?","commit_id":"290cba0adc80bcd0298649306b3061ca76a31270"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"db681a09589321e2a359ad4bf59448b2e8ed8d49","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            shift"},{"line_number":245,"context_line":"            ANSIBLE_RUNTIME_VERSION\u003d\"${1}\""},{"line_number":246,"context_line":"        ;;"},{"line_number":247,"context_line":"        -rvl|--runtime-versions-list)"},{"line_number":248,"context_line":"            LIST_VERSIONS\u003dtrue"},{"line_number":249,"context_line":"        ;;"},{"line_number":250,"context_line":"        --playbook)"}],"source_content_type":"text/x-sh","patch_set":21,"id":"1a122d0e_b8ff76a9","line":247,"range":{"start_line":247,"start_character":9,"end_line":247,"end_character":12},"in_reply_to":"1a122d0e_b43775e2","updated":"2016-04-21 21:41:15.000000000","message":"I can if you think it best however I think its good as-is.","commit_id":"290cba0adc80bcd0298649306b3061ca76a31270"},{"author":{"_account_id":20038,"name":"Michael Gugino","email":"michael.gugino@walmart.com","username":"michaelgugino"},"change_message_id":"e66f8788be88171c39cd6cf79ec33ce1462818ad","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"# Copyright 2014, Rackspace US, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"}],"source_content_type":"text/x-sh","patch_set":26,"id":"dab17558_31ae6c81","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":19},"updated":"2016-05-10 15:38:32.000000000","message":"This file is a little more complicated that I envisioned.\n\nI felt this should have relatively few options, basically just set a default venv and have the option to use an alternate.  There is a lot going on in here.","commit_id":"6a7597004a74b0c11497b323bb0e3df20d2acc88"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"e939b6e61bc0ad49dd6e497dd9f0bfba92619d6c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"# Copyright 2014, Rackspace US, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"}],"source_content_type":"text/x-sh","patch_set":26,"id":"dab17558_82f1a86d","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":19},"in_reply_to":"dab17558_31ae6c81","updated":"2016-05-11 06:31:36.000000000","message":"There is a lot going on but the bulk of the code is documentation, help information, and tests. From the complexity standpoint, most of the hard work is dealing with the installation of Ansible from both git and PyPi sources. I could simplify this further however I think the current implementation has a nice balance of functionality and simplicy. Additionally, I\u0027ve found the functionality the updated tool provides to be immensely useful in several of the environments I\u0027ve been maintaining.","commit_id":"6a7597004a74b0c11497b323bb0e3df20d2acc88"}],"scripts/run-playbooks.sh":[{"author":{"_account_id":20038,"name":"Michael Gugino","email":"michael.gugino@walmart.com","username":"michaelgugino"},"change_message_id":"e66f8788be88171c39cd6cf79ec33ce1462818ad","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    # Bring the lxc bridge down and back up to ensures the iptables rules are in-place"},{"line_number":54,"context_line":"    # This also will ensure that the lxc dnsmasq rules are active."},{"line_number":55,"context_line":"    mkdir -p \"${COMMAND_LOGS}/host_net_bounce\""},{"line_number":56,"context_line":"    openstack-ansible --adhoc hosts -m shell \\"},{"line_number":57,"context_line":"                      -a \u0027(ifdown lxcbr0 || true); ifup lxcbr0\u0027 \\"},{"line_number":58,"context_line":"                      -t \"${COMMAND_LOGS}/host_net_bounce\" \\"},{"line_number":59,"context_line":"                      \u0026\u003e ${COMMAND_LOGS}/host_net_bounce.log"}],"source_content_type":"text/x-sh","patch_set":26,"id":"dab17558_310aec79","line":56,"range":{"start_line":56,"start_character":4,"end_line":56,"end_character":44},"updated":"2016-05-10 15:38:32.000000000","message":"This is a shell script, why not just enter and exit the venv in the shell script instead of moving a bunch of logic into the openstack-ansible script?","commit_id":"6a7597004a74b0c11497b323bb0e3df20d2acc88"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"e939b6e61bc0ad49dd6e497dd9f0bfba92619d6c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    # Bring the lxc bridge down and back up to ensures the iptables rules are in-place"},{"line_number":54,"context_line":"    # This also will ensure that the lxc dnsmasq rules are active."},{"line_number":55,"context_line":"    mkdir -p \"${COMMAND_LOGS}/host_net_bounce\""},{"line_number":56,"context_line":"    openstack-ansible --adhoc hosts -m shell \\"},{"line_number":57,"context_line":"                      -a \u0027(ifdown lxcbr0 || true); ifup lxcbr0\u0027 \\"},{"line_number":58,"context_line":"                      -t \"${COMMAND_LOGS}/host_net_bounce\" \\"},{"line_number":59,"context_line":"                      \u0026\u003e ${COMMAND_LOGS}/host_net_bounce.log"}],"source_content_type":"text/x-sh","patch_set":26,"id":"dab17558_c28290c7","line":56,"range":{"start_line":56,"start_character":4,"end_line":56,"end_character":44},"in_reply_to":"dab17558_310aec79","updated":"2016-05-11 06:31:36.000000000","message":"While python virtual environments are easy to work with for developers I\u0027ve found most folks find them complex and cumbersome. The intent here is to simplify the deployers life and workflow by using the single entry point that we\u0027ve created and been documenting for some time now which is the ``openstack-ansible`` cli tool. That said, I\u0027ve documented the enter and exit of a virtualenv if a deployer doesn\u0027t want to use the tooling.","commit_id":"6a7597004a74b0c11497b323bb0e3df20d2acc88"}]}
