)]}'
{".zuul.yaml":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"afdfacaa1d597bed030869da6acc0403851897a9","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"- job:"},{"line_number":71,"context_line":"    timeout: 7200"},{"line_number":72,"context_line":"    name: openstack-keystone-functional"},{"line_number":73,"context_line":"    voting: false"},{"line_number":74,"context_line":"    run: playbooks/openstack-keystone-functional.yaml"},{"line_number":75,"context_line":"    required-projects:"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"7f96bb07_ca9e9bb7","line":72,"updated":"2018-01-12 17:14:07.000000000","message":"wrong naming - see https://docs.openstack.org/infra/manual/drivers.html#consistent-naming-for-jobs-with-zuul-v3\n\nWe have a global namespace, start your own jobs with just \"keystone\"","commit_id":"372487f700081d082aac0efd01bcd17567842e21"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"c920cbec829d34e00e528e908a738e4f00d08f76","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"- job:"},{"line_number":71,"context_line":"    timeout: 7200"},{"line_number":72,"context_line":"    name: openstack-keystone-functional"},{"line_number":73,"context_line":"    voting: false"},{"line_number":74,"context_line":"    run: playbooks/openstack-keystone-functional.yaml"},{"line_number":75,"context_line":"    required-projects:"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"7f96bb07_aa2eaf40","line":72,"in_reply_to":"7f96bb07_ca9e9bb7","updated":"2018-01-12 17:21:02.000000000","message":"Will fix!","commit_id":"372487f700081d082aac0efd01bcd17567842e21"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"e4b873ffdf65553759b29db909380fb8642e6211","unresolved":false,"context_lines":[{"line_number":69,"context_line":"- job:"},{"line_number":70,"context_line":"    timeout: 7200"},{"line_number":71,"context_line":"    name: keystone-functional-openstack-helm"},{"line_number":72,"context_line":"    voting: false"},{"line_number":73,"context_line":"    run: playbooks/keystone-functional-openstack-helm.yaml"},{"line_number":74,"context_line":"    required-projects:"},{"line_number":75,"context_line":"      - openstack/openstack-helm"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"3fa0c359_15b54632","line":72,"updated":"2018-02-20 18:38:22.000000000","message":"nit: I suggest adding a description to document what a job does using:\n\n description: |\n   Some text\n   and some more","commit_id":"784f58890f2676ced29949ddc94ecd87b84e1d12"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"f5caadd55626bb4aa3ddcd5e43e27e8c0b7af735","unresolved":false,"context_lines":[{"line_number":69,"context_line":"- job:"},{"line_number":70,"context_line":"    timeout: 7200"},{"line_number":71,"context_line":"    name: keystone-functional-openstack-helm"},{"line_number":72,"context_line":"    voting: false"},{"line_number":73,"context_line":"    run: playbooks/keystone-functional-openstack-helm.yaml"},{"line_number":74,"context_line":"    required-projects:"},{"line_number":75,"context_line":"      - openstack/openstack-helm"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"3fa0c359_b6533516","line":72,"in_reply_to":"3fa0c359_15b54632","updated":"2018-02-20 22:37:04.000000000","message":"Done","commit_id":"784f58890f2676ced29949ddc94ecd87b84e1d12"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"e4b873ffdf65553759b29db909380fb8642e6211","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    timeout: 7200"},{"line_number":71,"context_line":"    name: keystone-functional-openstack-helm"},{"line_number":72,"context_line":"    voting: false"},{"line_number":73,"context_line":"    run: playbooks/keystone-functional-openstack-helm.yaml"},{"line_number":74,"context_line":"    required-projects:"},{"line_number":75,"context_line":"      - openstack/openstack-helm"},{"line_number":76,"context_line":"      - openstack/openstack-helm-infra"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"3fa0c359_55af4ee2","line":73,"range":{"start_line":73,"start_character":9,"end_line":73,"end_character":58},"updated":"2018-02-20 18:38:22.000000000","message":"while this works, we usually have the structure - see openstack-zuul-jobs and project-config of:\nplaybooks/\u003cjob-name\u003e/run.yaml\n\nThat way you can have also playbooks/keystone-functional../post.yaml to upload logs and artifacts.","commit_id":"784f58890f2676ced29949ddc94ecd87b84e1d12"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"f5caadd55626bb4aa3ddcd5e43e27e8c0b7af735","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    timeout: 7200"},{"line_number":71,"context_line":"    name: keystone-functional-openstack-helm"},{"line_number":72,"context_line":"    voting: false"},{"line_number":73,"context_line":"    run: playbooks/keystone-functional-openstack-helm.yaml"},{"line_number":74,"context_line":"    required-projects:"},{"line_number":75,"context_line":"      - openstack/openstack-helm"},{"line_number":76,"context_line":"      - openstack/openstack-helm-infra"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"3fa0c359_d6584132","line":73,"range":{"start_line":73,"start_character":9,"end_line":73,"end_character":58},"in_reply_to":"3fa0c359_55af4ee2","updated":"2018-02-20 22:37:04.000000000","message":"Done","commit_id":"784f58890f2676ced29949ddc94ecd87b84e1d12"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"3b23aaa86302faf630fcb5885454ca32a74e802c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    description: |"},{"line_number":73,"context_line":"      This job builds a docker image of the current patchset for keystone"},{"line_number":74,"context_line":"      with loci, and deploys it using openstack-helm, along with the required"},{"line_number":75,"context_line":"      services for running keystone. Once the image is running, it runs"},{"line_number":76,"context_line":"      keystones own functional tests against it."},{"line_number":77,"context_line":"      Note that these are not tempest tests."},{"line_number":78,"context_line":"    voting: false"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"3fa0c359_7aeed222","line":75,"range":{"start_line":75,"start_character":46,"end_line":75,"end_character":51},"updated":"2018-02-22 02:26:02.000000000","message":"container or k8s pods?","commit_id":"4724b96574d8c558b97f8391fc53e33bca256cb2"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"ccb511178bc428e0a1a44f3b7b89d4cdcf4ed863","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    description: |"},{"line_number":73,"context_line":"      This job builds a docker image of the current patchset for keystone"},{"line_number":74,"context_line":"      with loci, and deploys it using openstack-helm, along with the required"},{"line_number":75,"context_line":"      services for running keystone. Once the image is running, it runs"},{"line_number":76,"context_line":"      keystones own functional tests against it."},{"line_number":77,"context_line":"      Note that these are not tempest tests."},{"line_number":78,"context_line":"    voting: false"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"3fa0c359_fa7ae221","line":75,"range":{"start_line":75,"start_character":46,"end_line":75,"end_character":51},"in_reply_to":"3fa0c359_7aeed222","updated":"2018-02-22 02:49:51.000000000","message":"k8s pod","commit_id":"4724b96574d8c558b97f8391fc53e33bca256cb2"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"df5f9c42bfe7222965b823ec13de01cc3f557dee","unresolved":false,"context_lines":[{"line_number":73,"context_line":"      This job builds a docker image of the current patchset for keystone"},{"line_number":74,"context_line":"      with loci, and deploys it using openstack-helm, along with the required"},{"line_number":75,"context_line":"      services for running keystone. Once the image is running, it runs"},{"line_number":76,"context_line":"      keystones own functional tests against it."},{"line_number":77,"context_line":"      Note that these are not tempest tests."},{"line_number":78,"context_line":"    voting: false"},{"line_number":79,"context_line":"    run: playbooks/keystone-osh-functional/run.yaml"}],"source_content_type":"text/x-yaml","patch_set":68,"id":"5f7c97a3_e1530d6b","line":76,"range":{"start_line":76,"start_character":6,"end_line":76,"end_character":15},"updated":"2018-06-22 19:15:41.000000000","message":"Keystone\u0027s","commit_id":"e870ab6a098bd3dbc247b61297cfe06ca63a74db"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"df5f9c42bfe7222965b823ec13de01cc3f557dee","unresolved":false,"context_lines":[{"line_number":75,"context_line":"      services for running keystone. Once the image is running, it runs"},{"line_number":76,"context_line":"      keystones own functional tests against it."},{"line_number":77,"context_line":"      Note that these are not tempest tests."},{"line_number":78,"context_line":"    voting: false"},{"line_number":79,"context_line":"    run: playbooks/keystone-osh-functional/run.yaml"},{"line_number":80,"context_line":"    required-projects:"},{"line_number":81,"context_line":"      - openstack/openstack-helm"}],"source_content_type":"text/x-yaml","patch_set":68,"id":"5f7c97a3_c14611a8","line":78,"updated":"2018-06-22 19:15:41.000000000","message":"s/tempest/Tempest/g\ns/keystone/Keystone/g\ns/openstack-helm/OpenStack-Helm/g","commit_id":"e870ab6a098bd3dbc247b61297cfe06ca63a74db"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"2fe61c02205338aeb64cda7b1789b116b519ac72","unresolved":false,"context_lines":[{"line_number":144,"context_line":"      - openstack/keystone"},{"line_number":145,"context_line":"    nodeset: legacy-ubuntu-xenial-2-node"},{"line_number":146,"context_line":"# NOTE(gagehugo): DONT MERGE THIS WITH THE JOBS COMMENTED OUT"},{"line_number":147,"context_line":"- project:"},{"line_number":148,"context_line":"    templates:"},{"line_number":149,"context_line":"      # - openstack-python-jobs"},{"line_number":150,"context_line":"      # - openstack-python35-jobs"},{"line_number":151,"context_line":"      # - openstack-python36-jobs"},{"line_number":152,"context_line":"      # - publish-openstack-docs-pti"},{"line_number":153,"context_line":"      # - periodic-stable-jobs"},{"line_number":154,"context_line":"      # - check-requirements"},{"line_number":155,"context_line":"      # - integrated-gate"},{"line_number":156,"context_line":"      # - integrated-gate-py35"},{"line_number":157,"context_line":"      # - release-notes-jobs-python3"},{"line_number":158,"context_line":"    check:"},{"line_number":159,"context_line":"      jobs:"},{"line_number":160,"context_line":"        # - keystone-dsvm-functional"},{"line_number":161,"context_line":"        # - keystone-dsvm-functional-v3-only"},{"line_number":162,"context_line":"        # - keystone-dsvm-py35-functional-v3-only"},{"line_number":163,"context_line":"        - keystone-osh-functional"},{"line_number":164,"context_line":"        # - openstack-ansible-keystone-rolling-upgrade"},{"line_number":165,"context_line":"        # - openstack-tox-lower-constraints"},{"line_number":166,"context_line":"        # - legacy-keystoneclient-dsvm-functional:"},{"line_number":167,"context_line":"        #    voting: false"},{"line_number":168,"context_line":"        #    irrelevant-files:"},{"line_number":169,"context_line":"        #      - ^.*\\.rst$"},{"line_number":170,"context_line":"        #      - ^api-ref/.*$"},{"line_number":171,"context_line":"        #      - ^doc/.*$"},{"line_number":172,"context_line":"        #      - ^etc/.*$"},{"line_number":173,"context_line":"        #      - ^keystone/tests/unit/.*$"},{"line_number":174,"context_line":"        #      - ^releasenotes/.*$"},{"line_number":175,"context_line":"        # - openstack-tox-cover"},{"line_number":176,"context_line":"        # - legacy-tempest-dsvm-ldap-domain-specific-driver:"},{"line_number":177,"context_line":"        #    voting: false"},{"line_number":178,"context_line":"        #    irrelevant-files:"},{"line_number":179,"context_line":"        #      - ^(test-|)requirements.txt$"},{"line_number":180,"context_line":"        #      - ^.*\\.rst$"},{"line_number":181,"context_line":"        #      - ^api-ref/.*$"},{"line_number":182,"context_line":"        #      - ^doc/.*$"},{"line_number":183,"context_line":"        #      - ^etc/.*$"},{"line_number":184,"context_line":"        #      - ^keystone/tests/unit/.*$"},{"line_number":185,"context_line":"        #      - ^releasenotes/.*$"},{"line_number":186,"context_line":"        #      - ^setup.cfg$"},{"line_number":187,"context_line":"        # - tempest-full:"},{"line_number":188,"context_line":"        #    irrelevant-files:"},{"line_number":189,"context_line":"        #      - ^(test-|)requirements.txt$"},{"line_number":190,"context_line":"        #      - ^.*\\.rst$"},{"line_number":191,"context_line":"        #      - ^api-ref/.*$"},{"line_number":192,"context_line":"        #      - ^doc/.*$"},{"line_number":193,"context_line":"        #      - ^etc/.*$"},{"line_number":194,"context_line":"        #      - ^keystone/tests/unit/.*$"},{"line_number":195,"context_line":"        #      - ^releasenotes/.*$"},{"line_number":196,"context_line":"        #      - ^setup.cfg$"},{"line_number":197,"context_line":"        # - neutron-grenade:"},{"line_number":198,"context_line":"        #   irrelevant-files:"},{"line_number":199,"context_line":"        #      - ^(test-|)requirements.txt$"},{"line_number":200,"context_line":"        #      - ^.*\\.rst$"},{"line_number":201,"context_line":"        #      - ^api-ref/.*$"},{"line_number":202,"context_line":"        #      - ^doc/.*$"},{"line_number":203,"context_line":"        #      - ^etc/.*$"},{"line_number":204,"context_line":"        #      - ^keystone/tests/unit/.*$"},{"line_number":205,"context_line":"        #      - ^releasenotes/.*$"},{"line_number":206,"context_line":"        #      - ^setup.cfg$"},{"line_number":207,"context_line":"    gate:"},{"line_number":208,"context_line":"      jobs:"},{"line_number":209,"context_line":"        - keystone-dsvm-functional"},{"line_number":210,"context_line":"        - openstack-tox-lower-constraints"},{"line_number":211,"context_line":"        - tempest-full:"},{"line_number":212,"context_line":"            irrelevant-files:"},{"line_number":213,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":214,"context_line":"              - ^.*\\.rst$"},{"line_number":215,"context_line":"              - ^api-ref/.*$"},{"line_number":216,"context_line":"              - ^doc/.*$"},{"line_number":217,"context_line":"              - ^etc/.*$"},{"line_number":218,"context_line":"              - ^keystone/tests/unit/.*$"},{"line_number":219,"context_line":"              - ^releasenotes/.*$"},{"line_number":220,"context_line":"              - ^setup.cfg$"},{"line_number":221,"context_line":"        - neutron-grenade:"},{"line_number":222,"context_line":"            irrelevant-files:"},{"line_number":223,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":224,"context_line":"              - ^.*\\.rst$"},{"line_number":225,"context_line":"              - ^api-ref/.*$"},{"line_number":226,"context_line":"              - ^doc/.*$"},{"line_number":227,"context_line":"              - ^etc/.*$"},{"line_number":228,"context_line":"              - ^keystone/tests/unit/.*$"},{"line_number":229,"context_line":"              - ^releasenotes/.*$"},{"line_number":230,"context_line":"              - ^setup.cfg$"},{"line_number":231,"context_line":"    experimental:"},{"line_number":232,"context_line":"      jobs:"},{"line_number":233,"context_line":"        - keystone-tox-patch_cover"},{"line_number":234,"context_line":"        - keystone-dsvm-grenade-multinode"},{"line_number":235,"context_line":"        - legacy-tempest-dsvm-neutron-pg-full:"},{"line_number":236,"context_line":"            irrelevant-files:"},{"line_number":237,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":238,"context_line":"              - ^.*\\.rst$"},{"line_number":239,"context_line":"              - ^api-ref/.*$"},{"line_number":240,"context_line":"              - ^doc/.*$"},{"line_number":241,"context_line":"              - ^etc/.*$"},{"line_number":242,"context_line":"              - ^keystone/tests/unit/.*$"},{"line_number":243,"context_line":"              - ^releasenotes/.*$"},{"line_number":244,"context_line":"              - ^setup.cfg$"},{"line_number":245,"context_line":"        - legacy-tempest-dsvm-neutron-full-opensuse-423:"},{"line_number":246,"context_line":"            irrelevant-files:"},{"line_number":247,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":248,"context_line":"              - ^.*\\.rst$"},{"line_number":249,"context_line":"              - ^api-ref/.*$"},{"line_number":250,"context_line":"              - ^doc/.*$"},{"line_number":251,"context_line":"              - ^etc/.*$"},{"line_number":252,"context_line":"              - ^keystone/tests/unit/.*$"},{"line_number":253,"context_line":"              - ^releasenotes/.*$"},{"line_number":254,"context_line":"              - ^setup.cfg$"},{"line_number":255,"context_line":"    post:"},{"line_number":256,"context_line":"      jobs:"},{"line_number":257,"context_line":"        - publish-loci-keystone"}],"source_content_type":"text/x-yaml","patch_set":78,"id":"3f79a3b5_e06f2726","line":257,"range":{"start_line":147,"start_character":2,"end_line":257,"end_character":0},"updated":"2018-09-10 20:12:59.000000000","message":"expected a list for dictionary value @ data[\u0027templates\u0027]","commit_id":"1531bea42da0c6c26f042c403ed6961b5bf713b0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"4556790b04e93ed5e37a043ae7c81f42e6b6b0d6","unresolved":false,"context_lines":[{"line_number":145,"context_line":"      - openstack/keystone"},{"line_number":146,"context_line":"    nodeset: legacy-ubuntu-xenial-2-node"},{"line_number":147,"context_line":"# NOTE(gagehugo): DONT MERGE THIS WITH THE JOBS COMMENTED OUT"},{"line_number":148,"context_line":"- project:"},{"line_number":149,"context_line":"    templates:"},{"line_number":150,"context_line":"      # - openstack-cover-jobs"},{"line_number":151,"context_line":"      # - openstack-lower-constraints-jobs"},{"line_number":152,"context_line":"      # - openstack-python-jobs"},{"line_number":153,"context_line":"      # - openstack-python35-jobs"},{"line_number":154,"context_line":"      # - openstack-python36-jobs"},{"line_number":155,"context_line":"      # - publish-openstack-docs-pti"},{"line_number":156,"context_line":"      # - periodic-stable-jobs"},{"line_number":157,"context_line":"      # - check-requirements"},{"line_number":158,"context_line":"      # - integrated-gate"},{"line_number":159,"context_line":"      # - integrated-gate-py35"},{"line_number":160,"context_line":"      # - release-notes-jobs-python3"},{"line_number":161,"context_line":"    check:"},{"line_number":162,"context_line":"      jobs:"},{"line_number":163,"context_line":"        - keystone-osh-functional"},{"line_number":164,"context_line":"        # - keystone-dsvm-functional"},{"line_number":165,"context_line":"        # - keystone-dsvm-functional-federation"},{"line_number":166,"context_line":"        # - keystone-dsvm-py35-functional-federation"},{"line_number":167,"context_line":"        # - legacy-keystoneclient-dsvm-functional:"},{"line_number":168,"context_line":"        #    voting: false"},{"line_number":169,"context_line":"        #    irrelevant-files:"},{"line_number":170,"context_line":"        #      - ^.*\\.rst$"},{"line_number":171,"context_line":"        #      - ^api-ref/.*$"},{"line_number":172,"context_line":"        #      - ^doc/.*$"},{"line_number":173,"context_line":"        #      - ^etc/.*$"},{"line_number":174,"context_line":"        #      - ^keystone/tests/unit/.*$"},{"line_number":175,"context_line":"        #      - ^releasenotes/.*$"},{"line_number":176,"context_line":"        # - legacy-tempest-dsvm-ldap-domain-specific-driver:"},{"line_number":177,"context_line":"        #    voting: false"},{"line_number":178,"context_line":"        #    irrelevant-files:"},{"line_number":179,"context_line":"        #      - ^(test-|)requirements.txt$"},{"line_number":180,"context_line":"        #      - ^.*\\.rst$"},{"line_number":181,"context_line":"        #      - ^api-ref/.*$"},{"line_number":182,"context_line":"        #      - ^doc/.*$"},{"line_number":183,"context_line":"        #      - ^etc/.*$"},{"line_number":184,"context_line":"        #      - ^keystone/tests/unit/.*$"},{"line_number":185,"context_line":"        #      - ^releasenotes/.*$"},{"line_number":186,"context_line":"        #      - ^setup.cfg$"},{"line_number":187,"context_line":"        # - tempest-full:"},{"line_number":188,"context_line":"        #    irrelevant-files:"},{"line_number":189,"context_line":"        #      - ^(test-|)requirements.txt$"},{"line_number":190,"context_line":"        #      - ^.*\\.rst$"},{"line_number":191,"context_line":"        #      - ^api-ref/.*$"},{"line_number":192,"context_line":"        #      - ^doc/.*$"},{"line_number":193,"context_line":"        #      - ^etc/.*$"},{"line_number":194,"context_line":"        #      - ^keystone/tests/unit/.*$"},{"line_number":195,"context_line":"        #      - ^releasenotes/.*$"},{"line_number":196,"context_line":"        #      - ^setup.cfg$"},{"line_number":197,"context_line":"        # - neutron-grenade:"},{"line_number":198,"context_line":"        #    irrelevant-files:"},{"line_number":199,"context_line":"        #      - ^(test-|)requirements.txt$"},{"line_number":200,"context_line":"        #      - ^.*\\.rst$"},{"line_number":201,"context_line":"        #      - ^api-ref/.*$"},{"line_number":202,"context_line":"        #      - ^doc/.*$"},{"line_number":203,"context_line":"        #      - ^etc/.*$"},{"line_number":204,"context_line":"        #      - ^keystone/tests/unit/.*$"},{"line_number":205,"context_line":"        #      - ^releasenotes/.*$"},{"line_number":206,"context_line":"        #      - ^setup.cfg$"},{"line_number":207,"context_line":"    gate:"},{"line_number":208,"context_line":"      jobs:"},{"line_number":209,"context_line":"        - keystone-dsvm-functional"},{"line_number":210,"context_line":"        - tempest-full:"},{"line_number":211,"context_line":"            irrelevant-files:"},{"line_number":212,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":213,"context_line":"              - ^.*\\.rst$"},{"line_number":214,"context_line":"              - ^api-ref/.*$"},{"line_number":215,"context_line":"              - ^doc/.*$"},{"line_number":216,"context_line":"              - ^etc/.*$"},{"line_number":217,"context_line":"              - ^keystone/tests/unit/.*$"},{"line_number":218,"context_line":"              - ^releasenotes/.*$"},{"line_number":219,"context_line":"              - ^setup.cfg$"},{"line_number":220,"context_line":"        - neutron-grenade:"},{"line_number":221,"context_line":"            irrelevant-files:"},{"line_number":222,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":223,"context_line":"              - ^.*\\.rst$"},{"line_number":224,"context_line":"              - ^api-ref/.*$"},{"line_number":225,"context_line":"              - ^doc/.*$"},{"line_number":226,"context_line":"              - ^etc/.*$"},{"line_number":227,"context_line":"              - ^keystone/tests/unit/.*$"},{"line_number":228,"context_line":"              - ^releasenotes/.*$"},{"line_number":229,"context_line":"              - ^setup.cfg$"},{"line_number":230,"context_line":"    experimental:"},{"line_number":231,"context_line":"      jobs:"},{"line_number":232,"context_line":"        - keystone-tox-patch_cover"},{"line_number":233,"context_line":"        - keystone-dsvm-grenade-multinode"},{"line_number":234,"context_line":"        - openstack-ansible-keystone-rolling-upgrade"},{"line_number":235,"context_line":"        - legacy-tempest-dsvm-neutron-pg-full:"},{"line_number":236,"context_line":"            irrelevant-files:"},{"line_number":237,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":238,"context_line":"              - ^.*\\.rst$"},{"line_number":239,"context_line":"              - ^api-ref/.*$"},{"line_number":240,"context_line":"              - ^doc/.*$"},{"line_number":241,"context_line":"              - ^etc/.*$"},{"line_number":242,"context_line":"              - ^keystone/tests/unit/.*$"},{"line_number":243,"context_line":"              - ^releasenotes/.*$"},{"line_number":244,"context_line":"              - ^setup.cfg$"},{"line_number":245,"context_line":"        - legacy-tempest-dsvm-neutron-full-opensuse-423:"},{"line_number":246,"context_line":"            irrelevant-files:"},{"line_number":247,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":248,"context_line":"              - ^.*\\.rst$"},{"line_number":249,"context_line":"              - ^api-ref/.*$"},{"line_number":250,"context_line":"              - ^doc/.*$"},{"line_number":251,"context_line":"              - ^etc/.*$"},{"line_number":252,"context_line":"              - ^keystone/tests/unit/.*$"},{"line_number":253,"context_line":"              - ^releasenotes/.*$"},{"line_number":254,"context_line":"              - ^setup.cfg$"},{"line_number":255,"context_line":"    post:"},{"line_number":256,"context_line":"      jobs:"},{"line_number":257,"context_line":"        - publish-loci-keystone"}],"source_content_type":"text/x-yaml","patch_set":84,"id":"3f79a3b5_87f9ed4e","line":257,"range":{"start_line":148,"start_character":2,"end_line":257,"end_character":0},"updated":"2018-09-19 20:33:43.000000000","message":"expected a list for dictionary value @ data[\u0027templates\u0027]","commit_id":"64d7f4556c2ed634a7fb4739520503d8b8325d9b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"e545779fce05ae81241be92e79d65ccb59d4c779","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"# NOTE(gagehugo): JOBS DELETED TO SAVE TIME \u0026 RESOURCES"},{"line_number":113,"context_line":"# DO NOT MERGE THIS WITHOUT THE PROPER JOBS RESTORED"},{"line_number":114,"context_line":"- project:"},{"line_number":115,"context_line":"    # templates:"},{"line_number":116,"context_line":"      # - openstack-cover-jobs"},{"line_number":117,"context_line":"      # - openstack-lower-constraints-jobs"},{"line_number":118,"context_line":"      # - openstack-python-jobs"},{"line_number":119,"context_line":"      # - openstack-python35-jobs"},{"line_number":120,"context_line":"      # - openstack-python36-jobs"},{"line_number":121,"context_line":"      # - publish-openstack-docs-pti"},{"line_number":122,"context_line":"      # - periodic-stable-jobs"},{"line_number":123,"context_line":"      # - check-requirements"},{"line_number":124,"context_line":"      # - integrated-gate"},{"line_number":125,"context_line":"      # - integrated-gate-py35"},{"line_number":126,"context_line":"      # - release-notes-jobs-python3"},{"line_number":127,"context_line":"    check:"},{"line_number":128,"context_line":"      jobs:"},{"line_number":129,"context_line":"        - keystone-osh-functional"},{"line_number":130,"context_line":"    gate:"},{"line_number":131,"context_line":"      jobs:"},{"line_number":132,"context_line":"        - keystone-dsvm-functional:"},{"line_number":133,"context_line":"        - keystone-dsvm-py3-functional:"},{"line_number":134,"context_line":"        - tempest-full:"},{"line_number":135,"context_line":"        - tempest-full-py3:"},{"line_number":136,"context_line":"        - neutron-grenade:"},{"line_number":137,"context_line":"    experimental:"},{"line_number":138,"context_line":"      jobs:"},{"line_number":139,"context_line":"        - keystone-tox-patch_cover"},{"line_number":140,"context_line":"        - keystone-dsvm-grenade-multinode:"},{"line_number":141,"context_line":"        - openstack-ansible-keystone-rolling-upgrade:"},{"line_number":142,"context_line":"        - tempest-pg-full:"},{"line_number":143,"context_line":"        - tempest-full-py3-opensuse150:"},{"line_number":144,"context_line":"    post:"},{"line_number":145,"context_line":"      jobs:"},{"line_number":146,"context_line":"        - publish-loci-keystone"}],"source_content_type":"text/x-yaml","patch_set":91,"id":"3f79a3b5_a51ba86b","line":146,"range":{"start_line":114,"start_character":2,"end_line":146,"end_character":0},"updated":"2018-11-27 23:34:33.000000000","message":"expected str for dictionary value @ data[\u0027experimental\u0027][\u0027jobs\u0027][1][\u0027keystone-dsvm-grenade-multinode\u0027]","commit_id":"d088ac222879b6b32d66191a60253cbd470ec5f2"}],"playbooks/keystone-functional-openstack-helm.yaml":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"d6d33d477bb479a698a43c77be6f16a7908c8e5f","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        # If running locally, this should get you REF_PATH"},{"line_number":65,"context_line":"        # REF_PATH\u003d$(git ls-remote | grep $(git rev-parse HEAD) | awk \u0027{print $2}\u0027)"},{"line_number":66,"context_line":"        sudo docker build https://git.openstack.org/openstack/loci.git \\"},{"line_number":67,"context_line":"            --build-arg FROM\u003dosixia/ubuntu-light-baseimage:latest"},{"line_number":68,"context_line":"            --build-arg PROJECT\u003dkeystone --tag gerrit-keystone \\"},{"line_number":69,"context_line":"            --build-arg PROJECT_REF\u003d{{ REF_PATH }} \\"},{"line_number":70,"context_line":"            --build-arg PROFILES\u003d\"apache libapache2-mod-wsgi\""}],"source_content_type":"text/x-yaml","patch_set":30,"id":"5f93b717_3b7ace87","line":67,"range":{"start_line":67,"start_character":0,"end_line":67,"end_character":65},"updated":"2018-01-29 07:45:47.000000000","message":"The job failed at this step.\nI think you missed a \"\\\" at the end of this line.","commit_id":"b73831bb1c49fe3f864bcb4e7c0d4564cae0d230"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"c0d2ad58b6ab1083db3c4731756a734d1ef3b4bf","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        export KSTEST_ADMIN_USERNAME\u003d\u0027admin\u0027"},{"line_number":99,"context_line":"        export KSTEST_ADMIN_PASSWORD\u003d\u0027password\u0027"},{"line_number":100,"context_line":"        export KSTEST_ADMIN_DOMAIN_ID\u003d\u0027default\u0027"},{"line_number":101,"context_line":"        export KSTEST_USER_USERNAME\u003d\u0027admin\u0027"},{"line_number":102,"context_line":"        export KSTEST_USER_PASSWORD\u003d\u0027password\u0027"},{"line_number":103,"context_line":"        export KSTEST_USER_DOMAIN_ID\u003d\u0027default\u0027"},{"line_number":104,"context_line":"        export KSTEST_PROJECT_NAME\u003d\u0027admin\u0027"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"5f93b717_ad852dd1","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":42},"updated":"2018-01-30 01:27:48.000000000","message":"KSTEST_USER_USERNAME is used to test non-admin. So I think we should create a new user first and use that one. It seems that openstack-helm doesn\u0027t have this kind of k8s-job, how about add one to openstack-helm or add a new ansible task before \"Run keystone functional tests\". I suppose we will add more functional tests in the future, then more assignments related tests will be included, so even we can do it in the test\u0027s setUp function? Not sure which one is better.","commit_id":"eccbf755e03dd59d75126f54eab6dc8c7a94d214"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"aeee682a61796530a3c9d9f593a571e154d6aeb9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -"},{"line_number":8,"context_line":"        sudo add-apt-repository \"deb [arch\u003damd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\""},{"line_number":9,"context_line":"        sudo apt-get update"},{"line_number":10,"context_line":"        sudo apt-get install docker.ce\u003d17.12.0~ce-0~ubuntu -y"},{"line_number":11,"context_line":"        ./tools/deployment/developer/common/010-deploy-k8s.sh"},{"line_number":12,"context_line":"      args:"},{"line_number":13,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""}],"source_content_type":"text/x-yaml","patch_set":34,"id":"5f93b717_ea915c53","line":10,"updated":"2018-02-03 08:51:34.000000000","message":"A question here: does it mean that this job can only ran on ubuntu system? how about others?","commit_id":"196e20a6223849c86d05fbdd77ae3a1a0a42d520"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"aff62d1d8ae891ec163257091e2e88b1d09be9be","unresolved":false,"context_lines":[{"line_number":7,"context_line":"        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -"},{"line_number":8,"context_line":"        sudo add-apt-repository \"deb [arch\u003damd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\""},{"line_number":9,"context_line":"        sudo apt-get update"},{"line_number":10,"context_line":"        sudo apt-get install docker.ce\u003d17.12.0~ce-0~ubuntu -y"},{"line_number":11,"context_line":"        ./tools/deployment/developer/common/010-deploy-k8s.sh"},{"line_number":12,"context_line":"      args:"},{"line_number":13,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""}],"source_content_type":"text/x-yaml","patch_set":34,"id":"3fa0c359_ff2be5e7","line":10,"in_reply_to":"3fa0c359_f3f32b09","updated":"2018-02-08 15:28:09.000000000","message":"yup!","commit_id":"196e20a6223849c86d05fbdd77ae3a1a0a42d520"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"4c3a75169bc11e08e2dcc9fed5931208d792c0e4","unresolved":false,"context_lines":[{"line_number":7,"context_line":"        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -"},{"line_number":8,"context_line":"        sudo add-apt-repository \"deb [arch\u003damd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\""},{"line_number":9,"context_line":"        sudo apt-get update"},{"line_number":10,"context_line":"        sudo apt-get install docker.ce\u003d17.12.0~ce-0~ubuntu -y"},{"line_number":11,"context_line":"        ./tools/deployment/developer/common/010-deploy-k8s.sh"},{"line_number":12,"context_line":"      args:"},{"line_number":13,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""}],"source_content_type":"text/x-yaml","patch_set":34,"id":"3fa0c359_f3f32b09","line":10,"in_reply_to":"5f93b717_a3f13e98","updated":"2018-02-08 07:22:52.000000000","message":"Oh my point here is \"apt-get\". I suppose that if others create their own CI systems locally but don\u0027t use Ubuntu, they should change it to something like \"yum\". Right?","commit_id":"196e20a6223849c86d05fbdd77ae3a1a0a42d520"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"369c5b9b404c7b20b80290d305eebcb92734aefb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -"},{"line_number":8,"context_line":"        sudo add-apt-repository \"deb [arch\u003damd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\""},{"line_number":9,"context_line":"        sudo apt-get update"},{"line_number":10,"context_line":"        sudo apt-get install docker.ce\u003d17.12.0~ce-0~ubuntu -y"},{"line_number":11,"context_line":"        ./tools/deployment/developer/common/010-deploy-k8s.sh"},{"line_number":12,"context_line":"      args:"},{"line_number":13,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""}],"source_content_type":"text/x-yaml","patch_set":34,"id":"5f93b717_a3f13e98","line":10,"in_reply_to":"5f93b717_ea915c53","updated":"2018-02-04 01:27:39.000000000","message":"You should be able to substitute the docker package for whatever distro you are using.  This is done here due to loci needing a feature from docker 17","commit_id":"196e20a6223849c86d05fbdd77ae3a1a0a42d520"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"4a6b60ebbe29631355d561f70a0ae8a1ef957d7a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        ./tools/deployment/developer/common/030-ingress.sh \u0026"},{"line_number":26,"context_line":"        ./tools/deployment/developer/common/060-rabbitmq.sh \u0026"},{"line_number":27,"context_line":"        ./tools/deployment/developer/nfs/070-memcached.sh \u0026"},{"line_number":28,"context_line":"        make pull-images mariadb"},{"line_number":29,"context_line":"        helm install ./mariadb --namespace\u003dopenstack \\"},{"line_number":30,"context_line":"            --name\u003dmariadb --set pod.replicas.server\u003d1 \\"},{"line_number":31,"context_line":"            --set volume.enabled\u003dFalse \u0026"},{"line_number":32,"context_line":"      args:"},{"line_number":33,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""},{"line_number":34,"context_line":"    - name: Build Local Image"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"3fa0c359_6b9606f3","line":31,"range":{"start_line":28,"start_character":0,"end_line":31,"end_character":40},"updated":"2018-02-11 02:46:08.000000000","message":"Any reason for not using 050-mariadb.sh?","commit_id":"65189e67ad7f9e128ee6df77ba21ce1a11e446fd"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"17f89ae3a2468fb989b60e6dc764fb3017e71d1e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        ./tools/deployment/developer/common/030-ingress.sh \u0026"},{"line_number":26,"context_line":"        ./tools/deployment/developer/common/060-rabbitmq.sh \u0026"},{"line_number":27,"context_line":"        ./tools/deployment/developer/nfs/070-memcached.sh \u0026"},{"line_number":28,"context_line":"        make pull-images mariadb"},{"line_number":29,"context_line":"        helm install ./mariadb --namespace\u003dopenstack \\"},{"line_number":30,"context_line":"            --name\u003dmariadb --set pod.replicas.server\u003d1 \\"},{"line_number":31,"context_line":"            --set volume.enabled\u003dFalse \u0026"},{"line_number":32,"context_line":"      args:"},{"line_number":33,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""},{"line_number":34,"context_line":"    - name: Build Local Image"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"3fa0c359_969b6e64","line":31,"range":{"start_line":28,"start_character":0,"end_line":31,"end_character":40},"in_reply_to":"3fa0c359_6b9606f3","updated":"2018-02-12 02:35:07.000000000","message":"When the mariadb pod comes up it creates volume by default and this was causing issues. This manually overrides the volume.enabled value to avoid this.","commit_id":"65189e67ad7f9e128ee6df77ba21ce1a11e446fd"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"901b67569a798aab2fd8d0a079214fcbfa4799d4","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        ./tools/deployment/developer/common/030-ingress.sh \u0026"},{"line_number":26,"context_line":"        ./tools/deployment/developer/common/060-rabbitmq.sh \u0026"},{"line_number":27,"context_line":"        ./tools/deployment/developer/nfs/070-memcached.sh \u0026"},{"line_number":28,"context_line":"        make pull-images mariadb"},{"line_number":29,"context_line":"        helm install ./mariadb --namespace\u003dopenstack \\"},{"line_number":30,"context_line":"            --name\u003dmariadb --set pod.replicas.server\u003d1 \\"},{"line_number":31,"context_line":"            --set volume.enabled\u003dFalse \u0026"},{"line_number":32,"context_line":"      args:"},{"line_number":33,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""},{"line_number":34,"context_line":"    - name: Build Local Image"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"3fa0c359_f7c66c68","line":31,"range":{"start_line":28,"start_character":0,"end_line":31,"end_character":40},"in_reply_to":"3fa0c359_969b6e64","updated":"2018-02-12 07:10:30.000000000","message":"Got it. It seems because that we don\u0027t deploy ceph.","commit_id":"65189e67ad7f9e128ee6df77ba21ce1a11e446fd"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"4a6b60ebbe29631355d561f70a0ae8a1ef957d7a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        export OS_USER_DOMAIN_NAME\u003ddefault"},{"line_number":73,"context_line":"        export OS_IDENTITY_API_VERSION\u003d3"},{"line_number":74,"context_line":"        openstack user create --domain default --password password demo"},{"line_number":75,"context_line":"        #TODO(gagehugo): Create another non-admin project for testing"},{"line_number":76,"context_line":"        openstack role add --project admin --user demo admin"},{"line_number":77,"context_line":"    - name: Run keystone functional tests"},{"line_number":78,"context_line":"      shell: |"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"3fa0c359_0b8742b7","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":69},"updated":"2018-02-11 02:46:08.000000000","message":"this will be done in a following patch?","commit_id":"65189e67ad7f9e128ee6df77ba21ce1a11e446fd"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"17f89ae3a2468fb989b60e6dc764fb3017e71d1e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        export OS_USER_DOMAIN_NAME\u003ddefault"},{"line_number":73,"context_line":"        export OS_IDENTITY_API_VERSION\u003d3"},{"line_number":74,"context_line":"        openstack user create --domain default --password password demo"},{"line_number":75,"context_line":"        #TODO(gagehugo): Create another non-admin project for testing"},{"line_number":76,"context_line":"        openstack role add --project admin --user demo admin"},{"line_number":77,"context_line":"    - name: Run keystone functional tests"},{"line_number":78,"context_line":"      shell: |"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"3fa0c359_56a16693","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":69},"in_reply_to":"3fa0c359_0b8742b7","updated":"2018-02-12 02:35:07.000000000","message":"Yes, these functional tests are lacking and could use some fixing, which I\u0027d like to do once this gating patch looks alright.","commit_id":"65189e67ad7f9e128ee6df77ba21ce1a11e446fd"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ad941b267adb614f0b0f46caa30a678788759fc5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        ./tools/deployment/developer/common/020-setup-client.sh"},{"line_number":22,"context_line":"      args:"},{"line_number":23,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""},{"line_number":24,"context_line":"    - name: Deploy Ingress, RabbitMQ, Memcached, MariaDB"},{"line_number":25,"context_line":"      shell: |"},{"line_number":26,"context_line":"        set -xe;"},{"line_number":27,"context_line":"        ./tools/deployment/developer/common/030-ingress.sh"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"3fa0c359_e3f8a14a","line":24,"updated":"2018-02-14 19:25:44.000000000","message":"I suggest to leave an empty line before each block, so after line 23. That structures it nicer","commit_id":"f4aeec7ed35e6d1de8b38eeca66da57c3f16aa93"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"0a868fc0798022a7279d1c12dd2ad8652373aed5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        ./tools/deployment/developer/common/020-setup-client.sh"},{"line_number":22,"context_line":"      args:"},{"line_number":23,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""},{"line_number":24,"context_line":"    - name: Deploy Ingress, RabbitMQ, Memcached, MariaDB"},{"line_number":25,"context_line":"      shell: |"},{"line_number":26,"context_line":"        set -xe;"},{"line_number":27,"context_line":"        ./tools/deployment/developer/common/030-ingress.sh"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"3fa0c359_c3a9e524","line":24,"in_reply_to":"3fa0c359_e3f8a14a","updated":"2018-02-14 19:28:15.000000000","message":"will do","commit_id":"f4aeec7ed35e6d1de8b38eeca66da57c3f16aa93"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"ad941b267adb614f0b0f46caa30a678788759fc5","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            --name\u003dmariadb --set pod.replicas.server\u003d1 \\"},{"line_number":35,"context_line":"            --set volume.enabled\u003dFalse \u0026"},{"line_number":36,"context_line":"      args:"},{"line_number":37,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""},{"line_number":38,"context_line":"    - name: Build Local Image"},{"line_number":39,"context_line":"      shell: |"},{"line_number":40,"context_line":"        set -xe;"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"3fa0c359_e34ae1aa","line":37,"range":{"start_line":37,"start_character":16,"end_line":37,"end_character":60},"updated":"2018-02-14 19:25:44.000000000","message":"better would be:\n\nchdir: \"{{ zuul.projects[\u0027git.openstack.org/openstack/openstack-helm\u0027].src_dir }}\"\n\nalso in other lines","commit_id":"f4aeec7ed35e6d1de8b38eeca66da57c3f16aa93"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"0a868fc0798022a7279d1c12dd2ad8652373aed5","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            --name\u003dmariadb --set pod.replicas.server\u003d1 \\"},{"line_number":35,"context_line":"            --set volume.enabled\u003dFalse \u0026"},{"line_number":36,"context_line":"      args:"},{"line_number":37,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""},{"line_number":38,"context_line":"    - name: Build Local Image"},{"line_number":39,"context_line":"      shell: |"},{"line_number":40,"context_line":"        set -xe;"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"3fa0c359_83619d14","line":37,"range":{"start_line":37,"start_character":16,"end_line":37,"end_character":60},"in_reply_to":"3fa0c359_e34ae1aa","updated":"2018-02-14 19:28:15.000000000","message":"thanks! that looks cleaner","commit_id":"f4aeec7ed35e6d1de8b38eeca66da57c3f16aa93"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"e4b873ffdf65553759b29db909380fb8642e6211","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    - name: Setup OS Client"},{"line_number":18,"context_line":"      #TODO(gagehugo) Once the \"create demo user\" is moved into code,"},{"line_number":19,"context_line":"      # we can remove this task since we won\u0027t need openstackclient"},{"line_number":20,"context_line":"      shell: |"},{"line_number":21,"context_line":"        set -xe;"},{"line_number":22,"context_line":"        ./tools/deployment/developer/common/020-setup-client.sh"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"3fa0c359_b57fb264","line":19,"range":{"start_line":19,"start_character":44,"end_line":19,"end_character":45},"updated":"2018-02-20 18:38:22.000000000","message":"do not use single quotes anywhere in comments - ansible does not like it.\n\n-1 for that one. That has broken us several times.","commit_id":"784f58890f2676ced29949ddc94ecd87b84e1d12"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"f5caadd55626bb4aa3ddcd5e43e27e8c0b7af735","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    - name: Setup OS Client"},{"line_number":18,"context_line":"      #TODO(gagehugo) Once the \"create demo user\" is moved into code,"},{"line_number":19,"context_line":"      # we can remove this task since we won\u0027t need openstackclient"},{"line_number":20,"context_line":"      shell: |"},{"line_number":21,"context_line":"        set -xe;"},{"line_number":22,"context_line":"        ./tools/deployment/developer/common/020-setup-client.sh"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"3fa0c359_963e39b6","line":19,"range":{"start_line":19,"start_character":44,"end_line":19,"end_character":45},"in_reply_to":"3fa0c359_b57fb264","updated":"2018-02-20 22:37:04.000000000","message":"Done","commit_id":"784f58890f2676ced29949ddc94ecd87b84e1d12"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"e4b873ffdf65553759b29db909380fb8642e6211","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      shell: |"},{"line_number":43,"context_line":"        set -xe;"},{"line_number":44,"context_line":"        # If running locally, this should get you REF_PATH from gerrit"},{"line_number":45,"context_line":"        # REF_PATH\u003d$(git ls-remote | grep $(git rev-parse HEAD) | awk \u0027{print $2}\u0027)"},{"line_number":46,"context_line":"        sudo docker build https://git.openstack.org/openstack/loci.git \\"},{"line_number":47,"context_line":"            --build-arg FROM\u003dosixia/ubuntu-light-baseimage:latest \\"},{"line_number":48,"context_line":"            --build-arg PROJECT\u003dkeystone --tag gerrit-keystone \\"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"3fa0c359_358ba268","line":45,"range":{"start_line":45,"start_character":70,"end_line":45,"end_character":82},"updated":"2018-02-20 18:38:22.000000000","message":"better remove those \u0027\u0027 as well","commit_id":"784f58890f2676ced29949ddc94ecd87b84e1d12"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"f5caadd55626bb4aa3ddcd5e43e27e8c0b7af735","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      shell: |"},{"line_number":43,"context_line":"        set -xe;"},{"line_number":44,"context_line":"        # If running locally, this should get you REF_PATH from gerrit"},{"line_number":45,"context_line":"        # REF_PATH\u003d$(git ls-remote | grep $(git rev-parse HEAD) | awk \u0027{print $2}\u0027)"},{"line_number":46,"context_line":"        sudo docker build https://git.openstack.org/openstack/loci.git \\"},{"line_number":47,"context_line":"            --build-arg FROM\u003dosixia/ubuntu-light-baseimage:latest \\"},{"line_number":48,"context_line":"            --build-arg PROJECT\u003dkeystone --tag gerrit-keystone \\"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"3fa0c359_3647254f","line":45,"range":{"start_line":45,"start_character":70,"end_line":45,"end_character":82},"in_reply_to":"3fa0c359_358ba268","updated":"2018-02-20 22:37:04.000000000","message":"Done, I\u0027ll move this info into a doc for running this locally.","commit_id":"784f58890f2676ced29949ddc94ecd87b84e1d12"}],"playbooks/keystone-osh-functional-local/run.yaml":[{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a4365b9416df814ed4ee7ff087124279a0e00f7b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    - name: Deploy Ingress"},{"line_number":20,"context_line":"      shell: |"},{"line_number":21,"context_line":"        set -xe"},{"line_number":22,"context_line":"        make all"},{"line_number":23,"context_line":"        make pull-images ingress"},{"line_number":24,"context_line":"        tee /tmp/ingress-kube-system.yaml \u003c\u003c EOF"},{"line_number":25,"context_line":"        deployment:"}],"source_content_type":"text/x-yaml","patch_set":43,"id":"1f9dbf25_1e82c9c9","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":16},"updated":"2018-02-27 11:41:34.000000000","message":"perhaps we can move this out to a different task that always get executed to ensure the tooling always gets build/loaded before we run the deploys.","commit_id":"e0f00ddbc82f79cc05f75011a4499546f008402c"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"5395da3ef631836c68f3f889ea8fcb7d0a452baa","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    - name: Deploy Ingress"},{"line_number":20,"context_line":"      shell: |"},{"line_number":21,"context_line":"        set -xe"},{"line_number":22,"context_line":"        make all"},{"line_number":23,"context_line":"        make pull-images ingress"},{"line_number":24,"context_line":"        tee /tmp/ingress-kube-system.yaml \u003c\u003c EOF"},{"line_number":25,"context_line":"        deployment:"}],"source_content_type":"text/x-yaml","patch_set":43,"id":"1f9dbf25_be03950f","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":16},"in_reply_to":"1f9dbf25_1e82c9c9","updated":"2018-02-27 11:50:31.000000000","message":"Done","commit_id":"e0f00ddbc82f79cc05f75011a4499546f008402c"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a4365b9416df814ed4ee7ff087124279a0e00f7b","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    - name: Deploy mariadb"},{"line_number":40,"context_line":"      shell: |"},{"line_number":41,"context_line":"        make pull-images mariadb"},{"line_number":42,"context_line":"        helm install ./mariadb --namespace\u003dopenstack \\"},{"line_number":43,"context_line":"          --set pod.replicas.server\u003d1 \\"},{"line_number":44,"context_line":"          --set volume.enabled\u003dFalse"}],"source_content_type":"text/x-yaml","patch_set":43,"id":"1f9dbf25_9e7579fd","line":41,"range":{"start_line":41,"start_character":7,"end_line":41,"end_character":9},"updated":"2018-02-27 11:41:34.000000000","message":"for consistency, we should have ``set -xe`` here as well.","commit_id":"e0f00ddbc82f79cc05f75011a4499546f008402c"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"5395da3ef631836c68f3f889ea8fcb7d0a452baa","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    - name: Deploy mariadb"},{"line_number":40,"context_line":"      shell: |"},{"line_number":41,"context_line":"        make pull-images mariadb"},{"line_number":42,"context_line":"        helm install ./mariadb --namespace\u003dopenstack \\"},{"line_number":43,"context_line":"          --set pod.replicas.server\u003d1 \\"},{"line_number":44,"context_line":"          --set volume.enabled\u003dFalse"}],"source_content_type":"text/x-yaml","patch_set":43,"id":"1f9dbf25_61fed206","line":41,"range":{"start_line":41,"start_character":7,"end_line":41,"end_character":9},"in_reply_to":"1f9dbf25_9e7579fd","updated":"2018-02-27 11:50:31.000000000","message":"Done","commit_id":"e0f00ddbc82f79cc05f75011a4499546f008402c"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"1440a9bd1a4937c811a485b4204d6cf8d2bbc921","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        make pull-images ingress"},{"line_number":38,"context_line":"        helm upgrade --install ingress-kube-system ./ingress \\"},{"line_number":39,"context_line":"          --namespace\u003dkube-system \\"},{"line_number":40,"context_line":"          --values\u003d/tmp/ingress-kube-system.yaml \\"},{"line_number":41,"context_line":"        helm upgrade --install ingress-openstack ./ingress \\"},{"line_number":42,"context_line":"          --namespace\u003dopenstack"},{"line_number":43,"context_line":"      args:"}],"source_content_type":"text/x-yaml","patch_set":46,"id":"1f9dbf25_b6040cc8","line":40,"range":{"start_line":40,"start_character":48,"end_line":40,"end_character":50},"updated":"2018-02-28 09:21:00.000000000","message":"extra \\ that links two commands together.","commit_id":"f32f3af6c6d8684bb2a67653e4b545c9c5a380ed"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"608a46587692a851b5e433bf9a934d9774ef17ed","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        chdir: \"{{ zuul.projects[\u0027git.openstack.org/openstack/openstack-helm\u0027].src_dir }}\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    - name: Generate Ingress Kube System Config"},{"line_number":27,"context_line":"      cmd: |"},{"line_number":28,"context_line":"        cat /tmp/ingress-kube-system.yaml \u003c\u003c EOF"},{"line_number":29,"context_line":"          deployment:"},{"line_number":30,"context_line":"            mode: cluster"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"1f9dbf25_a17848f8","line":27,"range":{"start_line":27,"start_character":6,"end_line":27,"end_character":9},"updated":"2018-02-28 10:27:30.000000000","message":"not sure cmd would work. changing this to shell works, but see comments below.","commit_id":"90f24436e76aaa090cb8a2832244565f5fc5d74b"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"608a46587692a851b5e433bf9a934d9774ef17ed","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    - name: Generate Ingress Kube System Config"},{"line_number":27,"context_line":"      cmd: |"},{"line_number":28,"context_line":"        cat /tmp/ingress-kube-system.yaml \u003c\u003c EOF"},{"line_number":29,"context_line":"          deployment:"},{"line_number":30,"context_line":"            mode: cluster"},{"line_number":31,"context_line":"            type: DaemonSet"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"1f9dbf25_01fa5c41","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":41},"updated":"2018-02-28 10:27:30.000000000","message":"catting a nonexistent file would probably error.","commit_id":"90f24436e76aaa090cb8a2832244565f5fc5d74b"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"608a46587692a851b5e433bf9a934d9774ef17ed","unresolved":false,"context_lines":[{"line_number":29,"context_line":"          deployment:"},{"line_number":30,"context_line":"            mode: cluster"},{"line_number":31,"context_line":"            type: DaemonSet"},{"line_number":32,"context_line":"            network:"},{"line_number":33,"context_line":"            host_namespace: true"},{"line_number":34,"context_line":"        EOF"},{"line_number":35,"context_line":"      args:"},{"line_number":36,"context_line":"        chdir: \"{{ zuul.projects[\u0027git.openstack.org/openstack/openstack-helm\u0027].src_dir }}\""}],"source_content_type":"text/x-yaml","patch_set":49,"id":"1f9dbf25_81ee6c86","line":33,"range":{"start_line":32,"start_character":0,"end_line":33,"end_character":32},"updated":"2018-02-28 10:27:30.000000000","message":"the indentation should match: https://github.com/openstack/openstack-helm/blob/3d842e184b30784e7e47e5de0e5faa12e261a7ad/tools/deployment/developer/common/030-ingress.sh#L25-L29","commit_id":"90f24436e76aaa090cb8a2832244565f5fc5d74b"},{"author":{"_account_id":23928,"name":"Pete Birley","email":"petebirley@gmail.com","username":"portdirect"},"change_message_id":"6fa1c0b0477a55beec289b6efc4e582ee63675b0","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            --set images.tags.keystone_credential_rotate\u003dgerrit-keystone \\"},{"line_number":96,"context_line":"            --set images.tags.keystone_api\u003dgerrit-keystone \\"},{"line_number":97,"context_line":"            --set bootstrap.enabled\u003dfalse"},{"line_number":98,"context_line":"         ./tools/deployment/common/wait-for-pods.sh openstack"},{"line_number":99,"context_line":"      args:"},{"line_number":100,"context_line":"        chdir: \"{{ zuul.projects[\u0027git.openstack.org/openstack/openstack-helm\u0027].src_dir }}\""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":54,"id":"1f9dbf25_b9607834","line":98,"range":{"start_line":98,"start_character":9,"end_line":98,"end_character":61},"updated":"2018-02-28 14:36:25.000000000","message":"just to ensure everything is ok before deploying keystone I\u0027d also run this around line 70.","commit_id":"c373f00d5cfcfd5679f730bcf36bf73c85f6248d"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"8e4182e7fc6a4bec493a2371afa97b79ddbb3c36","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        sudo -H -E pip install python-openstackclient"},{"line_number":108,"context_line":"        sudo -H mkdir -p /etc/openstack"},{"line_number":109,"context_line":"        sudo -H chown -R $(id -un): /etc/openstack"},{"line_number":110,"context_line":"        tee /etc/openstack/clouds.yaml \u003c\u003c EOF"},{"line_number":111,"context_line":"        clouds:"},{"line_number":112,"context_line":"          openstack_helm:"},{"line_number":113,"context_line":"            region_name: RegionOne"},{"line_number":114,"context_line":"            identity_api_version: 3"},{"line_number":115,"context_line":"            auth:"},{"line_number":116,"context_line":"              username: \u0027admin\u0027"},{"line_number":117,"context_line":"              password: \u0027password\u0027"},{"line_number":118,"context_line":"              project_name: \u0027admin\u0027"},{"line_number":119,"context_line":"              project_domain_name: \u0027default\u0027"},{"line_number":120,"context_line":"              user_domain_name: \u0027default\u0027"},{"line_number":121,"context_line":"              auth_url: \u0027http://keystone.openstack.svc.cluster.local/v3\u0027"},{"line_number":122,"context_line":"        EOF"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"      args:"},{"line_number":125,"context_line":"        chdir: \"{{ zuul.project.src_dir }}\""}],"source_content_type":"text/x-yaml","patch_set":54,"id":"1f9dbf25_f9512010","line":122,"range":{"start_line":110,"start_character":0,"end_line":122,"end_character":11},"updated":"2018-02-28 14:23:01.000000000","message":"we might need to move this as a template, else the indentation and that EOF will cause you to have an invalid clouds.yaml.","commit_id":"c373f00d5cfcfd5679f730bcf36bf73c85f6248d"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"8e4182e7fc6a4bec493a2371afa97b79ddbb3c36","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    # TODO(gagehugo): Move this task into code"},{"line_number":128,"context_line":"    # TODO(gagehugo): Create another non-admin project for testing"},{"line_number":129,"context_line":"    - name: Create demo user"},{"line_number":130,"context_line":"      shell: |"},{"line_number":131,"context_line":"        openstack --os-cloud openstack_helm user create \\"},{"line_number":132,"context_line":"            --domain default --password password demo"}],"source_content_type":"text/x-yaml","patch_set":54,"id":"1f9dbf25_59405436","line":129,"range":{"start_line":129,"start_character":12,"end_line":129,"end_character":28},"updated":"2018-02-28 14:23:01.000000000","message":"curious if we can load this using the keystone chart\u0027s bootstrap snippet.","commit_id":"c373f00d5cfcfd5679f730bcf36bf73c85f6248d"},{"author":{"_account_id":23928,"name":"Pete Birley","email":"petebirley@gmail.com","username":"portdirect"},"change_message_id":"6fa1c0b0477a55beec289b6efc4e582ee63675b0","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    # TODO(gagehugo): Move this task into code"},{"line_number":128,"context_line":"    # TODO(gagehugo): Create another non-admin project for testing"},{"line_number":129,"context_line":"    - name: Create demo user"},{"line_number":130,"context_line":"      shell: |"},{"line_number":131,"context_line":"        openstack --os-cloud openstack_helm user create \\"},{"line_number":132,"context_line":"            --domain default --password password demo"}],"source_content_type":"text/x-yaml","patch_set":54,"id":"1f9dbf25_7952f069","line":129,"range":{"start_line":129,"start_character":12,"end_line":129,"end_character":28},"in_reply_to":"1f9dbf25_59405436","updated":"2018-02-28 14:36:25.000000000","message":"^^ this would be great.","commit_id":"c373f00d5cfcfd5679f730bcf36bf73c85f6248d"}],"playbooks/keystone-osh-functional/run.yaml":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"be38a8effcb6254d6ac27a5b5ed93e60f81889e4","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            --set images.tags.keystone_credential_rotate\u003dgerrit-keystone \\"},{"line_number":98,"context_line":"            --set images.tags.keystone_api\u003dgerrit-keystone \\"},{"line_number":99,"context_line":"            --set bootstrap.script\u003d|"},{"line_number":100,"context_line":"                openstack --os-cloud openstack_helm user create \\"},{"line_number":101,"context_line":"                    --domain default --password password demo; \\"},{"line_number":102,"context_line":"                openstack --os-cloud openstack_helm role add \\"},{"line_number":103,"context_line":"                    --project admin --user demo admin"}],"source_content_type":"text/x-yaml","patch_set":59,"id":"bf659307_6be7d7ad","line":100,"updated":"2018-03-31 02:22:33.000000000","message":"seems that the keystone_bootstrap image doesn\u0027t contain openstackclient.","commit_id":"9831730db96180644ef7cdc5643921818e610f95"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"400690c2f15a0c7f088fe09033b37ed396da516e","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            --set images.tags.keystone_credential_rotate\u003dgerrit-keystone \\"},{"line_number":98,"context_line":"            --set images.tags.keystone_api\u003dgerrit-keystone \\"},{"line_number":99,"context_line":"            --set bootstrap.script\u003d|"},{"line_number":100,"context_line":"                openstack --os-cloud openstack_helm user create \\"},{"line_number":101,"context_line":"                    --domain default --password password demo; \\"},{"line_number":102,"context_line":"                openstack --os-cloud openstack_helm role add \\"},{"line_number":103,"context_line":"                    --project admin --user demo admin"}],"source_content_type":"text/x-yaml","patch_set":59,"id":"bf659307_fd164a49","line":100,"in_reply_to":"bf659307_6be7d7ad","updated":"2018-03-31 03:09:54.000000000","message":"emm. seems the image \"docker.io/openstackhelm/heat:newton\" which bootstrap uses contains openstackclient already. Not sure what happened in CI.","commit_id":"9831730db96180644ef7cdc5643921818e610f95"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"653668ea7f17edae798225f89e9fabda552a13e3","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            --set images.tags.keystone_credential_rotate\u003dgerrit-keystone \\"},{"line_number":98,"context_line":"            --set images.tags.keystone_api\u003dgerrit-keystone \\"},{"line_number":99,"context_line":"            --set bootstrap.script\u003d|"},{"line_number":100,"context_line":"                openstack --os-cloud openstack_helm user create \\"},{"line_number":101,"context_line":"                    --domain default --password password demo; \\"},{"line_number":102,"context_line":"                openstack --os-cloud openstack_helm role add \\"},{"line_number":103,"context_line":"                    --project admin --user demo admin"}],"source_content_type":"text/x-yaml","patch_set":59,"id":"bf659307_e7f74c8c","line":100,"in_reply_to":"bf659307_fd164a49","updated":"2018-04-04 18:52:45.000000000","message":"Yeah, think it was the weird nested script acting up.","commit_id":"9831730db96180644ef7cdc5643921818e610f95"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"df5f9c42bfe7222965b823ec13de01cc3f557dee","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- hosts: all"},{"line_number":2,"context_line":"  tasks:"},{"line_number":3,"context_line":"    - name: Install Required Packages/Docker and Setup Host"},{"line_number":4,"context_line":"      shell: |"},{"line_number":5,"context_line":"        set -xe;"},{"line_number":6,"context_line":"        sudo apt-get update"}],"source_content_type":"text/x-yaml","patch_set":68,"id":"5f7c97a3_c1db71e7","line":3,"updated":"2018-06-22 19:15:41.000000000","message":"You can add:\n\n    pre-run:\n      - tools/gate/playbooks/osh-infra-upgrade-host.yaml\n      - tools/gate/playbooks/osh-infra-deploy-docker.yaml\n\nto the .zuul.yaml job for this, so long as you also include:\n\n    required-projects:\n      - openstack/openstack-helm-infra\n\nas well.\n\nExample: https://github.com/openstack/openstack-helm/blob/e68ec9814c678fe3bcdc9e3c5f5247d441effaae/.zuul.yaml#L214","commit_id":"e870ab6a098bd3dbc247b61297cfe06ca63a74db"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fc160c598c8ec6d57c790fc171aca60a1637082c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"        #  \"deb [arch\u003damd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\""},{"line_number":12,"context_line":"        # sudo apt-get update"},{"line_number":13,"context_line":"        # sudo apt-get install docker.ce\u003d17.12.0~ce-0~ubuntu -y"},{"line_number":14,"context_line":"        make dev-deploy setup-host"},{"line_number":15,"context_line":"        make dev-deploy k8s"},{"line_number":16,"context_line":"      args:"},{"line_number":17,"context_line":"        chdir: \"{{ zuul.projects[\u0027git.openstack.org/openstack/openstack-helm-infra\u0027].src_dir }}\""},{"line_number":18,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":68,"id":"5f7c97a3_c1a2913f","line":15,"range":{"start_line":14,"start_character":0,"end_line":15,"end_character":27},"updated":"2018-06-22 19:18:37.000000000","message":"This will still be needed in a task.","commit_id":"e870ab6a098bd3dbc247b61297cfe06ca63a74db"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"bfd94e57ccce65bc361b4f1ad6479934fffd14a0","unresolved":false,"context_lines":[{"line_number":13,"context_line":"        # sudo apt-get install docker.ce\u003d17.12.0~ce-0~ubuntu -y"},{"line_number":14,"context_line":"        make dev-deploy setup-host"},{"line_number":15,"context_line":"        make dev-deploy k8s"},{"line_number":16,"context_line":"      args:"},{"line_number":17,"context_line":"        chdir: \"{{ zuul.projects[\u0027git.openstack.org/openstack/openstack-helm-infra\u0027].src_dir }}\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    - name: Build Charts"}],"source_content_type":"text/x-yaml","patch_set":68,"id":"5f7c97a3_bc2c5c93","line":16,"updated":"2018-06-22 19:28:20.000000000","message":"Add\n\nenvironment:\n    zuul_site_mirror_fqdn: \"{{ zuul_site_mirror_fqdn }}\"\n\nas well","commit_id":"e870ab6a098bd3dbc247b61297cfe06ca63a74db"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"df5f9c42bfe7222965b823ec13de01cc3f557dee","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    - name: Run keystone functional tests"},{"line_number":107,"context_line":"      shell: |"},{"line_number":108,"context_line":"        set -xe;"},{"line_number":109,"context_line":"        export KSTEST_ADMIN_URL\u003d\u0027http://keystone.openstack:80\u0027"},{"line_number":110,"context_line":"        export KSTEST_PUBLIC_URL\u003d\u0027http://keystone.openstack:80\u0027"},{"line_number":111,"context_line":"        export KSTEST_ADMIN_USERNAME\u003d\u0027admin\u0027"},{"line_number":112,"context_line":"        export KSTEST_ADMIN_PASSWORD\u003d\u0027password\u0027"},{"line_number":113,"context_line":"        export KSTEST_ADMIN_DOMAIN_ID\u003d\u0027default\u0027"},{"line_number":114,"context_line":"        export KSTEST_USER_USERNAME\u003d\u0027demo\u0027"},{"line_number":115,"context_line":"        export KSTEST_USER_PASSWORD\u003d\u0027password\u0027"},{"line_number":116,"context_line":"        export KSTEST_USER_DOMAIN_ID\u003d\u0027default\u0027"},{"line_number":117,"context_line":"        export KSTEST_PROJECT_NAME\u003d\u0027admin\u0027"},{"line_number":118,"context_line":"        export KSTEST_PROJECT_DOMAIN_ID\u003d\u0027default\u0027"},{"line_number":119,"context_line":"        tox -e functional"},{"line_number":120,"context_line":"      args:"},{"line_number":121,"context_line":"        chdir: \"{{ zuul.project.src_dir }}\""}],"source_content_type":"text/x-yaml","patch_set":68,"id":"5f7c97a3_2199051d","line":118,"range":{"start_line":109,"start_character":0,"end_line":118,"end_character":49},"updated":"2018-06-22 19:15:41.000000000","message":"This stuff should be handled a little differently. Add stanza beneath shell:\n\n      environment:\n        KSTEST_ADMIN_URL: http://keystone.openstack:80\n        ...\n\nExample: https://docs.ansible.com/ansible/devel/user_guide/playbooks_environment.html","commit_id":"e870ab6a098bd3dbc247b61297cfe06ca63a74db"}],"playbooks/openstack-keystone-functional.yaml":[{"author":{"_account_id":23928,"name":"Pete Birley","email":"petebirley@gmail.com","username":"portdirect"},"change_message_id":"f7937d3b7de195e4b76bdc547b81e43ecfdc5b0a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"         ./tools/deployment/developer/wait-for-pods.sh openstack"},{"line_number":92,"context_line":"         helm status keystone"},{"line_number":93,"context_line":"         export OS_CLOUD\u003dopenstack_helm"},{"line_number":94,"context_line":"         openstack endpoint list"},{"line_number":95,"context_line":"      args:"},{"line_number":96,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""},{"line_number":97,"context_line":"    - name: Run keystone functional tests"}],"source_content_type":"text/x-yaml","patch_set":22,"id":"7f96bb07_36bbfee2","line":94,"updated":"2018-01-12 05:50:25.000000000","message":"we should also run `helm test keystone` which will run the rally scenarios here: https://github.com/openstack/openstack-helm/blob/master/keystone/templates/etc/_rally_tests.yaml.tpl","commit_id":"6c037ed3c7ca3b71d9ddeedb9e5712289f9f3816"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"c920cbec829d34e00e528e908a738e4f00d08f76","unresolved":false,"context_lines":[{"line_number":91,"context_line":"         ./tools/deployment/developer/wait-for-pods.sh openstack"},{"line_number":92,"context_line":"         helm status keystone"},{"line_number":93,"context_line":"         export OS_CLOUD\u003dopenstack_helm"},{"line_number":94,"context_line":"         openstack endpoint list"},{"line_number":95,"context_line":"      args:"},{"line_number":96,"context_line":"        chdir: \"{{ zuul.project.src_dir }}/../openstack-helm\""},{"line_number":97,"context_line":"    - name: Run keystone functional tests"}],"source_content_type":"text/x-yaml","patch_set":22,"id":"7f96bb07_4af4cbcf","line":94,"in_reply_to":"7f96bb07_36bbfee2","updated":"2018-01-12 17:21:02.000000000","message":"Done","commit_id":"6c037ed3c7ca3b71d9ddeedb9e5712289f9f3816"}]}
