)]}'
{"doc/source/admin/examples/playbooks/wait-to-start-gearman.sh":[{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"7ab1569cb655e2fa0d04cfc8a97a7687129c632b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Zuul needs to be able to connect to the remote systems in order to"},{"line_number":4,"context_line":"# start."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-sh","patch_set":47,"id":"5fc1f717_aa805bf6","line":2,"updated":"2019-03-15 01:20:34.000000000","message":"Could zuul service do that by default instead?","commit_id":"80d284622772bdccab0f9111e4898ff16dc8910c"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"b6f85cb7e2340108aab32d8e12b2f64a211e6ff1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Zuul needs to be able to connect to the remote systems in order to"},{"line_number":4,"context_line":"# start."},{"line_number":5,"context_line":""}],"source_content_type":"text/x-sh","patch_set":47,"id":"5fc1f717_175e7775","line":2,"in_reply_to":"5fc1f717_aa805bf6","updated":"2019-03-15 08:17:27.000000000","message":"It should and probably does but this seemed to stabilize the many quick start failures. I think we should look into that again after landing this.","commit_id":"80d284622772bdccab0f9111e4898ff16dc8910c"}],"zuul/lib/ansible-config.conf":[{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"7ab1569cb655e2fa0d04cfc8a97a7687129c632b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"[2.5]"},{"line_number":4,"context_line":"default \u003d true"},{"line_number":5,"context_line":"deprecated \u003d true"},{"line_number":6,"context_line":"requirements \u003d ansible\u003e\u003d2.5.1,\u003c2.6 ara"}],"source_content_type":"text/plain","patch_set":47,"id":"5fc1f717_8aa6bfaa","line":6,"updated":"2019-03-15 01:20:34.000000000","message":"Shouldn\u0027t we add openstacksdk, openshift and jmespath by default too?","commit_id":"80d284622772bdccab0f9111e4898ff16dc8910c"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"fd6f89eb547fa0182a8f6c2f90f60a355f03e756","unresolved":false,"context_lines":[{"line_number":3,"context_line":"[2.5]"},{"line_number":4,"context_line":"default \u003d true"},{"line_number":5,"context_line":"deprecated \u003d true"},{"line_number":6,"context_line":"requirements \u003d ansible\u003e\u003d2.5.1,\u003c2.6 ara"}],"source_content_type":"text/plain","patch_set":47,"id":"5fc1f717_975d8716","line":6,"in_reply_to":"5fc1f717_8aa6bfaa","updated":"2019-03-15 07:38:11.000000000","message":"I agree that we should at least include all dependencies that are needed for core functionality and all things in zuul-jobs.\n\nThat at least includes openstacksdk and openshift.\n\nWhat are you using jmespath for?\n\nAre you ok adding those as a followup?","commit_id":"80d284622772bdccab0f9111e4898ff16dc8910c"}],"zuul/lib/ansible.py":[{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"2a13800fd765ee7e3d74b17713e1267d7a606dee","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            \u0027.\u0027: None,"},{"line_number":95,"context_line":"            \u0027-\u0027: \u0027_\u0027,"},{"line_number":96,"context_line":"        })"},{"line_number":97,"context_line":"        env_var \u003d \u0027ANSIBLE_%s_EXTRA_PACKAGES\u0027 % self.version.upper().translate("},{"line_number":98,"context_line":"            mapping)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        packages \u003d os.environ.get(env_var)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_8412eab0","line":97,"range":{"start_line":97,"start_character":19,"end_line":97,"end_character":44},"updated":"2019-01-21 06:08:14.000000000","message":"Extra packages can be defined via environment variables here.\n\nlike ANSIBLE_25_EXTRA_PACKAGES\u003dwinrm","commit_id":"21acf49b116dc0535e245a88d2f265c5149c9740"},{"author":{"_account_id":4162,"name":"Paul Belanger","email":"pabelanger@redhat.com","username":"pabelanger"},"change_message_id":"aa424b9f6ad609b86342aa23c82c0c395467bc77","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def __init__(self, ansible_root):"},{"line_number":111,"context_line":"        super().__init__(ansible_root)"},{"line_number":112,"context_line":"        self.version \u003d \u00272.5\u0027"},{"line_number":113,"context_line":"        self._requirements \u003d [\u0027ansible\u003e\u003d2.5.1\u003c2.6\u0027]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class AnsibleManager:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_dd7c46b7","line":113,"updated":"2019-01-21 02:09:31.000000000","message":"What if we moved this to a requirements file on disk? My thoughts would be if operators wanted to add additional dependencies to ansible, say some site specific callback.","commit_id":"21acf49b116dc0535e245a88d2f265c5149c9740"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"4683ae081097694e899fefefd0a75fa308907c3f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def __init__(self, ansible_root):"},{"line_number":111,"context_line":"        super().__init__(ansible_root)"},{"line_number":112,"context_line":"        self.version \u003d \u00272.5\u0027"},{"line_number":113,"context_line":"        self._requirements \u003d [\u0027ansible\u003e\u003d2.5.1\u003c2.6\u0027]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class AnsibleManager:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_5fc77b97","line":113,"in_reply_to":"9fdfeff1_20b52132","updated":"2019-01-26 08:56:31.000000000","message":"I\u0027ll try something based on a yaml description of ansible versions.","commit_id":"21acf49b116dc0535e245a88d2f265c5149c9740"},{"author":{"_account_id":4162,"name":"Paul Belanger","email":"pabelanger@redhat.com","username":"pabelanger"},"change_message_id":"dc19753405ae6823a0ddcc815ded87866cd885e8","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def __init__(self, ansible_root):"},{"line_number":111,"context_line":"        super().__init__(ansible_root)"},{"line_number":112,"context_line":"        self.version \u003d \u00272.5\u0027"},{"line_number":113,"context_line":"        self._requirements \u003d [\u0027ansible\u003e\u003d2.5.1\u003c2.6\u0027]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class AnsibleManager:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_ed0952dd","line":113,"in_reply_to":"9fdfeff1_a4136eb8","updated":"2019-01-21 14:41:40.000000000","message":"I\u0027d see it more like what we do with zuul.conf, we can install the default ansible requirements on disk, then if the user wants to override them for some reason, they can.  I do have a little concern hardcoding the values into zuul here, but haven\u0027t really dug too much into how it is all working right yet.","commit_id":"21acf49b116dc0535e245a88d2f265c5149c9740"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"2a13800fd765ee7e3d74b17713e1267d7a606dee","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def __init__(self, ansible_root):"},{"line_number":111,"context_line":"        super().__init__(ansible_root)"},{"line_number":112,"context_line":"        self.version \u003d \u00272.5\u0027"},{"line_number":113,"context_line":"        self._requirements \u003d [\u0027ansible\u003e\u003d2.5.1\u003c2.6\u0027]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class AnsibleManager:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_a4136eb8","line":113,"in_reply_to":"9fdfeff1_dd7c46b7","updated":"2019-01-21 06:08:14.000000000","message":"I thought about this but this seemed to be more complicated because that requirements file would be part of zuul itself. To add further requirements would require two requirements files (one by zuul and one additional that must be found somewhere else. The reason for this is that I don\u0027t want to need to patch zuul to add further requirements.\n\nThat\u0027s why I implemented this use case via an environment variable that holds additional packages (see above).","commit_id":"21acf49b116dc0535e245a88d2f265c5149c9740"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"6ca277b32ef8a25de1359c07efd77d461be3ab7f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def __init__(self, ansible_root):"},{"line_number":111,"context_line":"        super().__init__(ansible_root)"},{"line_number":112,"context_line":"        self.version \u003d \u00272.5\u0027"},{"line_number":113,"context_line":"        self._requirements \u003d [\u0027ansible\u003e\u003d2.5.1\u003c2.6\u0027]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"class AnsibleManager:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_20b52132","line":113,"in_reply_to":"9fdfeff1_ed0952dd","updated":"2019-01-21 15:16:50.000000000","message":"Well, we can move them out from here.  Do you have a suggestion where to move them? I think zuul.conf is the wrong place as it is a runtime configuration while installing ansible should be more treated like a compile time thing. E.g. during container image builds there is no zuul.conf and the script must also work within this environment.\n\nWhen moving this to a different file we need to create either a directory structure holding various requirements.txt for all ansible versions or defining them in a single yaml file that needs to be installable along with zuul (to \u003ctarget\u003e/share/zuul?) and needs to be found during runtime of the script. While this is certainly doable it seems much more complicated compared to storing the ansible version just here.","commit_id":"21acf49b116dc0535e245a88d2f265c5149c9740"}]}
