)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"92d318a613ca425cb9eae5a84badb9afe7613d00","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The py_pkgs lookup plugin will now handle multiple sources. This change"},{"line_number":10,"context_line":"was needed to enable the system to allow for overrides of repo_package"},{"line_number":11,"context_line":"resources and general python packaging as found throughout the stack."},{"line_number":12,"context_line":"The module has p residence as it loads / searches for packages and he item"},{"line_number":13,"context_line":"loaded last is the one that has the most precedence."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The repo-build play has been updated to now search for compatible packages"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa80f949_cae84b7f","line":12,"updated":"2015-11-04 16:05:22.000000000","message":"p residence","commit_id":"7347e1350ad2084e11280712ca69eef35fb3a29f"}],"doc/source/developer-docs/extending.rst":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"d251fb708a5bcc27f0f777107ec51e62914f638d","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":".. code-block:: yaml"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    swift_requires_pip_packages:"},{"line_number":171,"context_line":"      - virtualenv"},{"line_number":172,"context_line":"      - virtualenv-tools"},{"line_number":173,"context_line":"      - python-keystoneclient"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_0a4e536f","line":170,"updated":"2015-11-04 15:45:40.000000000","message":"could this be \u0027foo_requires_pip_packages\u0027? ie what is the key requirement here for package inclusion into the repository without necessarily overriding a service set of packages?","commit_id":"7347e1350ad2084e11280712ca69eef35fb3a29f"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"82f5f78215019efb56cd286a513fdca39e69a74b","unresolved":false,"context_lines":[{"line_number":146,"context_line":"The system will allow you to install and build any package that is a python"},{"line_number":147,"context_line":"installable. The repository infrastructure will look for and create any"},{"line_number":148,"context_line":"git based or PyPi installable package. When the package is built the repo-build"},{"line_number":149,"context_line":"role will create the sources as Python wheels. While the base system has a"},{"line_number":150,"context_line":"comprehensive set of packages used to ensure OpenStack deployments are successful."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"While the packages pre-built in the repository-infrastructure are comprehensive it"}],"source_content_type":"text/x-rst","patch_set":14,"id":"ba8a016a_9ea6fa51","line":149,"updated":"2015-11-17 14:32:21.000000000","message":"-while","commit_id":"982b019e64499019be7d6d44f6dba03bd7d35eeb"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"82f5f78215019efb56cd286a513fdca39e69a74b","unresolved":false,"context_lines":[{"line_number":149,"context_line":"role will create the sources as Python wheels. While the base system has a"},{"line_number":150,"context_line":"comprehensive set of packages used to ensure OpenStack deployments are successful."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"While the packages pre-built in the repository-infrastructure are comprehensive it"},{"line_number":153,"context_line":"may be needed to change the source locations and versions of packages to suit"},{"line_number":154,"context_line":"different deployment needs. To do this simply add an additional entries into any"},{"line_number":155,"context_line":"``user_.*.yml`` file within the \"/etc/openstack_deployment\" directory. Adding"}],"source_content_type":"text/x-rst","patch_set":14,"id":"ba8a016a_be265ecc","line":152,"updated":"2015-11-17 14:32:21.000000000","message":"nit: punctuation, like a comma before \"it\" ?","commit_id":"982b019e64499019be7d6d44f6dba03bd7d35eeb"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"82f5f78215019efb56cd286a513fdca39e69a74b","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"While the packages pre-built in the repository-infrastructure are comprehensive it"},{"line_number":153,"context_line":"may be needed to change the source locations and versions of packages to suit"},{"line_number":154,"context_line":"different deployment needs. To do this simply add an additional entries into any"},{"line_number":155,"context_line":"``user_.*.yml`` file within the \"/etc/openstack_deployment\" directory. Adding"},{"line_number":156,"context_line":"additional repositories as overrides can be as simple as listing entries within"},{"line_number":157,"context_line":"the variable file of your choice."}],"source_content_type":"text/x-rst","patch_set":14,"id":"ba8a016a_592aec7f","line":154,"updated":"2015-11-17 14:32:21.000000000","message":"nit: replace \"an additonal entries\" by \"(additional?) entries\" or \"an (additional?) entry\"","commit_id":"982b019e64499019be7d6d44f6dba03bd7d35eeb"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"851f8244aefe30b1080b756ca56a17c129d0d725","unresolved":false,"context_lines":[{"line_number":172,"context_line":"      - virtualenv"},{"line_number":173,"context_line":"      - virtualenv-tools"},{"line_number":174,"context_line":"      - python-keystoneclient"},{"line_number":175,"context_line":"      - NEW-SPECIAL-PACKAGE"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"Once the variables are set call the play ``repo-build.yml`` to build all of the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba8a016a_5312165a","line":175,"updated":"2015-11-20 10:27:56.000000000","message":"As a test I tried adding the following to /etc/openstack_deploy/user_variables.yml\n\ncinder_pip_packages:\n  - cinder\n  - ecdsa\n  - httplib2\n  - keystonemiddleware\n  - PyMySQL\n  - python-memcached\n  - pycrypto\n  - python-cinderclient\n  - python-keystoneclient\n  - pywbem\n  - purestorage\n\nI got this as a result when trying to run repo-build.yml:\n\nUnexpected error while executing task: \u0027list\u0027 object has no attribute \u0027add\u0027","commit_id":"4bc038c462eaf1277ff79167d06a692caf1853cc"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"ee1b7a711dd4758d8c4933dfc0691fc17555900d","unresolved":false,"context_lines":[{"line_number":172,"context_line":"      - virtualenv"},{"line_number":173,"context_line":"      - virtualenv-tools"},{"line_number":174,"context_line":"      - python-keystoneclient"},{"line_number":175,"context_line":"      - NEW-SPECIAL-PACKAGE"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"Once the variables are set call the play ``repo-build.yml`` to build all of the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba8a016a_3894f4e6","line":175,"in_reply_to":"ba8a016a_5312165a","updated":"2015-11-20 19:24:13.000000000","message":"Done","commit_id":"4bc038c462eaf1277ff79167d06a692caf1853cc"}],"playbooks/plugins/lookups/py_pkgs.py":[{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"92d318a613ca425cb9eae5a84badb9afe7613d00","unresolved":false,"context_lines":[{"line_number":355,"context_line":"                ]"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"                keys \u003d [\u0027name\u0027, \u0027version\u0027, \u0027fragment\u0027, \u0027url\u0027, \u0027original\u0027]"},{"line_number":358,"context_line":"                rpkg_parts \u003d ["},{"line_number":359,"context_line":"                    dict("},{"line_number":360,"context_line":"                        zip("},{"line_number":361,"context_line":"                            keys, git_pip_link_parse(i)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_2d03310f","line":358,"updated":"2015-11-04 16:05:22.000000000","message":"the full name is pythonic, the short name is not","commit_id":"7347e1350ad2084e11280712ca69eef35fb3a29f"}]}
