)]}'
{"docker/base/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"523e76cb69fefc91cd0a2add4224a55f76b836b9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"FROM {{ base_image }}:{{ base_distro_tag }}"},{"line_number":2,"context_line":"MAINTAINER {{ maintainer }}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{# NOTE(SamYaple): We must create the groups first, when specifying gid, the group must exist already #}"},{"line_number":5,"context_line":"RUN groupadd --gid 400 kolla \\"},{"line_number":6,"context_line":"{%- for name, user in users | dictsort() %}"},{"line_number":7,"context_line":"    \u0026\u0026 groupadd --gid {{ user.gid }} {{ name }} \\"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_54bfa6fa","line":4,"updated":"2016-12-20 15:36:08.000000000","message":"Trying to think how we can make the intent of this part a little clearer. Maybe something like \"Avoid uid/gid conflicts by creating each user/group up front. Specifics required such as homedir or shell are configured within the service specific image\"","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"4be725f2bd45d3fee81b3c4083b95ba145da7b99","unresolved":false,"context_lines":[{"line_number":1,"context_line":"FROM {{ base_image }}:{{ base_distro_tag }}"},{"line_number":2,"context_line":"MAINTAINER {{ maintainer }}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{# NOTE(SamYaple): We must create the groups first, when specifying gid, the group must exist already #}"},{"line_number":5,"context_line":"RUN groupadd --gid 400 kolla \\"},{"line_number":6,"context_line":"{%- for name, user in users | dictsort() %}"},{"line_number":7,"context_line":"    \u0026\u0026 groupadd --gid {{ user.gid }} {{ name }} \\"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_688f6623","line":4,"in_reply_to":"1a6eadb0_54bfa6fa","updated":"2016-12-20 15:50:35.000000000","message":"Done","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"523e76cb69fefc91cd0a2add4224a55f76b836b9","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{# NOTE(SamYaple): We must create the groups first, when specifying gid, the group must exist already #}"},{"line_number":5,"context_line":"RUN groupadd --gid 400 kolla \\"},{"line_number":6,"context_line":"{%- for name, user in users | dictsort() %}"},{"line_number":7,"context_line":"    \u0026\u0026 groupadd --gid {{ user.gid }} {{ name }} \\"},{"line_number":8,"context_line":"    \u0026\u0026 useradd -M --shell /usr/sbin/nologin --uid {{ user.uid }} --gid {{ user.gid }} {{ name }}"},{"line_number":9,"context_line":"        {%- if not loop.last %} \\{% endif -%}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_74ed82ee","line":6,"range":{"start_line":6,"start_character":30,"end_line":6,"end_character":38},"updated":"2016-12-20 15:36:08.000000000","message":"What\u0027s this for?","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"4be725f2bd45d3fee81b3c4083b95ba145da7b99","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{# NOTE(SamYaple): We must create the groups first, when specifying gid, the group must exist already #}"},{"line_number":5,"context_line":"RUN groupadd --gid 400 kolla \\"},{"line_number":6,"context_line":"{%- for name, user in users | dictsort() %}"},{"line_number":7,"context_line":"    \u0026\u0026 groupadd --gid {{ user.gid }} {{ name }} \\"},{"line_number":8,"context_line":"    \u0026\u0026 useradd -M --shell /usr/sbin/nologin --uid {{ user.uid }} --gid {{ user.gid }} {{ name }}"},{"line_number":9,"context_line":"        {%- if not loop.last %} \\{% endif -%}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_0878b22a","line":6,"range":{"start_line":6,"start_character":30,"end_line":6,"end_character":38},"in_reply_to":"1a6eadb0_74ed82ee","updated":"2016-12-20 15:50:35.000000000","message":"just to ensure they are created in the same order each time this is run. Otherwise dockercache can break because dicts have no guaranteed order","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"223e4f8192337d9818b1bbea83ec8f80852376a4","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{# NOTE(SamYaple): Avoid uid/gid conflicts by creating each user/group up front. #}"},{"line_number":5,"context_line":"{# Specifics required such as homedir or shell are configured within the service specific image #}"},{"line_number":6,"context_line":"RUN groupadd --gid 400 kolla \\"},{"line_number":7,"context_line":"{%- for name, user in users | dictsort() %}"},{"line_number":8,"context_line":"    \u0026\u0026 groupadd --force --gid {{ user.gid }} {{ name }} \\"},{"line_number":9,"context_line":"    \u0026\u0026 useradd -M --shell /usr/sbin/nologin --uid {{ user.uid }} --gid {{ user.gid }} {{ name }}"}],"source_content_type":"text/x-jinja2","patch_set":20,"id":"1a6eadb0_ada155ab","line":6,"updated":"2016-12-21 16:22:14.000000000","message":"why choose 400 here? make it configurable as others?","commit_id":"7754def094f927674e72d6ccc86540afe8d618d5"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"189cddf93fbe580f0b2204244d306bf7f546863b","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{# NOTE(SamYaple): Avoid uid/gid conflicts by creating each user/group up front. #}"},{"line_number":5,"context_line":"{# Specifics required such as homedir or shell are configured within the service specific image #}"},{"line_number":6,"context_line":"RUN groupadd --gid 400 kolla \\"},{"line_number":7,"context_line":"{%- for name, user in users | dictsort() %}"},{"line_number":8,"context_line":"    \u0026\u0026 groupadd --force --gid {{ user.gid }} {{ name }} \\"},{"line_number":9,"context_line":"    \u0026\u0026 useradd -M --shell /usr/sbin/nologin --uid {{ user.uid }} --gid {{ user.gid }} {{ name }}"}],"source_content_type":"text/x-jinja2","patch_set":20,"id":"1a6eadb0_bb8fcb21","line":6,"in_reply_to":"1a6eadb0_ada155ab","updated":"2016-12-21 17:02:29.000000000","message":"oversight. will fix","commit_id":"7754def094f927674e72d6ccc86540afe8d618d5"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"223e4f8192337d9818b1bbea83ec8f80852376a4","unresolved":false,"context_lines":[{"line_number":6,"context_line":"RUN groupadd --gid 400 kolla \\"},{"line_number":7,"context_line":"{%- for name, user in users | dictsort() %}"},{"line_number":8,"context_line":"    \u0026\u0026 groupadd --force --gid {{ user.gid }} {{ name }} \\"},{"line_number":9,"context_line":"    \u0026\u0026 useradd -M --shell /usr/sbin/nologin --uid {{ user.uid }} --gid {{ user.gid }} {{ name }}"},{"line_number":10,"context_line":"        {%- if not loop.last %} \\{% endif -%}"},{"line_number":11,"context_line":"{%- endfor %}"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":20,"id":"1a6eadb0_8da739a6","line":9,"updated":"2016-12-21 16:22:14.000000000","message":"--shell /usr/sbin/nologin is wrong in some case.\n\nlike nova-ssh, nova user need login through ssh.","commit_id":"7754def094f927674e72d6ccc86540afe8d618d5"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"189cddf93fbe580f0b2204244d306bf7f546863b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"RUN groupadd --gid 400 kolla \\"},{"line_number":7,"context_line":"{%- for name, user in users | dictsort() %}"},{"line_number":8,"context_line":"    \u0026\u0026 groupadd --force --gid {{ user.gid }} {{ name }} \\"},{"line_number":9,"context_line":"    \u0026\u0026 useradd -M --shell /usr/sbin/nologin --uid {{ user.uid }} --gid {{ user.gid }} {{ name }}"},{"line_number":10,"context_line":"        {%- if not loop.last %} \\{% endif -%}"},{"line_number":11,"context_line":"{%- endfor %}"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":20,"id":"1a6eadb0_7b73734e","line":9,"in_reply_to":"1a6eadb0_8da739a6","updated":"2016-12-21 17:02:29.000000000","message":"nah all the configuration of the user is done in the container. youll notice nova-ssh still has the /bin/bash shell so this is correct","commit_id":"7754def094f927674e72d6ccc86540afe8d618d5"}],"docker/bifrost/bifrost-base/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"523e76cb69fefc91cd0a2add4224a55f76b836b9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"RUN sed -e \"s/.*mariadb.*//Ig\" -i /etc/apt/sources.list \u0026\u0026 apt-get purge -y mariadb* mysql*"},{"line_number":20,"context_line":"{% endif %}"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# NOTE(SamYaple): mysql-server-5.7 install breaks if /var/lib/mysql exists"},{"line_number":23,"context_line":"# without mysql data in it. Which is as silly as it sounds."},{"line_number":24,"context_line":"RUN rm -rf /var/lib/mysql"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_144c4e41","line":22,"updated":"2016-12-20 15:36:08.000000000","message":"Why touch this in this patch set?","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"4be725f2bd45d3fee81b3c4083b95ba145da7b99","unresolved":false,"context_lines":[{"line_number":19,"context_line":"RUN sed -e \"s/.*mariadb.*//Ig\" -i /etc/apt/sources.list \u0026\u0026 apt-get purge -y mariadb* mysql*"},{"line_number":20,"context_line":"{% endif %}"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# NOTE(SamYaple): mysql-server-5.7 install breaks if /var/lib/mysql exists"},{"line_number":23,"context_line":"# without mysql data in it. Which is as silly as it sounds."},{"line_number":24,"context_line":"RUN rm -rf /var/lib/mysql"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_6804c67d","line":22,"in_reply_to":"1a6eadb0_144c4e41","updated":"2016-12-20 15:50:35.000000000","message":"Because this patchset was breaking bifrost because we created the mysql user in the base.\n\nThat was when I was creating the userhome too. So this can now be removed as I no longer create the user homedir in the base image","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"}],"docker/chrony/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"523e76cb69fefc91cd0a2add4224a55f76b836b9","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":11,"context_line":"# Ubuntu use _chrony username to use unified running user with RHEL system"},{"line_number":12,"context_line":"RUN useradd --user-group --create-home --home-dir /var/lib/chrony chrony"},{"line_number":13,"context_line":"{% endif %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"{{ macros.install_packages(chrony_packages | customizable(\"packages\")) }}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_74c4a25e","side":"PARENT","line":12,"range":{"start_line":12,"start_character":39,"end_line":12,"end_character":65},"updated":"2016-12-20 15:36:08.000000000","message":"do we need a call to setup_user to manage this home-dir now? similar question for other images that set home-dirs","commit_id":"26fb747b0a6ecf63fcb003836d80799779e6b50e"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"4be725f2bd45d3fee81b3c4083b95ba145da7b99","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":11,"context_line":"# Ubuntu use _chrony username to use unified running user with RHEL system"},{"line_number":12,"context_line":"RUN useradd --user-group --create-home --home-dir /var/lib/chrony chrony"},{"line_number":13,"context_line":"{% endif %}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"{{ macros.install_packages(chrony_packages | customizable(\"packages\")) }}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_682be6eb","side":"PARENT","line":12,"range":{"start_line":12,"start_character":39,"end_line":12,"end_character":65},"in_reply_to":"1a6eadb0_74c4a25e","updated":"2016-12-20 15:50:35.000000000","message":"yes, im still in process of adding the macro to all needed images","commit_id":"26fb747b0a6ecf63fcb003836d80799779e6b50e"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027chrony\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% set chrony_packages \u003d [\u0027chrony\u0027] %}"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_89e57ba5","line":8,"updated":"2016-12-21 12:37:21.000000000","message":"Think I asked this on previous PS but didnt see an answer. Do we need home\u003d/var/lib/chrony here?","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027chrony\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% set chrony_packages \u003d [\u0027chrony\u0027] %}"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_14941b41","line":8,"in_reply_to":"1a6eadb0_89e57ba5","updated":"2016-12-21 14:05:05.000000000","message":"all home directories default to /var/lib/\u003cservice\u003e","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"}],"docker/fluentd/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    \u0026\u0026 chmod 440 /etc/sudoers.d/kolla_fluentd_sudoers \\"},{"line_number":45,"context_line":"    \u0026\u0026 chmod 755 /usr/local/bin/kolla_extend_start \\"},{"line_number":46,"context_line":"    \u0026\u0026 chown -R td-agent: /etc/td-agent \\"},{"line_number":47,"context_line":"    \u0026\u0026 mkdir /var/lib/td-agent \\"},{"line_number":48,"context_line":"    \u0026\u0026 chown -R td-agent: /var/lib/td-agent"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"{% block fluentd_footer %}{% endblock %}"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_890f3b38","side":"PARENT","line":47,"range":{"start_line":47,"start_character":7,"end_line":47,"end_character":30},"updated":"2016-12-21 12:37:21.000000000","message":"Is this dir no longer needed?","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    \u0026\u0026 chmod 440 /etc/sudoers.d/kolla_fluentd_sudoers \\"},{"line_number":45,"context_line":"    \u0026\u0026 chmod 755 /usr/local/bin/kolla_extend_start \\"},{"line_number":46,"context_line":"    \u0026\u0026 chown -R td-agent: /etc/td-agent \\"},{"line_number":47,"context_line":"    \u0026\u0026 mkdir /var/lib/td-agent \\"},{"line_number":48,"context_line":"    \u0026\u0026 chown -R td-agent: /var/lib/td-agent"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"{% block fluentd_footer %}{% endblock %}"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_94958b34","side":"PARENT","line":47,"range":{"start_line":47,"start_character":7,"end_line":47,"end_character":30},"in_reply_to":"1a6eadb0_890f3b38","updated":"2016-12-21 14:05:05.000000000","message":"created in configure_user","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"}],"docker/glance/glance-base/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"RUN ln -s glance-base-source/* glance \\"},{"line_number":35,"context_line":"    \u0026\u0026 useradd --user-group glance \\"},{"line_number":36,"context_line":"    \u0026\u0026 /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /glance[cinder] \\"},{"line_number":37,"context_line":"    \u0026\u0026 mkdir -p /etc/glance /var/lib/glance /home/glance \\"},{"line_number":38,"context_line":"    \u0026\u0026 cp -r /glance/etc/* /etc/glance/ \\"},{"line_number":39,"context_line":"    \u0026\u0026 chown -R glance: /etc/glance /var/lib/glance /home/glance"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_24180e75","side":"PARENT","line":37,"range":{"start_line":37,"start_character":28,"end_line":37,"end_character":43},"updated":"2016-12-21 12:37:21.000000000","message":"Is this dir no longer needed?","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":34,"context_line":"RUN ln -s glance-base-source/* glance \\"},{"line_number":35,"context_line":"    \u0026\u0026 useradd --user-group glance \\"},{"line_number":36,"context_line":"    \u0026\u0026 /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /glance[cinder] \\"},{"line_number":37,"context_line":"    \u0026\u0026 mkdir -p /etc/glance /var/lib/glance /home/glance \\"},{"line_number":38,"context_line":"    \u0026\u0026 cp -r /glance/etc/* /etc/glance/ \\"},{"line_number":39,"context_line":"    \u0026\u0026 chown -R glance: /etc/glance /var/lib/glance /home/glance"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_d49b8364","side":"PARENT","line":37,"range":{"start_line":37,"start_character":28,"end_line":37,"end_character":43},"in_reply_to":"1a6eadb0_24180e75","updated":"2016-12-21 14:05:05.000000000","message":"created in configure_user","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"}],"docker/grafana/Dockerfile.j2":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"3e42a6b3a20f5ce08f0ee028640702e131d137a9","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027grafana\u0027, homedir\u003d\u0027/usr/share/grafana\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% set grafana_packages \u003d [\u0027grafana\u0027] %}"},{"line_number":11,"context_line":"{{ macros.install_packages(grafana_packages | customizable(\"packages\")) }}"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_5b264269","line":8,"updated":"2016-12-22 16:57:57.000000000","message":"is the homedir change necessary?","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"51ddb3d04a8e145c3918e0f8c23133e6ffe3dd6a","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027grafana\u0027, homedir\u003d\u0027/usr/share/grafana\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% set grafana_packages \u003d [\u0027grafana\u0027] %}"},{"line_number":11,"context_line":"{{ macros.install_packages(grafana_packages | customizable(\"packages\")) }}"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_9b0a69d1","line":8,"in_reply_to":"da4df55a_5b264269","updated":"2016-12-22 17:01:26.000000000","message":"This matches what grafanas current homedir is. I don\u0027t know if its needed... but its what currently exists so i matched it","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"}],"docker/heka/Dockerfile.j2":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"3e42a6b3a20f5ce08f0ee028640702e131d137a9","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027heka\u0027, homedir\u003d\u0027/var/cache/hekad\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if base_distro in [\u0027centos\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"},{"line_number":11,"context_line":"    {% set heka_packages \u003d ["}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_1b5e7ae9","line":8,"updated":"2016-12-22 16:57:57.000000000","message":"is the homedir necessary?","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"51ddb3d04a8e145c3918e0f8c23133e6ffe3dd6a","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027heka\u0027, homedir\u003d\u0027/var/cache/hekad\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if base_distro in [\u0027centos\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"},{"line_number":11,"context_line":"    {% set heka_packages \u003d ["}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_5b01e1ad","line":8,"in_reply_to":"da4df55a_1b5e7ae9","updated":"2016-12-22 17:01:26.000000000","message":"This is what heka is configured for when installed via package.","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"}],"docker/ironic/ironic-base/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027ironic\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if install_type \u003d\u003d \u0027binary\u0027 %}"},{"line_number":11,"context_line":"    {% if base_distro in [\u0027centos\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_44bb4ae5","line":8,"updated":"2016-12-21 12:37:21.000000000","message":"homedir\u003d/var/lib/ironic","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027ironic\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if install_type \u003d\u003d \u0027binary\u0027 %}"},{"line_number":11,"context_line":"    {% if base_distro in [\u0027centos\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_f4a4ffa6","line":8,"in_reply_to":"1a6eadb0_44bb4ae5","updated":"2016-12-21 14:05:05.000000000","message":"created in configure_user","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"}],"docker/karbor/karbor-base/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027karbor\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if install_type \u003d\u003d \u0027binary\u0027 %}"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_e4cc568b","line":8,"updated":"2016-12-21 12:37:21.000000000","message":"homedir\u003d/var/lib/karbor","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027karbor\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if install_type \u003d\u003d \u0027binary\u0027 %}"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_54a85377","line":8,"in_reply_to":"1a6eadb0_e4cc568b","updated":"2016-12-21 14:05:05.000000000","message":"created in configure_user","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"}],"docker/keystone/keystone-base/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027keystone\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if install_type \u003d\u003d \u0027binary\u0027 %}"},{"line_number":11,"context_line":"    {% if base_distro in [\u0027centos\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_44a26aaf","line":8,"updated":"2016-12-21 12:37:21.000000000","message":"homedir\u003d/var/lib/keystone","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027keystone\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% if install_type \u003d\u003d \u0027binary\u0027 %}"},{"line_number":11,"context_line":"    {% if base_distro in [\u0027centos\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_94bcabbc","line":8,"in_reply_to":"1a6eadb0_44a26aaf","updated":"2016-12-21 14:05:05.000000000","message":"created in configure_user","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"}],"docker/macros.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"523e76cb69fefc91cd0a2add4224a55f76b836b9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"{% endmacro %}"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"{% macro setup_user(name, groups\u003dNone, shell\u003dNone, homedir\u003dNone) %}"},{"line_number":23,"context_line":"{% set user\u003dusers[name] %}"},{"line_number":24,"context_line":"RUN true \\"},{"line_number":25,"context_line":"    {%- if groups %}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_147d2e1c","line":22,"range":{"start_line":22,"start_character":9,"end_line":22,"end_character":19},"updated":"2016-12-20 15:36:08.000000000","message":"configure_user might be easier to understand as discussed","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"4be725f2bd45d3fee81b3c4083b95ba145da7b99","unresolved":false,"context_lines":[{"line_number":19,"context_line":"{% endmacro %}"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"{% macro setup_user(name, groups\u003dNone, shell\u003dNone, homedir\u003dNone) %}"},{"line_number":23,"context_line":"{% set user\u003dusers[name] %}"},{"line_number":24,"context_line":"RUN true \\"},{"line_number":25,"context_line":"    {%- if groups %}"}],"source_content_type":"text/x-jinja2","patch_set":11,"id":"1a6eadb0_882e82f8","line":22,"range":{"start_line":22,"start_character":9,"end_line":22,"end_character":19},"in_reply_to":"1a6eadb0_147d2e1c","updated":"2016-12-20 15:50:35.000000000","message":"Done","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"3e42a6b3a20f5ce08f0ee028640702e131d137a9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    {%- endif %}"},{"line_number":34,"context_line":"    \u0026\u0026 usermod --home {{ homedir }} {{ name }} \\"},{"line_number":35,"context_line":"    \u0026\u0026 mkdir -p {{ homedir }} \\"},{"line_number":36,"context_line":"    \u0026\u0026 chown {{ user.uid }}:{{ user.gid }} {{ homedir }}"},{"line_number":37,"context_line":"{% endmacro %}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_3b941e36","line":36,"updated":"2016-12-22 16:57:57.000000000","message":"chown -R in case of the homedir exist.","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"3e42a6b3a20f5ce08f0ee028640702e131d137a9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    \u0026\u0026 usermod --home {{ homedir }} {{ name }} \\"},{"line_number":35,"context_line":"    \u0026\u0026 mkdir -p {{ homedir }} \\"},{"line_number":36,"context_line":"    \u0026\u0026 chown {{ user.uid }}:{{ user.gid }} {{ homedir }}"},{"line_number":37,"context_line":"{% endmacro %}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"{% macro ubuntu_trove_fix() %}"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_fb41b53a","line":37,"updated":"2016-12-22 16:57:57.000000000","message":"move the set homedir to the beginning will be better. like\n{% macro configure_user(name, groups\u003dNone, shell\u003dNone, homedir\u003dNone) %}\n{% set user\u003dusers[name] %}\n{% if not homedir %}\n{% set homedir\u003d\u0027/var/lib/\u0027 + name %}\n{% endif %}\nRUN usermod --append --groups kolla {{ name }} \\\n    {%- if groups %}\n    \u0026\u0026 usermod --append --groups {{ groups }} {{ name }} \\\n    {%- endif %}\n    {%- if shell %}\n    \u0026\u0026 chsh --shell {{ shell }} {{ name }} \\\n    {%- endif %}\n    \u0026\u0026 usermod --home {{ homedir }} {{ name }} \\\n    \u0026\u0026 mkdir -p {{ homedir }} \\\n    \u0026\u0026 chown {{ user.uid }}:{{ user.gid }} {{ homedir }}\n{% endmacro %}","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"51ddb3d04a8e145c3918e0f8c23133e6ffe3dd6a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    \u0026\u0026 usermod --home {{ homedir }} {{ name }} \\"},{"line_number":35,"context_line":"    \u0026\u0026 mkdir -p {{ homedir }} \\"},{"line_number":36,"context_line":"    \u0026\u0026 chown {{ user.uid }}:{{ user.gid }} {{ homedir }}"},{"line_number":37,"context_line":"{% endmacro %}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"{% macro ubuntu_trove_fix() %}"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_5b18011e","line":37,"in_reply_to":"da4df55a_fb41b53a","updated":"2016-12-22 17:01:26.000000000","message":"Done","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"71c7076902e01fa081eea063eb568f97238201b3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"{% endmacro %}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"{% macro ubuntu_trove_fix() %}"},{"line_number":41,"context_line":"{# NOTE(SamYaple): The postinst script breaks because it calls getenv instead of getent #}"},{"line_number":42,"context_line":"{# TODO(SamYaple): Remove once issue is fixed -- https://bugs.launchpad.net/ubuntu/+source/openstack-trove/+bug/1651852 #}"},{"line_number":43,"context_line":"RUN apt-get -y install --no-install-recommends trove-common \\"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_20886b22","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":25},"updated":"2016-12-22 16:30:39.000000000","message":"Id like to make these a little more descriptive, \"ubuntu_trove_bug_1651852\" might be good. Minor but will be messy if another fix needs to be added.","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"24398229d98149889e2e0cbd8e599b63a11ea69f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"{% endmacro %}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"{% macro ubuntu_trove_fix() %}"},{"line_number":41,"context_line":"{# NOTE(SamYaple): The postinst script breaks because it calls getenv instead of getent #}"},{"line_number":42,"context_line":"{# TODO(SamYaple): Remove once issue is fixed -- https://bugs.launchpad.net/ubuntu/+source/openstack-trove/+bug/1651852 #}"},{"line_number":43,"context_line":"RUN apt-get -y install --no-install-recommends trove-common \\"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_803af734","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":25},"in_reply_to":"da4df55a_20886b22","updated":"2016-12-22 16:32:34.000000000","message":"reasonable. and good precedent","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"71c7076902e01fa081eea063eb568f97238201b3","unresolved":false,"context_lines":[{"line_number":47,"context_line":"{% endmacro %}"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"{% macro debian_haproxy_fix() %}"},{"line_number":51,"context_line":"{# NOTE(SamYaple): The postinst script breaks if the user \u0027haproxy\u0027 already exists #}"},{"line_number":52,"context_line":"RUN apt-get -y install --no-install-recommends haproxy \\"},{"line_number":53,"context_line":"    || sed -i \u0027/^adduser/,+1 d\u0027 /var/lib/dpkg/info/haproxy.postinst \\"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_a0a37b9d","line":50,"range":{"start_line":50,"start_character":9,"end_line":50,"end_character":27},"updated":"2016-12-22 16:30:39.000000000","message":"debian_haproxy_existing_user_fix","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"24398229d98149889e2e0cbd8e599b63a11ea69f","unresolved":false,"context_lines":[{"line_number":47,"context_line":"{% endmacro %}"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"{% macro debian_haproxy_fix() %}"},{"line_number":51,"context_line":"{# NOTE(SamYaple): The postinst script breaks if the user \u0027haproxy\u0027 already exists #}"},{"line_number":52,"context_line":"RUN apt-get -y install --no-install-recommends haproxy \\"},{"line_number":53,"context_line":"    || sed -i \u0027/^adduser/,+1 d\u0027 /var/lib/dpkg/info/haproxy.postinst \\"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_e04903d2","line":50,"range":{"start_line":50,"start_character":9,"end_line":50,"end_character":27},"in_reply_to":"da4df55a_a0a37b9d","updated":"2016-12-22 16:32:34.000000000","message":"Done","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"}],"docker/magnum/magnum-base/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"RUN ln -s magnum-base-source/* magnum \\"},{"line_number":20,"context_line":"    \u0026\u0026 useradd --user-group magnum \\"},{"line_number":21,"context_line":"    \u0026\u0026 /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /magnum \\"},{"line_number":22,"context_line":"    \u0026\u0026 mkdir -p /etc/magnum /home/magnum /var/lib/magnum \\"},{"line_number":23,"context_line":"    \u0026\u0026 cp -r /magnum/etc/magnum/* /etc/magnum \\"},{"line_number":24,"context_line":"    \u0026\u0026 chown -R magnum: /etc/magnum /home/magnum /var/lib/magnum"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_6495a631","side":"PARENT","line":22,"range":{"start_line":22,"start_character":41,"end_line":22,"end_character":56},"updated":"2016-12-21 12:37:21.000000000","message":"is this dir no longer needed?","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":19,"context_line":"RUN ln -s magnum-base-source/* magnum \\"},{"line_number":20,"context_line":"    \u0026\u0026 useradd --user-group magnum \\"},{"line_number":21,"context_line":"    \u0026\u0026 /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /magnum \\"},{"line_number":22,"context_line":"    \u0026\u0026 mkdir -p /etc/magnum /home/magnum /var/lib/magnum \\"},{"line_number":23,"context_line":"    \u0026\u0026 cp -r /magnum/etc/magnum/* /etc/magnum \\"},{"line_number":24,"context_line":"    \u0026\u0026 chown -R magnum: /etc/magnum /home/magnum /var/lib/magnum"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_f4cb1f51","side":"PARENT","line":22,"range":{"start_line":22,"start_character":41,"end_line":22,"end_character":56},"in_reply_to":"1a6eadb0_6495a631","updated":"2016-12-21 14:05:05.000000000","message":"created in configure_user","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"}],"docker/manila/manila-base/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"RUN ln -s manila-base-source/* manila \\"},{"line_number":42,"context_line":"    \u0026\u0026 useradd --user-group manila \\"},{"line_number":43,"context_line":"    \u0026\u0026 /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /manila \\"},{"line_number":44,"context_line":"    \u0026\u0026 mkdir -p /etc/manila /var/lib/manila /var/cache/manila /home/manila \\"},{"line_number":45,"context_line":"    \u0026\u0026 cp -r /manila/etc/manila/* /etc/manila/ \\"},{"line_number":46,"context_line":"    \u0026\u0026 chown -R manila: /etc/manila /var/lib/manila /var/cache/manila /home/manila \\"},{"line_number":47,"context_line":"    \u0026\u0026 sed -i \u0027s|^exec_dirs.*|exec_dirs\u003d/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g\u0027 /etc/manila/rootwrap.conf"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_a4b25ee3","side":"PARENT","line":44,"range":{"start_line":44,"start_character":28,"end_line":44,"end_character":43},"updated":"2016-12-21 12:37:21.000000000","message":"is this dir no longer needed","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":41,"context_line":"RUN ln -s manila-base-source/* manila \\"},{"line_number":42,"context_line":"    \u0026\u0026 useradd --user-group manila \\"},{"line_number":43,"context_line":"    \u0026\u0026 /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /manila \\"},{"line_number":44,"context_line":"    \u0026\u0026 mkdir -p /etc/manila /var/lib/manila /var/cache/manila /home/manila \\"},{"line_number":45,"context_line":"    \u0026\u0026 cp -r /manila/etc/manila/* /etc/manila/ \\"},{"line_number":46,"context_line":"    \u0026\u0026 chown -R manila: /etc/manila /var/lib/manila /var/cache/manila /home/manila \\"},{"line_number":47,"context_line":"    \u0026\u0026 sed -i \u0027s|^exec_dirs.*|exec_dirs\u003d/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g\u0027 /etc/manila/rootwrap.conf"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_14c97b59","side":"PARENT","line":44,"range":{"start_line":44,"start_character":28,"end_line":44,"end_character":43},"in_reply_to":"1a6eadb0_a4b25ee3","updated":"2016-12-21 14:05:05.000000000","message":"created in configure_user","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"}],"docker/monasca/monasca-base/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"{% elif install_type \u003d\u003d \u0027source\u0027 %}"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"RUN chmod 755 /var/lib/monasca \\"},{"line_number":18,"context_line":"    \u0026\u0026 mkdir -p /etc/monasca \\"},{"line_number":19,"context_line":"    \u0026\u0026 chown -R monasca: /etc/monasca"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_a4009e67","line":17,"range":{"start_line":17,"start_character":14,"end_line":17,"end_character":30},"updated":"2016-12-21 12:37:21.000000000","message":"do we need to mkdir this?","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"{% elif install_type \u003d\u003d \u0027source\u0027 %}"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"RUN chmod 755 /var/lib/monasca \\"},{"line_number":18,"context_line":"    \u0026\u0026 mkdir -p /etc/monasca \\"},{"line_number":19,"context_line":"    \u0026\u0026 chown -R monasca: /etc/monasca"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_74054f78","line":17,"range":{"start_line":17,"start_character":14,"end_line":17,"end_character":30},"in_reply_to":"1a6eadb0_a4009e67","updated":"2016-12-21 14:05:05.000000000","message":"this should be removed","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"}],"docker/mongodb/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"{{ macros.install_packages(mongodb_packages | customizable(\"packages\")) }}"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"RUN mkdir -p /var/lib/mongodb /home/mongodb \\"},{"line_number":22,"context_line":"    \u0026\u0026 chown -R mongodb: /var/lib/mongodb /home/mongodb"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"COPY mongodb_sudoers /etc/sudoers.d/kolla_mongodb_sudoers"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_c4275a10","side":"PARENT","line":21,"range":{"start_line":21,"start_character":13,"end_line":21,"end_character":29},"updated":"2016-12-21 12:37:21.000000000","message":"no longer needed?","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"{{ macros.install_packages(mongodb_packages | customizable(\"packages\")) }}"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"RUN mkdir -p /var/lib/mongodb /home/mongodb \\"},{"line_number":22,"context_line":"    \u0026\u0026 chown -R mongodb: /var/lib/mongodb /home/mongodb"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"COPY mongodb_sudoers /etc/sudoers.d/kolla_mongodb_sudoers"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_344757bd","side":"PARENT","line":21,"range":{"start_line":21,"start_character":13,"end_line":21,"end_character":29},"in_reply_to":"1a6eadb0_c4275a10","updated":"2016-12-21 14:05:05.000000000","message":"created in configure_user","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"{{ macros.install_packages(mongodb_packages | customizable(\"packages\")) }}"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"RUN mkdir -p /var/lib/mongodb /home/mongodb \\"},{"line_number":22,"context_line":"    \u0026\u0026 chown -R mongodb: /var/lib/mongodb /home/mongodb"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"COPY mongodb_sudoers /etc/sudoers.d/kolla_mongodb_sudoers"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_f4407fa7","side":"PARENT","line":21,"range":{"start_line":21,"start_character":13,"end_line":21,"end_character":29},"in_reply_to":"1a6eadb0_c4275a10","updated":"2016-12-21 14:05:05.000000000","message":"created in configure_user","commit_id":"2cc9a5ae15cbb0a51964c3366bec98ff6be53ea2"}],"docker/neutron/neutron-lbaas-agent/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{% if base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":9,"context_line":"{# NOTE(SamYaple): The postinst script breaks if the user \u0027haproxy\u0027 already exists #}"},{"line_number":10,"context_line":"RUN apt-get -y install --no-install-recommends haproxy \\"},{"line_number":11,"context_line":"    || sed -i \u0027/^adduser/,+1 d\u0027 /var/lib/dpkg/info/haproxy.postinst \\"},{"line_number":12,"context_line":"    \u0026\u0026 apt-get -y install -f \\"},{"line_number":13,"context_line":"    \u0026\u0026 apt-get clean"},{"line_number":14,"context_line":"{% endif %}"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"{% set neutron_lbaas_agent_packages \u003d ["},{"line_number":17,"context_line":"    \u0027haproxy\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_4496eaf0","line":14,"range":{"start_line":8,"start_character":0,"end_line":14,"end_character":11},"updated":"2016-12-21 12:37:21.000000000","message":"surely this should happen _after_ we\u0027ve installed haproxy","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{% if base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":9,"context_line":"{# NOTE(SamYaple): The postinst script breaks if the user \u0027haproxy\u0027 already exists #}"},{"line_number":10,"context_line":"RUN apt-get -y install --no-install-recommends haproxy \\"},{"line_number":11,"context_line":"    || sed -i \u0027/^adduser/,+1 d\u0027 /var/lib/dpkg/info/haproxy.postinst \\"},{"line_number":12,"context_line":"    \u0026\u0026 apt-get -y install -f \\"},{"line_number":13,"context_line":"    \u0026\u0026 apt-get clean"},{"line_number":14,"context_line":"{% endif %}"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"{% set neutron_lbaas_agent_packages \u003d ["},{"line_number":17,"context_line":"    \u0027haproxy\u0027,"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_b480c7c0","line":14,"range":{"start_line":8,"start_character":0,"end_line":14,"end_character":11},"in_reply_to":"1a6eadb0_4496eaf0","updated":"2016-12-21 14:05:05.000000000","message":"Nope. you see the \u0027|| sed\u0027 part catches the failure of the install command and then fixes the postinst script. Then we run \u0027apt-get install -f\u0027 to finish the install successfully.","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"}],"docker/nova/nova-libvirt/Dockerfile.j2":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}"},{"line_number":2,"context_line":"MAINTAINER {{ maintainer }}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{% block nova_libvirt_header %}{% endblock %}"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_a4a17e48","line":1,"range":{"start_line":1,"start_character":39,"end_line":1,"end_character":43},"updated":"2016-12-21 12:37:21.000000000","message":"why change this?","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":1,"context_line":"FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}"},{"line_number":2,"context_line":"MAINTAINER {{ maintainer }}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{% block nova_libvirt_header %}{% endblock %}"}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_f4dcffe5","line":1,"range":{"start_line":1,"start_character":39,"end_line":1,"end_character":43},"in_reply_to":"1a6eadb0_a4a17e48","updated":"2016-12-21 14:05:05.000000000","message":"this was only inplace to share uid/gid. Since we are doing that now, this is not needed.","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"2af856e5687db3e1bdb79cd451e9c91cefcffc9f","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"{{ macros.install_packages(nova_libvirt_packages | customizable(\"packages\")) }}"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"RUN sed -i \"/^#\\?unix_sock_group/s/.*/unix_sock_group \u003d \u0027qemu\u0027/\" /etc/libvirt/libvirtd.conf"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"{% if base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_049152f1","line":53,"updated":"2016-12-21 12:37:21.000000000","message":"Would rather do in separate patch unless required here","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"1c9c64e23229099bf0ffbdb1adfc9065f532b353","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"{{ macros.install_packages(nova_libvirt_packages | customizable(\"packages\")) }}"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"RUN sed -i \"/^#\\?unix_sock_group/s/.*/unix_sock_group \u003d \u0027qemu\u0027/\" /etc/libvirt/libvirtd.conf"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"{% if base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_f48a3fbe","line":53,"in_reply_to":"1a6eadb0_049152f1","updated":"2016-12-21 14:05:05.000000000","message":"Is required to unify the users. Shouldn\u0027t affect upgrade beyond the normal permissions change that all services will require since its all internalized","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"e6f5f5ee65cb45cbc102dcfd1d5343fdf2b2f522","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"{{ macros.install_packages(nova_libvirt_packages | customizable(\"packages\")) }}"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"RUN sed -i \"/^#\\?unix_sock_group/s/.*/unix_sock_group \u003d \u0027qemu\u0027/\" /etc/libvirt/libvirtd.conf"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"{% if base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":19,"id":"1a6eadb0_12c98b59","line":53,"in_reply_to":"1a6eadb0_049152f1","updated":"2016-12-21 14:46:05.000000000","message":"yea I can make this work outside of here. we override this in kolla-ansible anyway","commit_id":"2a1e7a9053e9f3e97b5749c62093b99eca5f2549"}],"docker/telegraf/Dockerfile.j2":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"3e42a6b3a20f5ce08f0ee028640702e131d137a9","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027telegraf\u0027, homedir\u003d\u0027/etc/telegraf\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% set telegraf_packages \u003d [\u0027telegraf\u0027] %}"},{"line_number":11,"context_line":"{{ macros.install_packages(telegraf_packages | customizable(\"packages\")) }}"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_bbce4e58","line":8,"updated":"2016-12-22 16:57:57.000000000","message":"why use /etc/telegraf as homedir?","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"51ddb3d04a8e145c3918e0f8c23133e6ffe3dd6a","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{{ macros.configure_user(name\u003d\u0027telegraf\u0027, homedir\u003d\u0027/etc/telegraf\u0027) }}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% set telegraf_packages \u003d [\u0027telegraf\u0027] %}"},{"line_number":11,"context_line":"{{ macros.install_packages(telegraf_packages | customizable(\"packages\")) }}"}],"source_content_type":"text/x-jinja2","patch_set":23,"id":"da4df55a_1be59908","line":8,"in_reply_to":"da4df55a_bbce4e58","updated":"2016-12-22 17:01:26.000000000","message":"I didnt choose it, thats what it already was.","commit_id":"bb312a35bdb2ec5ba7b4ca0c5394e69ac36cd9a4"}],"kolla/common/config.py":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"523e76cb69fefc91cd0a2add4224a55f76b836b9","unresolved":false,"context_lines":[{"line_number":425,"context_line":"}"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"# HOTE(SamYaple): Only increment the UID. Never reuse old or removed UIDs"},{"line_number":429,"context_line":"USERS \u003d {"},{"line_number":430,"context_line":"    \u0027ansible-user\u0027: {"},{"line_number":431,"context_line":"        \u0027uid\u0027: 42401,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_54f3269e","line":428,"range":{"start_line":428,"start_character":2,"end_line":428,"end_character":6},"updated":"2016-12-20 15:36:08.000000000","message":"typo.\n\nAlso is there any reason for starting at 42401 out of interest?","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"4be725f2bd45d3fee81b3c4083b95ba145da7b99","unresolved":false,"context_lines":[{"line_number":425,"context_line":"}"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"# HOTE(SamYaple): Only increment the UID. Never reuse old or removed UIDs"},{"line_number":429,"context_line":"USERS \u003d {"},{"line_number":430,"context_line":"    \u0027ansible-user\u0027: {"},{"line_number":431,"context_line":"        \u0027uid\u0027: 42401,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_e86d3633","line":428,"range":{"start_line":428,"start_character":2,"end_line":428,"end_character":6},"in_reply_to":"1a6eadb0_54f3269e","updated":"2016-12-20 15:50:35.000000000","message":"originally it was 400-500, but conflicts were discvoered. So I moved to an arbitrary 42400 (nothing on the internets showed these uids in use).\n\n42400 is kolla group\n42401+ is usable","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"26b82440caf2dd966610f8bf166ddd335b625fa9","unresolved":false,"context_lines":[{"line_number":425,"context_line":"}"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"# HOTE(SamYaple): Only increment the UID. Never reuse old or removed UIDs"},{"line_number":429,"context_line":"USERS \u003d {"},{"line_number":430,"context_line":"    \u0027ansible-user\u0027: {"},{"line_number":431,"context_line":"        \u0027uid\u0027: 42401,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_6bba00e3","line":428,"range":{"start_line":428,"start_character":2,"end_line":428,"end_character":6},"in_reply_to":"1a6eadb0_e86d3633","updated":"2016-12-20 16:02:23.000000000","message":"Grand, no harm to mention that in a note also for others concerned about magic numbers","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"}],"kolla/image/build.py":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"523e76cb69fefc91cd0a2add4224a55f76b836b9","unresolved":false,"context_lines":[{"line_number":665,"context_line":"                      \u0027maintainer\u0027: self.maintainer,"},{"line_number":666,"context_line":"                      \u0027kolla_version\u0027: kolla_version,"},{"line_number":667,"context_line":"                      \u0027image_name\u0027: image_name,"},{"line_number":668,"context_line":"                      \u0027users\u0027: users,"},{"line_number":669,"context_line":"                      \u0027rpm_setup\u0027: self.rpm_setup}"},{"line_number":670,"context_line":"            env \u003d jinja2.Environment(  # nosec: not used to render HTML"},{"line_number":671,"context_line":"                loader\u003djinja2.FileSystemLoader(self.working_dir))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_b47c7aec","line":668,"range":{"start_line":668,"start_character":31,"end_line":668,"end_character":36},"updated":"2016-12-20 15:36:08.000000000","message":"is line 652 needed? or can we just say self.get_users() here","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"4be725f2bd45d3fee81b3c4083b95ba145da7b99","unresolved":false,"context_lines":[{"line_number":665,"context_line":"                      \u0027maintainer\u0027: self.maintainer,"},{"line_number":666,"context_line":"                      \u0027kolla_version\u0027: kolla_version,"},{"line_number":667,"context_line":"                      \u0027image_name\u0027: image_name,"},{"line_number":668,"context_line":"                      \u0027users\u0027: users,"},{"line_number":669,"context_line":"                      \u0027rpm_setup\u0027: self.rpm_setup}"},{"line_number":670,"context_line":"            env \u003d jinja2.Environment(  # nosec: not used to render HTML"},{"line_number":671,"context_line":"                loader\u003djinja2.FileSystemLoader(self.working_dir))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_c85dda7a","line":668,"range":{"start_line":668,"start_character":31,"end_line":668,"end_character":36},"in_reply_to":"1a6eadb0_b47c7aec","updated":"2016-12-20 15:50:35.000000000","message":"Done","commit_id":"ed014f0d42d7709c434b7ae5153b5fb44f3979a4"}]}
