)]}'
{".zuul.yaml":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"72562f8cebf41649a36eeb8f08266139a141402d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"      - ^trove/hacking/.*$"},{"line_number":83,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- job:"},{"line_number":86,"context_line":"    name: trove-devstack-base"},{"line_number":87,"context_line":"    parent: devstack"},{"line_number":88,"context_line":"    abstract: true"},{"line_number":89,"context_line":"    timeout: 21600"},{"line_number":90,"context_line":"    required-projects:"},{"line_number":91,"context_line":"      - openstack/tempest"},{"line_number":92,"context_line":"      - openstack/diskimage-builder"},{"line_number":93,"context_line":"      - openstack/python-troveclient"},{"line_number":94,"context_line":"      - openstack/tripleo-image-elements"},{"line_number":95,"context_line":"      - openstack/trove"},{"line_number":96,"context_line":"      - openstack/trove-dashboard"},{"line_number":97,"context_line":"    vars:"},{"line_number":98,"context_line":"      devstack_services:"},{"line_number":99,"context_line":"        tempest: true"},{"line_number":100,"context_line":"        tls-proxy: false"},{"line_number":101,"context_line":"      devstack_plugins:"},{"line_number":102,"context_line":"        trove: git://git.openstack.org/openstack/trove"},{"line_number":103,"context_line":"      # NOTE(zhaochao): we have to override the default settings from the"},{"line_number":104,"context_line":"      # the base devstack job about \"SERVICE_HOST\" and \"HOST_IP\", as trove"},{"line_number":105,"context_line":"      # guestagent should use public addresses to access the underlying"},{"line_number":106,"context_line":"      # components(MQ and Swift), and the previous devstack-gate jobs didn\u0027t"},{"line_number":107,"context_line":"      # set these variables. However we cannot unset variables in job"},{"line_number":108,"context_line":"      # definition, so we just set SERVICE_HOST and HOST_IP to empty strings,"},{"line_number":109,"context_line":"      # and VNCSERVER_PROXYCLIENT_ADDRESS to 127.0.0.1 instead."},{"line_number":110,"context_line":"      devstack_localrc:"},{"line_number":111,"context_line":"        SERVICE_HOST: \u0027\u0027"},{"line_number":112,"context_line":"        HOST_IP: \u0027\u0027"},{"line_number":113,"context_line":"        VNCSERVER_PROXYCLIENT_ADDRESS: 127.0.0.1"},{"line_number":114,"context_line":"    run: playbooks/trove-devstack-base.yaml"},{"line_number":115,"context_line":"    irrelevant-files:"},{"line_number":116,"context_line":"      - ^.*\\.rst$"},{"line_number":117,"context_line":"      - ^api-ref/.*$"},{"line_number":118,"context_line":"      - ^apidocs/.*$"},{"line_number":119,"context_line":"      - ^doc/.*$"},{"line_number":120,"context_line":"      - ^releasenotes/.*$"},{"line_number":121,"context_line":"      - ^tools/.*$"},{"line_number":122,"context_line":"      - ^trove/hacking/.*$"},{"line_number":123,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"- job:"},{"line_number":126,"context_line":"    name: trove-fakemodetests-base"},{"line_number":127,"context_line":"    parent: openstack-tox-py27"}],"source_content_type":"text/x-yaml","patch_set":26,"id":"3f79a3b5_aa2002fb","line":124,"range":{"start_line":85,"start_character":2,"end_line":124,"end_character":0},"updated":"2018-11-01 19:48:37.000000000","message":"The job \"trove-devstack-base\" exceeds tenant max-job-timeout 10800.","commit_id":"f62c8db301b47e6c328d7b493f035be7ebfef0b6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"db38d31385470adfb53a0a83f6e83e4f2bdad81f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"      - ^trove/hacking/.*$"},{"line_number":83,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- job:"},{"line_number":86,"context_line":"    name: trove-devstack-base"},{"line_number":87,"context_line":"    parent: devstack"},{"line_number":88,"context_line":"    abstract: true"},{"line_number":89,"context_line":"    timeout: 21600"},{"line_number":90,"context_line":"    required-projects:"},{"line_number":91,"context_line":"      - openstack/tempest"},{"line_number":92,"context_line":"      - openstack/diskimage-builder"},{"line_number":93,"context_line":"      - openstack/python-troveclient"},{"line_number":94,"context_line":"      - openstack/tripleo-image-elements"},{"line_number":95,"context_line":"      - openstack/trove"},{"line_number":96,"context_line":"      - openstack/trove-dashboard"},{"line_number":97,"context_line":"    vars:"},{"line_number":98,"context_line":"      devstack_services:"},{"line_number":99,"context_line":"        tempest: true"},{"line_number":100,"context_line":"        tls-proxy: false"},{"line_number":101,"context_line":"      devstack_plugins:"},{"line_number":102,"context_line":"        trove: git://git.openstack.org/openstack/trove"},{"line_number":103,"context_line":"      # NOTE(zhaochao): we have to override the default settings from the"},{"line_number":104,"context_line":"      # the base devstack job about \"SERVICE_HOST\" and \"HOST_IP\", as trove"},{"line_number":105,"context_line":"      # guestagent should use public addresses to access the underlying"},{"line_number":106,"context_line":"      # components(MQ and Swift), and the previous devstack-gate jobs didn\u0027t"},{"line_number":107,"context_line":"      # set these variables. However we cannot unset variables in job"},{"line_number":108,"context_line":"      # definition, so we just set SERVICE_HOST and HOST_IP to empty strings,"},{"line_number":109,"context_line":"      # and VNCSERVER_PROXYCLIENT_ADDRESS to 127.0.0.1 instead."},{"line_number":110,"context_line":"      devstack_localrc:"},{"line_number":111,"context_line":"        SERVICE_HOST: \u0027\u0027"},{"line_number":112,"context_line":"        HOST_IP: \u0027\u0027"},{"line_number":113,"context_line":"        VNCSERVER_PROXYCLIENT_ADDRESS: 127.0.0.1"},{"line_number":114,"context_line":"    run: playbooks/trove-devstack-base.yaml"},{"line_number":115,"context_line":"    irrelevant-files:"},{"line_number":116,"context_line":"      - ^.*\\.rst$"},{"line_number":117,"context_line":"      - ^api-ref/.*$"},{"line_number":118,"context_line":"      - ^apidocs/.*$"},{"line_number":119,"context_line":"      - ^doc/.*$"},{"line_number":120,"context_line":"      - ^releasenotes/.*$"},{"line_number":121,"context_line":"      - ^tools/.*$"},{"line_number":122,"context_line":"      - ^trove/hacking/.*$"},{"line_number":123,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"- job:"},{"line_number":126,"context_line":"    name: trove-fakemodetests-base"},{"line_number":127,"context_line":"    parent: openstack-tox-py27"}],"source_content_type":"text/x-yaml","patch_set":26,"id":"3f79a3b5_fc8a3663","line":124,"range":{"start_line":85,"start_character":2,"end_line":124,"end_character":0},"updated":"2018-11-02 11:37:09.000000000","message":"The job \"trove-devstack-base\" exceeds tenant max-job-timeout 10800.","commit_id":"f62c8db301b47e6c328d7b493f035be7ebfef0b6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"dfa38770fd0f690a1960242e0d6ced9c52d27801","unresolved":false,"context_lines":[{"line_number":82,"context_line":"      - ^trove/hacking/.*$"},{"line_number":83,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- job:"},{"line_number":86,"context_line":"    name: trove-devstack-base"},{"line_number":87,"context_line":"    parent: devstack"},{"line_number":88,"context_line":"    abstract: true"},{"line_number":89,"context_line":"    timeout: 21600"},{"line_number":90,"context_line":"    required-projects:"},{"line_number":91,"context_line":"      - openstack/tempest"},{"line_number":92,"context_line":"      - openstack/diskimage-builder"},{"line_number":93,"context_line":"      - openstack/python-troveclient"},{"line_number":94,"context_line":"      - openstack/tripleo-image-elements"},{"line_number":95,"context_line":"      - openstack/trove"},{"line_number":96,"context_line":"      - openstack/trove-dashboard"},{"line_number":97,"context_line":"    vars:"},{"line_number":98,"context_line":"      devstack_services:"},{"line_number":99,"context_line":"        tempest: true"},{"line_number":100,"context_line":"        tls-proxy: false"},{"line_number":101,"context_line":"      devstack_plugins:"},{"line_number":102,"context_line":"        trove: git://git.openstack.org/openstack/trove"},{"line_number":103,"context_line":"      # NOTE(zhaochao): we have to override the default settings from the"},{"line_number":104,"context_line":"      # the base devstack job about \"SERVICE_HOST\" and \"HOST_IP\", as trove"},{"line_number":105,"context_line":"      # guestagent should use public addresses to access the underlying"},{"line_number":106,"context_line":"      # components(MQ and Swift), and the previous devstack-gate jobs didn\u0027t"},{"line_number":107,"context_line":"      # set these variables. However we cannot unset variables in job"},{"line_number":108,"context_line":"      # definition, so we just set SERVICE_HOST and HOST_IP to empty strings,"},{"line_number":109,"context_line":"      # and VNCSERVER_PROXYCLIENT_ADDRESS to 127.0.0.1 instead."},{"line_number":110,"context_line":"      devstack_localrc:"},{"line_number":111,"context_line":"        SERVICE_HOST: \u0027\u0027"},{"line_number":112,"context_line":"        HOST_IP: \u0027\u0027"},{"line_number":113,"context_line":"        VNCSERVER_PROXYCLIENT_ADDRESS: 127.0.0.1"},{"line_number":114,"context_line":"    run: playbooks/trove-devstack-base.yaml"},{"line_number":115,"context_line":"    irrelevant-files:"},{"line_number":116,"context_line":"      - ^.*\\.rst$"},{"line_number":117,"context_line":"      - ^api-ref/.*$"},{"line_number":118,"context_line":"      - ^apidocs/.*$"},{"line_number":119,"context_line":"      - ^doc/.*$"},{"line_number":120,"context_line":"      - ^releasenotes/.*$"},{"line_number":121,"context_line":"      - ^tools/.*$"},{"line_number":122,"context_line":"      - ^trove/hacking/.*$"},{"line_number":123,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"- job:"},{"line_number":126,"context_line":"    name: trove-fakemodetests-base"},{"line_number":127,"context_line":"    parent: openstack-tox-py27"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"3f79a3b5_bae825a7","line":124,"range":{"start_line":85,"start_character":2,"end_line":124,"end_character":0},"updated":"2018-11-04 12:40:04.000000000","message":"The job \"trove-devstack-base\" exceeds tenant max-job-timeout 10800.","commit_id":"aa52cc630d6626872811801cb8fa0b10c85dd1ff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"32bfe8dc4272b7e3287963bb3f28400f66ce618b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"      - ^trove/hacking/.*$"},{"line_number":83,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- job:"},{"line_number":86,"context_line":"    name: trove-devstack-base"},{"line_number":87,"context_line":"    parent: devstack"},{"line_number":88,"context_line":"    abstract: true"},{"line_number":89,"context_line":"    timeout: 14400"},{"line_number":90,"context_line":"    required-projects:"},{"line_number":91,"context_line":"      - openstack/tempest"},{"line_number":92,"context_line":"      - openstack/diskimage-builder"},{"line_number":93,"context_line":"      - openstack/python-troveclient"},{"line_number":94,"context_line":"      - openstack/tripleo-image-elements"},{"line_number":95,"context_line":"      - openstack/trove"},{"line_number":96,"context_line":"      - openstack/trove-dashboard"},{"line_number":97,"context_line":"    vars:"},{"line_number":98,"context_line":"      devstack_services:"},{"line_number":99,"context_line":"        tempest: true"},{"line_number":100,"context_line":"        tls-proxy: false"},{"line_number":101,"context_line":"      devstack_plugins:"},{"line_number":102,"context_line":"        trove: git://git.openstack.org/openstack/trove"},{"line_number":103,"context_line":"      # NOTE(zhaochao): we have to override the default settings from the"},{"line_number":104,"context_line":"      # the base devstack job about \"SERVICE_HOST\" and \"HOST_IP\", as trove"},{"line_number":105,"context_line":"      # guestagent should use public addresses to access the underlying"},{"line_number":106,"context_line":"      # components(MQ and Swift), and the previous devstack-gate jobs didn\u0027t"},{"line_number":107,"context_line":"      # set these variables. However we cannot unset variables in job"},{"line_number":108,"context_line":"      # definition, so we just set SERVICE_HOST and HOST_IP to empty strings,"},{"line_number":109,"context_line":"      # and VNCSERVER_PROXYCLIENT_ADDRESS to 127.0.0.1 instead."},{"line_number":110,"context_line":"      devstack_localrc:"},{"line_number":111,"context_line":"        SERVICE_HOST: \u0027\u0027"},{"line_number":112,"context_line":"        HOST_IP: \u0027\u0027"},{"line_number":113,"context_line":"        VNCSERVER_PROXYCLIENT_ADDRESS: 127.0.0.1"},{"line_number":114,"context_line":"    run: playbooks/trove-devstack-base.yaml"},{"line_number":115,"context_line":"    irrelevant-files:"},{"line_number":116,"context_line":"      - ^.*\\.rst$"},{"line_number":117,"context_line":"      - ^api-ref/.*$"},{"line_number":118,"context_line":"      - ^apidocs/.*$"},{"line_number":119,"context_line":"      - ^doc/.*$"},{"line_number":120,"context_line":"      - ^releasenotes/.*$"},{"line_number":121,"context_line":"      - ^tools/.*$"},{"line_number":122,"context_line":"      - ^trove/hacking/.*$"},{"line_number":123,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"- job:"},{"line_number":126,"context_line":"    name: trove-fakemodetests-base"},{"line_number":127,"context_line":"    parent: openstack-tox-py27"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"3f79a3b5_bd84550f","line":124,"range":{"start_line":85,"start_character":2,"end_line":124,"end_character":0},"updated":"2018-11-07 18:51:21.000000000","message":"The job \"trove-devstack-base\" exceeds tenant max-job-timeout 10800.","commit_id":"f34da42826ae966466e8e1fc20ba15486fd79c6e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"46b7c13d29e10e1bfc151a6de07cfbf1fd1a6766","unresolved":false,"context_lines":[{"line_number":82,"context_line":"      - ^trove/hacking/.*$"},{"line_number":83,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- job:"},{"line_number":86,"context_line":"    name: trove-devstack-base"},{"line_number":87,"context_line":"    parent: devstack"},{"line_number":88,"context_line":"    abstract: true"},{"line_number":89,"context_line":"    timeout: 14400"},{"line_number":90,"context_line":"    required-projects:"},{"line_number":91,"context_line":"      - openstack/tempest"},{"line_number":92,"context_line":"      - openstack/diskimage-builder"},{"line_number":93,"context_line":"      - openstack/python-troveclient"},{"line_number":94,"context_line":"      - openstack/tripleo-image-elements"},{"line_number":95,"context_line":"      - openstack/trove"},{"line_number":96,"context_line":"      - openstack/trove-dashboard"},{"line_number":97,"context_line":"    vars:"},{"line_number":98,"context_line":"      devstack_services:"},{"line_number":99,"context_line":"        tempest: true"},{"line_number":100,"context_line":"        tls-proxy: false"},{"line_number":101,"context_line":"      devstack_plugins:"},{"line_number":102,"context_line":"        trove: git://git.openstack.org/openstack/trove"},{"line_number":103,"context_line":"      # NOTE(zhaochao): we have to override the default settings from the"},{"line_number":104,"context_line":"      # the base devstack job about \"SERVICE_HOST\" and \"HOST_IP\", as trove"},{"line_number":105,"context_line":"      # guestagent should use public addresses to access the underlying"},{"line_number":106,"context_line":"      # components(MQ and Swift), and the previous devstack-gate jobs didn\u0027t"},{"line_number":107,"context_line":"      # set these variables. However we cannot unset variables in job"},{"line_number":108,"context_line":"      # definition, so we just set SERVICE_HOST and HOST_IP to empty strings,"},{"line_number":109,"context_line":"      # and VNCSERVER_PROXYCLIENT_ADDRESS to 127.0.0.1 instead."},{"line_number":110,"context_line":"      devstack_localrc:"},{"line_number":111,"context_line":"        SERVICE_HOST: \u0027\u0027"},{"line_number":112,"context_line":"        HOST_IP: \u0027\u0027"},{"line_number":113,"context_line":"        VNCSERVER_PROXYCLIENT_ADDRESS: 127.0.0.1"},{"line_number":114,"context_line":"    run: playbooks/trove-devstack-base.yaml"},{"line_number":115,"context_line":"    irrelevant-files:"},{"line_number":116,"context_line":"      - ^.*\\.rst$"},{"line_number":117,"context_line":"      - ^api-ref/.*$"},{"line_number":118,"context_line":"      - ^apidocs/.*$"},{"line_number":119,"context_line":"      - ^doc/.*$"},{"line_number":120,"context_line":"      - ^releasenotes/.*$"},{"line_number":121,"context_line":"      - ^tools/.*$"},{"line_number":122,"context_line":"      - ^trove/hacking/.*$"},{"line_number":123,"context_line":"      - ^trove/tests/unittests/.*$"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"- job:"},{"line_number":126,"context_line":"    name: trove-fakemodetests-base"},{"line_number":127,"context_line":"    parent: openstack-tox-py27"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"3f79a3b5_d72485c6","line":124,"range":{"start_line":85,"start_character":2,"end_line":124,"end_character":0},"updated":"2018-11-08 05:41:14.000000000","message":"The job \"trove-devstack-base\" exceeds tenant max-job-timeout 10800.","commit_id":"f34da42826ae966466e8e1fc20ba15486fd79c6e"}],"/COMMIT_MSG":[{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"b81be28ce48a8d62355c6cb778260b2e11daa01a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3f79a3b5_463445fa","updated":"2018-10-02 09:06:40.000000000","message":"What is the reason of this change?\nWhy we need build image here.\nPlease make you change description more verbose.","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"}],"devstack/plugin.sh":[{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"b81be28ce48a8d62355c6cb778260b2e11daa01a","unresolved":false,"context_lines":[{"line_number":570,"context_line":"    ##### - we assume tripleo elements and all other elements have been downloaded"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    echo \"Exporting image-related environmental variables\""},{"line_number":573,"context_line":"    PRIMARY_IP\u003d`ip route get 8.8.8.8 | head -1 | cut -d\u0027 \u0027 -f8`"},{"line_number":574,"context_line":"    export CONTROLLER_IP\u003d${CONTROLLER_IP:-$PRIMARY_IP}"},{"line_number":575,"context_line":"    export SSH_DIR\u003d${SSH_DIR:-\u0027/home/stack/.ssh/\u0027}"},{"line_number":576,"context_line":"    export HOST_USERNAME\u003d${HOST_USERNAME:-\u0027stack\u0027}"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_7e16baa9","line":573,"range":{"start_line":573,"start_character":4,"end_line":573,"end_character":63},"updated":"2018-10-02 09:06:40.000000000","message":"Follow interpolation syntax used in this script which is $(...), not `...`","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28646,"name":"Dariusz Krol","email":"d.krol@samsung.com","username":"dkrol"},"change_message_id":"7c5d48f2c4c73bd55523f5311f7da598ab7876da","unresolved":false,"context_lines":[{"line_number":570,"context_line":"    ##### - we assume tripleo elements and all other elements have been downloaded"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    echo \"Exporting image-related environmental variables\""},{"line_number":573,"context_line":"    PRIMARY_IP\u003d`ip route get 8.8.8.8 | head -1 | cut -d\u0027 \u0027 -f8`"},{"line_number":574,"context_line":"    export CONTROLLER_IP\u003d${CONTROLLER_IP:-$PRIMARY_IP}"},{"line_number":575,"context_line":"    export SSH_DIR\u003d${SSH_DIR:-\u0027/home/stack/.ssh/\u0027}"},{"line_number":576,"context_line":"    export HOST_USERNAME\u003d${HOST_USERNAME:-\u0027stack\u0027}"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_d3c3f588","line":573,"range":{"start_line":573,"start_character":4,"end_line":573,"end_character":63},"in_reply_to":"3f79a3b5_7e16baa9","updated":"2018-10-04 13:58:30.000000000","message":"Done","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"b81be28ce48a8d62355c6cb778260b2e11daa01a","unresolved":false,"context_lines":[{"line_number":583,"context_line":"    export SSH_DIR\u003d${SSH_DIR:-\u0027/home/stack/.ssh\u0027}"},{"line_number":584,"context_line":"    export GUEST_LOGDIR\u003d${GUEST_LOGDIR:-\u0027/var/log/trove/\u0027}"},{"line_number":585,"context_line":"    export ESCAPED_GUEST_LOGDIR\u003d${ESCAPED_GUEST_LOGDIR:-\u0027\\/var\\/log\\/trove\\/\u0027}"},{"line_number":586,"context_line":"    export DIB_CLOUD_INIT_DATASOURCES\u003d\"ConfigDrive\""},{"line_number":587,"context_line":"    export DISTRO\u003d\u0027ubuntu\u0027"},{"line_number":588,"context_line":"    export VM\u003d${VM:-\u0027/opt/stack/images/ubuntu_mysql/ubuntu_mysql\u0027}"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    # you typically do not have to change these variables"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_5e5f3e74","line":587,"range":{"start_line":586,"start_character":0,"end_line":587,"end_character":26},"updated":"2018-10-02 09:06:40.000000000","message":"Mixed double and single quote. Please apply one way of initializing variables.","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28646,"name":"Dariusz Krol","email":"d.krol@samsung.com","username":"dkrol"},"change_message_id":"7c5d48f2c4c73bd55523f5311f7da598ab7876da","unresolved":false,"context_lines":[{"line_number":583,"context_line":"    export SSH_DIR\u003d${SSH_DIR:-\u0027/home/stack/.ssh\u0027}"},{"line_number":584,"context_line":"    export GUEST_LOGDIR\u003d${GUEST_LOGDIR:-\u0027/var/log/trove/\u0027}"},{"line_number":585,"context_line":"    export ESCAPED_GUEST_LOGDIR\u003d${ESCAPED_GUEST_LOGDIR:-\u0027\\/var\\/log\\/trove\\/\u0027}"},{"line_number":586,"context_line":"    export DIB_CLOUD_INIT_DATASOURCES\u003d\"ConfigDrive\""},{"line_number":587,"context_line":"    export DISTRO\u003d\u0027ubuntu\u0027"},{"line_number":588,"context_line":"    export VM\u003d${VM:-\u0027/opt/stack/images/ubuntu_mysql/ubuntu_mysql\u0027}"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    # you typically do not have to change these variables"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_f3be31fe","line":587,"range":{"start_line":586,"start_character":0,"end_line":587,"end_character":26},"in_reply_to":"3f79a3b5_5e5f3e74","updated":"2018-10-04 13:58:30.000000000","message":"Done","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"b81be28ce48a8d62355c6cb778260b2e11daa01a","unresolved":false,"context_lines":[{"line_number":615,"context_line":""},{"line_number":616,"context_line":"    export DIB_APT_CONF_DIR\u003d/etc/apt/apt.conf.d"},{"line_number":617,"context_line":"    export DIB_CLOUD_INIT_ETC_HOSTS\u003dtrue"},{"line_number":618,"context_line":"    export QEMU_IMG_OPTIONS\u003d\"--qemu-img-options compat\u003d1.1\""},{"line_number":619,"context_line":"    export RELEASE\u003d${RELEASE:-\u0027xenial\u0027}"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    export TROVE_GUESTAGENT_CONF\u003d${TROVE_GUESTAGENT_CONF:-\u0027/etc/trove/trove-guestagent.conf\u0027}"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_fe216afd","line":618,"range":{"start_line":618,"start_character":4,"end_line":618,"end_character":27},"updated":"2018-10-02 09:06:40.000000000","message":"export makes variable visible with any process you run from that shell.\nQEMU_IMG_OPTIONS looks used only in local scope.","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28646,"name":"Dariusz Krol","email":"d.krol@samsung.com","username":"dkrol"},"change_message_id":"7c5d48f2c4c73bd55523f5311f7da598ab7876da","unresolved":false,"context_lines":[{"line_number":615,"context_line":""},{"line_number":616,"context_line":"    export DIB_APT_CONF_DIR\u003d/etc/apt/apt.conf.d"},{"line_number":617,"context_line":"    export DIB_CLOUD_INIT_ETC_HOSTS\u003dtrue"},{"line_number":618,"context_line":"    export QEMU_IMG_OPTIONS\u003d\"--qemu-img-options compat\u003d1.1\""},{"line_number":619,"context_line":"    export RELEASE\u003d${RELEASE:-\u0027xenial\u0027}"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    export TROVE_GUESTAGENT_CONF\u003d${TROVE_GUESTAGENT_CONF:-\u0027/etc/trove/trove-guestagent.conf\u0027}"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_b3b4391e","line":618,"range":{"start_line":618,"start_character":4,"end_line":618,"end_character":27},"in_reply_to":"3f79a3b5_fe216afd","updated":"2018-10-04 13:58:30.000000000","message":"Done","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"a4aa2bb6c173d9af68997c95ee8eedc26cefba45","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    export TROVE_GUESTAGENT_CONF\u003d${TROVE_GUESTAGENT_CONF:-\u0027/etc/trove/trove-guestagent.conf\u0027}"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    echo \"Run disk image create to actually create a new image\""},{"line_number":624,"context_line":"    disk-image-create -a amd64 -o \"${VM}\" -x ${QEMU_IMG_OPTIONS} ${DISTRO} vm cloud-init-datasources ${DISTRO}-guest ${DISTRO}-${RELEASE}-guest ${DISTRO}-${SERVICE_TYPE} ${DISTRO}-${RELEASE}-${SERVICE_TYPE} | tee /tmp/image.log"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    QCOW_IMAGE\u003d\"$VM.qcow2\""},{"line_number":627,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_2c2a4b7d","line":624,"range":{"start_line":624,"start_character":207,"end_line":624,"end_character":227},"updated":"2018-10-02 09:14:37.000000000","message":"Do we need this output here?\nI am afraid it is useless in current environment.","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"b81be28ce48a8d62355c6cb778260b2e11daa01a","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    export TROVE_GUESTAGENT_CONF\u003d${TROVE_GUESTAGENT_CONF:-\u0027/etc/trove/trove-guestagent.conf\u0027}"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    echo \"Run disk image create to actually create a new image\""},{"line_number":624,"context_line":"    disk-image-create -a amd64 -o \"${VM}\" -x ${QEMU_IMG_OPTIONS} ${DISTRO} vm cloud-init-datasources ${DISTRO}-guest ${DISTRO}-${RELEASE}-guest ${DISTRO}-${SERVICE_TYPE} ${DISTRO}-${RELEASE}-${SERVICE_TYPE} | tee /tmp/image.log"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    QCOW_IMAGE\u003d\"$VM.qcow2\""},{"line_number":627,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_e63eb124","line":624,"updated":"2018-10-02 09:06:40.000000000","message":"There is some too long lines already in this script, but lets avoid another \u003e200-chars lines :)\n\nYou can split this to multi line statement like this:\n\ndisk-image-create -a amd64 -o \"${VM}\" -x \\\n    ${QEMU_IMG_OPTIONS} ${DISTRO} vm cloud-init-datasources \\\n    ${DISTRO}-guest ${DISTRO}-${RELEASE}-guest \\\n    ${DISTRO}-${SERVICE_TYPE} \\\n    ${DISTRO}-${RELEASE}-${SERVICE_TYPE} \\\n    | tee /tmp/image.log","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28646,"name":"Dariusz Krol","email":"d.krol@samsung.com","username":"dkrol"},"change_message_id":"7c5d48f2c4c73bd55523f5311f7da598ab7876da","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    export TROVE_GUESTAGENT_CONF\u003d${TROVE_GUESTAGENT_CONF:-\u0027/etc/trove/trove-guestagent.conf\u0027}"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    echo \"Run disk image create to actually create a new image\""},{"line_number":624,"context_line":"    disk-image-create -a amd64 -o \"${VM}\" -x ${QEMU_IMG_OPTIONS} ${DISTRO} vm cloud-init-datasources ${DISTRO}-guest ${DISTRO}-${RELEASE}-guest ${DISTRO}-${SERVICE_TYPE} ${DISTRO}-${RELEASE}-${SERVICE_TYPE} | tee /tmp/image.log"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    QCOW_IMAGE\u003d\"$VM.qcow2\""},{"line_number":627,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_133bad9a","line":624,"range":{"start_line":624,"start_character":207,"end_line":624,"end_character":227},"in_reply_to":"3f79a3b5_2c2a4b7d","updated":"2018-10-04 13:58:30.000000000","message":"Done","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28646,"name":"Dariusz Krol","email":"d.krol@samsung.com","username":"dkrol"},"change_message_id":"7c5d48f2c4c73bd55523f5311f7da598ab7876da","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    export TROVE_GUESTAGENT_CONF\u003d${TROVE_GUESTAGENT_CONF:-\u0027/etc/trove/trove-guestagent.conf\u0027}"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    echo \"Run disk image create to actually create a new image\""},{"line_number":624,"context_line":"    disk-image-create -a amd64 -o \"${VM}\" -x ${QEMU_IMG_OPTIONS} ${DISTRO} vm cloud-init-datasources ${DISTRO}-guest ${DISTRO}-${RELEASE}-guest ${DISTRO}-${SERVICE_TYPE} ${DISTRO}-${RELEASE}-${SERVICE_TYPE} | tee /tmp/image.log"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    QCOW_IMAGE\u003d\"$VM.qcow2\""},{"line_number":627,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_5335a5a6","line":624,"in_reply_to":"3f79a3b5_e63eb124","updated":"2018-10-04 13:58:30.000000000","message":"Done","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"b81be28ce48a8d62355c6cb778260b2e11daa01a","unresolved":false,"context_lines":[{"line_number":644,"context_line":"    $TROVE_MANAGE datastore_update $DATASTORE \"\""},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    echo \"Connect datastore entry to glance image\""},{"line_number":647,"context_line":"    $TROVE_MANAGE datastore_version_update $DATASTORE $DATASTORE_VERSION $DATASTORE $glance_image_id \"\" 1"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    echo \"Set default datastore version\""},{"line_number":650,"context_line":"    $TROVE_MANAGE datastore_update $DATASTORE $DATASTORE_VERSION"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_4692054c","line":647,"range":{"start_line":647,"start_character":104,"end_line":647,"end_character":105},"updated":"2018-10-02 09:06:40.000000000","message":"Consider pass this parameter as variable to to know what a argument it is.","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28646,"name":"Dariusz Krol","email":"d.krol@samsung.com","username":"dkrol"},"change_message_id":"7c5d48f2c4c73bd55523f5311f7da598ab7876da","unresolved":false,"context_lines":[{"line_number":644,"context_line":"    $TROVE_MANAGE datastore_update $DATASTORE \"\""},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    echo \"Connect datastore entry to glance image\""},{"line_number":647,"context_line":"    $TROVE_MANAGE datastore_version_update $DATASTORE $DATASTORE_VERSION $DATASTORE $glance_image_id \"\" 1"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    echo \"Set default datastore version\""},{"line_number":650,"context_line":"    $TROVE_MANAGE datastore_update $DATASTORE $DATASTORE_VERSION"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_d348d52e","line":647,"range":{"start_line":647,"start_character":104,"end_line":647,"end_character":105},"in_reply_to":"3f79a3b5_4692054c","updated":"2018-10-04 13:58:30.000000000","message":"Done","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"b81be28ce48a8d62355c6cb778260b2e11daa01a","unresolved":false,"context_lines":[{"line_number":650,"context_line":"    $TROVE_MANAGE datastore_update $DATASTORE $DATASTORE_VERSION"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"    # just for tests"},{"line_number":653,"context_line":"    $TROVE_MANAGE datastore_version_update $DATASTORE inactive_version manager1 $glance_image_id \"\" 0"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"    echo \"Add validation rules if available\""},{"line_number":656,"context_line":"    if [ -f \"$PATH_TROVE\"/trove/templates/$DATASTORE/validation-rules.json ]; then"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_269d8956","line":653,"range":{"start_line":653,"start_character":100,"end_line":653,"end_character":101},"updated":"2018-10-02 09:06:40.000000000","message":"Ditto. Also avoid literal here.","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28646,"name":"Dariusz Krol","email":"d.krol@samsung.com","username":"dkrol"},"change_message_id":"7c5d48f2c4c73bd55523f5311f7da598ab7876da","unresolved":false,"context_lines":[{"line_number":650,"context_line":"    $TROVE_MANAGE datastore_update $DATASTORE $DATASTORE_VERSION"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"    # just for tests"},{"line_number":653,"context_line":"    $TROVE_MANAGE datastore_version_update $DATASTORE inactive_version manager1 $glance_image_id \"\" 0"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"    echo \"Add validation rules if available\""},{"line_number":656,"context_line":"    if [ -f \"$PATH_TROVE\"/trove/templates/$DATASTORE/validation-rules.json ]; then"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3f79a3b5_f343910f","line":653,"range":{"start_line":653,"start_character":100,"end_line":653,"end_character":101},"in_reply_to":"3f79a3b5_269d8956","updated":"2018-10-04 13:58:30.000000000","message":"Done","commit_id":"58e1475d6758b13ac4448925b4118a09c1d66dd9"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":292,"context_line":"# install_trove() - Collect source and prepare"},{"line_number":293,"context_line":"function install_trove {"},{"line_number":294,"context_line":"    echo \"Changing stack user sudoers\""},{"line_number":295,"context_line":"    echo \"stack ALL\u003d(ALL) NOPASSWD:ALL\" | sudo tee /etc/sudoers.d/50_stack_sh"},{"line_number":296,"context_line":"    sudo cat /etc/sudoers.d/50_stack_sh"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    setup_develop $TROVE_DIR"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_78c3b25a","line":295,"range":{"start_line":295,"start_character":51,"end_line":295,"end_character":77},"updated":"2018-11-30 20:06:47.000000000","message":"Not sure it is correct location for sudoers updates.\nIt is more related to enviroment configuration, not for trove installation itself.\n\nMoreover, it would be better to create new rule, not ovverriding existing one.\nMaybe something like this?\nsudo tee /etc/sudoers.d/60_stack_sh_allow_all","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":292,"context_line":"# install_trove() - Collect source and prepare"},{"line_number":293,"context_line":"function install_trove {"},{"line_number":294,"context_line":"    echo \"Changing stack user sudoers\""},{"line_number":295,"context_line":"    echo \"stack ALL\u003d(ALL) NOPASSWD:ALL\" | sudo tee /etc/sudoers.d/50_stack_sh"},{"line_number":296,"context_line":"    sudo cat /etc/sudoers.d/50_stack_sh"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    setup_develop $TROVE_DIR"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_72b2aa33","line":295,"range":{"start_line":295,"start_character":51,"end_line":295,"end_character":77},"in_reply_to":"3f79a3b5_78c3b25a","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":293,"context_line":"function install_trove {"},{"line_number":294,"context_line":"    echo \"Changing stack user sudoers\""},{"line_number":295,"context_line":"    echo \"stack ALL\u003d(ALL) NOPASSWD:ALL\" | sudo tee /etc/sudoers.d/50_stack_sh"},{"line_number":296,"context_line":"    sudo cat /etc/sudoers.d/50_stack_sh"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    setup_develop $TROVE_DIR"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_1895de3e","line":296,"range":{"start_line":296,"start_character":4,"end_line":296,"end_character":39},"updated":"2018-11-30 20:06:47.000000000","message":"Not needed.\nBbasically, content of this file will be printed out by tee.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":293,"context_line":"function install_trove {"},{"line_number":294,"context_line":"    echo \"Changing stack user sudoers\""},{"line_number":295,"context_line":"    echo \"stack ALL\u003d(ALL) NOPASSWD:ALL\" | sudo tee /etc/sudoers.d/50_stack_sh"},{"line_number":296,"context_line":"    sudo cat /etc/sudoers.d/50_stack_sh"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    setup_develop $TROVE_DIR"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_122fb657","line":296,"range":{"start_line":296,"start_character":4,"end_line":296,"end_character":39},"in_reply_to":"3f79a3b5_1895de3e","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        --os-username ${ADMIN_ALT_USERNAME} \\"},{"line_number":357,"context_line":"        --os-password ${ADMIN_PASSWORD} \\"},{"line_number":358,"context_line":"        --os-project-name ${ALT_TENANT_NAME}"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"    if [[ ${TROVE_DISABLE_IMAGE_SETUP} !\u003d \"TRUE\" ]]; then"},{"line_number":361,"context_line":"        echo \"Setup datastore image\""},{"line_number":362,"context_line":"        _setup_minimal_image"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_15b60728","line":359,"updated":"2018-11-30 20:06:47.000000000","message":"I suggest add comment here, as it is in other steps of this function.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        --os-username ${ADMIN_ALT_USERNAME} \\"},{"line_number":357,"context_line":"        --os-password ${ADMIN_PASSWORD} \\"},{"line_number":358,"context_line":"        --os-project-name ${ALT_TENANT_NAME}"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"    if [[ ${TROVE_DISABLE_IMAGE_SETUP} !\u003d \"TRUE\" ]]; then"},{"line_number":361,"context_line":"        echo \"Setup datastore image\""},{"line_number":362,"context_line":"        _setup_minimal_image"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_3232f2c0","line":359,"in_reply_to":"3f79a3b5_15b60728","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            \"${TROVE_DIR}/trove/templates/${TROVE_DATASTORE_TYPE}\"/validation-rules.json"},{"line_number":396,"context_line":"    fi"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    return 0"},{"line_number":399,"context_line":"}"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"# Create private IPv4 subnet"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_55d31f65","line":398,"range":{"start_line":398,"start_character":0,"end_line":398,"end_character":12},"updated":"2018-11-30 20:06:47.000000000","message":"Why we need override return value?\nIf function body will execute everything successfully (without exit code !\u003d0), function should return 0 too.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            \"${TROVE_DIR}/trove/templates/${TROVE_DATASTORE_TYPE}\"/validation-rules.json"},{"line_number":396,"context_line":"    fi"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    return 0"},{"line_number":399,"context_line":"}"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"# Create private IPv4 subnet"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_f23b1a97","line":398,"range":{"start_line":398,"start_character":0,"end_line":398,"end_character":12},"in_reply_to":"3f79a3b5_55d31f65","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        stop_process $serv"},{"line_number":561,"context_line":"    done"},{"line_number":562,"context_line":"}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"function _setup_minimal_image {"},{"line_number":565,"context_line":"    ##### Prerequisites:"},{"line_number":566,"context_line":"    ##### - SSH KEYS has to be created on controller"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_d5240f65","line":563,"updated":"2018-11-30 20:06:47.000000000","message":"Add short comment describing what this function does.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        stop_process $serv"},{"line_number":561,"context_line":"    done"},{"line_number":562,"context_line":"}"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"function _setup_minimal_image {"},{"line_number":565,"context_line":"    ##### Prerequisites:"},{"line_number":566,"context_line":"    ##### - SSH KEYS has to be created on controller"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_524c4e3f","line":563,"in_reply_to":"3f79a3b5_d5240f65","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":576,"context_line":"    export PATH_TROVE\u003d${PATH_TROVE:-\u0027/opt/stack/trove\u0027}"},{"line_number":577,"context_line":"    export TROVESTACK_SCRIPTS\u003d${TROVESTACK_SCRIPTS:-\u0027/opt/stack/trove/integration/scripts\u0027}"},{"line_number":578,"context_line":"    export SERVICE_TYPE\u003d${SERVICE_TYPE:-\u0027mysql\u0027}"},{"line_number":579,"context_line":"    export ESCAPED_PATH_TROVE\u003d${ESCAPED_PATH_TROVE:-\u0027\\/opt\\/stack\\/trove\u0027}"},{"line_number":580,"context_line":"    export SSH_DIR\u003d${SSH_DIR:-\u0027/opt/stack/.ssh\u0027}"},{"line_number":581,"context_line":"    export GUEST_LOGDIR\u003d${GUEST_LOGDIR:-\u0027/var/log/trove/\u0027}"},{"line_number":582,"context_line":"    export ESCAPED_GUEST_LOGDIR\u003d${ESCAPED_GUEST_LOGDIR:-\u0027\\/var\\/log\\/trove\\/\u0027}"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_15f4c755","line":579,"range":{"start_line":579,"start_character":11,"end_line":579,"end_character":29},"updated":"2018-11-30 20:06:47.000000000","message":"It would be cleaner if ESCAPED_PATH_TROVE would be initialized just after PATH_TROVE.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":576,"context_line":"    export PATH_TROVE\u003d${PATH_TROVE:-\u0027/opt/stack/trove\u0027}"},{"line_number":577,"context_line":"    export TROVESTACK_SCRIPTS\u003d${TROVESTACK_SCRIPTS:-\u0027/opt/stack/trove/integration/scripts\u0027}"},{"line_number":578,"context_line":"    export SERVICE_TYPE\u003d${SERVICE_TYPE:-\u0027mysql\u0027}"},{"line_number":579,"context_line":"    export ESCAPED_PATH_TROVE\u003d${ESCAPED_PATH_TROVE:-\u0027\\/opt\\/stack\\/trove\u0027}"},{"line_number":580,"context_line":"    export SSH_DIR\u003d${SSH_DIR:-\u0027/opt/stack/.ssh\u0027}"},{"line_number":581,"context_line":"    export GUEST_LOGDIR\u003d${GUEST_LOGDIR:-\u0027/var/log/trove/\u0027}"},{"line_number":582,"context_line":"    export ESCAPED_GUEST_LOGDIR\u003d${ESCAPED_GUEST_LOGDIR:-\u0027\\/var\\/log\\/trove\\/\u0027}"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_153fe723","line":579,"range":{"start_line":579,"start_character":52,"end_line":579,"end_character":73},"updated":"2018-11-30 20:06:47.000000000","message":"To keep trove path in one variable, you can set this variable as follows:\n$(echo $PATH_TROVE | sed \u0027s/\\//\\\\\\//g\u0027)\n\nThat\u0027s how the trovestack does it.\nSame with ESCAPED_GUEST_LOGDIR.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":576,"context_line":"    export PATH_TROVE\u003d${PATH_TROVE:-\u0027/opt/stack/trove\u0027}"},{"line_number":577,"context_line":"    export TROVESTACK_SCRIPTS\u003d${TROVESTACK_SCRIPTS:-\u0027/opt/stack/trove/integration/scripts\u0027}"},{"line_number":578,"context_line":"    export SERVICE_TYPE\u003d${SERVICE_TYPE:-\u0027mysql\u0027}"},{"line_number":579,"context_line":"    export ESCAPED_PATH_TROVE\u003d${ESCAPED_PATH_TROVE:-\u0027\\/opt\\/stack\\/trove\u0027}"},{"line_number":580,"context_line":"    export SSH_DIR\u003d${SSH_DIR:-\u0027/opt/stack/.ssh\u0027}"},{"line_number":581,"context_line":"    export GUEST_LOGDIR\u003d${GUEST_LOGDIR:-\u0027/var/log/trove/\u0027}"},{"line_number":582,"context_line":"    export ESCAPED_GUEST_LOGDIR\u003d${ESCAPED_GUEST_LOGDIR:-\u0027\\/var\\/log\\/trove\\/\u0027}"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_72470a1d","line":579,"range":{"start_line":579,"start_character":52,"end_line":579,"end_character":73},"in_reply_to":"3f79a3b5_153fe723","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":576,"context_line":"    export PATH_TROVE\u003d${PATH_TROVE:-\u0027/opt/stack/trove\u0027}"},{"line_number":577,"context_line":"    export TROVESTACK_SCRIPTS\u003d${TROVESTACK_SCRIPTS:-\u0027/opt/stack/trove/integration/scripts\u0027}"},{"line_number":578,"context_line":"    export SERVICE_TYPE\u003d${SERVICE_TYPE:-\u0027mysql\u0027}"},{"line_number":579,"context_line":"    export ESCAPED_PATH_TROVE\u003d${ESCAPED_PATH_TROVE:-\u0027\\/opt\\/stack\\/trove\u0027}"},{"line_number":580,"context_line":"    export SSH_DIR\u003d${SSH_DIR:-\u0027/opt/stack/.ssh\u0027}"},{"line_number":581,"context_line":"    export GUEST_LOGDIR\u003d${GUEST_LOGDIR:-\u0027/var/log/trove/\u0027}"},{"line_number":582,"context_line":"    export ESCAPED_GUEST_LOGDIR\u003d${ESCAPED_GUEST_LOGDIR:-\u0027\\/var\\/log\\/trove\\/\u0027}"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_125816fa","line":579,"range":{"start_line":579,"start_character":11,"end_line":579,"end_character":29},"in_reply_to":"3f79a3b5_15f4c755","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":584,"context_line":"    export DISTRO\u003d\"ubuntu\""},{"line_number":585,"context_line":"    export VM\u003d${VM:-\u0027/opt/stack/images/ubuntu_mysql/ubuntu_mysql\u0027}"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"    # you typically do not have to change these variables"},{"line_number":588,"context_line":"    if [ -d \"$TROVESTACK_SCRIPTS/files/elements\" ]; then"},{"line_number":589,"context_line":"        export ELEMENTS_PATH\u003d$TROVESTACK_SCRIPTS/files/elements"},{"line_number":590,"context_line":"    else"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_b504f314","line":587,"range":{"start_line":587,"start_character":4,"end_line":587,"end_character":57},"updated":"2018-11-30 20:06:47.000000000","message":"Looks like irrelevant comment.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":584,"context_line":"    export DISTRO\u003d\"ubuntu\""},{"line_number":585,"context_line":"    export VM\u003d${VM:-\u0027/opt/stack/images/ubuntu_mysql/ubuntu_mysql\u0027}"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"    # you typically do not have to change these variables"},{"line_number":588,"context_line":"    if [ -d \"$TROVESTACK_SCRIPTS/files/elements\" ]; then"},{"line_number":589,"context_line":"        export ELEMENTS_PATH\u003d$TROVESTACK_SCRIPTS/files/elements"},{"line_number":590,"context_line":"    else"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_d2513ed7","line":587,"range":{"start_line":587,"start_character":4,"end_line":587,"end_character":57},"in_reply_to":"3f79a3b5_b504f314","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":598,"context_line":"        export ELEMENTS_PATH+\u003d:$PATH_DISKIMG/elements"},{"line_number":599,"context_line":"    fi"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    git_clone $TROVE_DASHBOARD_REPO $TROVE_DASHBOARD_DIR $TROVE_DASHBOARD_BRANCH"},{"line_number":602,"context_line":"    setup_develop $TROVE_DASHBOARD_DIR"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    if [ ! -z \"$PATH_TRIPLEO_ELEMENTS\" ]; then"},{"line_number":605,"context_line":"        export ELEMENTS_PATH+\u003d:$PATH_TRIPLEO_ELEMENTS/elements"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_18a39e9e","line":602,"range":{"start_line":601,"start_character":0,"end_line":602,"end_character":38},"updated":"2018-11-30 20:06:47.000000000","message":"Why we have do this here.\ninstall_trove() function will call install_trove_dashboard() when horizon plugin is enabled.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":598,"context_line":"        export ELEMENTS_PATH+\u003d:$PATH_DISKIMG/elements"},{"line_number":599,"context_line":"    fi"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    git_clone $TROVE_DASHBOARD_REPO $TROVE_DASHBOARD_DIR $TROVE_DASHBOARD_BRANCH"},{"line_number":602,"context_line":"    setup_develop $TROVE_DASHBOARD_DIR"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    if [ ! -z \"$PATH_TRIPLEO_ELEMENTS\" ]; then"},{"line_number":605,"context_line":"        export ELEMENTS_PATH+\u003d:$PATH_TRIPLEO_ELEMENTS/elements"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_f2547ac7","line":602,"range":{"start_line":601,"start_character":0,"end_line":602,"end_character":38},"in_reply_to":"3f79a3b5_18a39e9e","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    mkdir -p ${SSH_DIR}"},{"line_number":622,"context_line":"    /usr/bin/ssh-keygen -f ${SSH_DIR}/id_rsa -q -N \"\""},{"line_number":623,"context_line":"    cat ${SSH_DIR}/id_rsa.pub \u003e\u003e ${SSH_DIR}/authorized_keys"},{"line_number":624,"context_line":"    chmod 600 ${SSH_DIR}/authorized_keys"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    echo \"Run disk image create to actually create a new image\""}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_b87e2ae0","line":623,"range":{"start_line":623,"start_character":0,"end_line":623,"end_character":59},"updated":"2018-11-30 20:06:47.000000000","message":"For what are we adding yourself to authorized_keys?\nAre we performing ssh to localhost?","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    mkdir -p ${SSH_DIR}"},{"line_number":622,"context_line":"    /usr/bin/ssh-keygen -f ${SSH_DIR}/id_rsa -q -N \"\""},{"line_number":623,"context_line":"    cat ${SSH_DIR}/id_rsa.pub \u003e\u003e ${SSH_DIR}/authorized_keys"},{"line_number":624,"context_line":"    chmod 600 ${SSH_DIR}/authorized_keys"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    echo \"Run disk image create to actually create a new image\""}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_b26602bd","line":623,"range":{"start_line":623,"start_character":0,"end_line":623,"end_character":59},"in_reply_to":"3f79a3b5_b87e2ae0","updated":"2018-12-04 20:27:47.000000000","message":"Not entirely sure at the moment. Most probably I\u0027m using the same key to ssh from vm to the controller host.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":624,"context_line":"    chmod 600 ${SSH_DIR}/authorized_keys"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    echo \"Run disk image create to actually create a new image\""},{"line_number":627,"context_line":"    env"},{"line_number":628,"context_line":"    disk-image-create -a amd64 -o \"${VM}\" -x ${QEMU_IMG_OPTIONS} ${DISTRO} \\"},{"line_number":629,"context_line":"        vm cloud-init-datasources ${DISTRO}-guest ${DISTRO}-${RELEASE}-guest \\"},{"line_number":630,"context_line":"        ${DISTRO}-${SERVICE_TYPE} ${DISTRO}-${RELEASE}-${SERVICE_TYPE}"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_584cb6c9","line":627,"range":{"start_line":627,"start_character":4,"end_line":627,"end_character":7},"updated":"2018-11-30 20:06:47.000000000","message":"Is this needed?","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":624,"context_line":"    chmod 600 ${SSH_DIR}/authorized_keys"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    echo \"Run disk image create to actually create a new image\""},{"line_number":627,"context_line":"    env"},{"line_number":628,"context_line":"    disk-image-create -a amd64 -o \"${VM}\" -x ${QEMU_IMG_OPTIONS} ${DISTRO} \\"},{"line_number":629,"context_line":"        vm cloud-init-datasources ${DISTRO}-guest ${DISTRO}-${RELEASE}-guest \\"},{"line_number":630,"context_line":"        ${DISTRO}-${SERVICE_TYPE} ${DISTRO}-${RELEASE}-${SERVICE_TYPE}"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_d21ffe08","line":627,"range":{"start_line":627,"start_character":4,"end_line":627,"end_character":7},"in_reply_to":"3f79a3b5_584cb6c9","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":670,"context_line":"    CLOUDINIT_PATH\u003d/etc/trove/cloudinit/mysql.cloudinit"},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"    if [ ! -f $CLOUDINIT_PATH ]; then"},{"line_number":673,"context_line":"        sudo mkdir -p /etc/trove/cloudinit"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        sudo touch $CLOUDINIT_PATH"},{"line_number":676,"context_line":"        sudo echo \"#!/usr/bin/env bash\" | sudo tee $CLOUDINIT_PATH"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_38f1ba65","line":673,"range":{"start_line":673,"start_character":22,"end_line":673,"end_character":42},"updated":"2018-11-30 20:06:47.000000000","message":"You can use:\nsudo mkdir -p $(dirname $CLOUDINIT_PATH))","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":670,"context_line":"    CLOUDINIT_PATH\u003d/etc/trove/cloudinit/mysql.cloudinit"},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"    if [ ! -f $CLOUDINIT_PATH ]; then"},{"line_number":673,"context_line":"        sudo mkdir -p /etc/trove/cloudinit"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        sudo touch $CLOUDINIT_PATH"},{"line_number":676,"context_line":"        sudo echo \"#!/usr/bin/env bash\" | sudo tee $CLOUDINIT_PATH"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_92198625","line":673,"range":{"start_line":673,"start_character":22,"end_line":673,"end_character":42},"in_reply_to":"3f79a3b5_38f1ba65","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":672,"context_line":"    if [ ! -f $CLOUDINIT_PATH ]; then"},{"line_number":673,"context_line":"        sudo mkdir -p /etc/trove/cloudinit"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        sudo touch $CLOUDINIT_PATH"},{"line_number":676,"context_line":"        sudo echo \"#!/usr/bin/env bash\" | sudo tee $CLOUDINIT_PATH"},{"line_number":677,"context_line":"        PUBKEY\u003d`cat ${SSH_DIR}/id_rsa.pub`"},{"line_number":678,"context_line":"        sudo echo \"echo \u0027${PUBKEY}\u0027 \u003e /home/${GUEST_USERNAME}/.ssh/authorized_keys\" | sudo tee $CLOUDINIT_PATH"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_f8b9027b","line":675,"range":{"start_line":675,"start_character":8,"end_line":675,"end_character":34},"updated":"2018-11-30 20:06:47.000000000","message":"Looks not needed","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":672,"context_line":"    if [ ! -f $CLOUDINIT_PATH ]; then"},{"line_number":673,"context_line":"        sudo mkdir -p /etc/trove/cloudinit"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        sudo touch $CLOUDINIT_PATH"},{"line_number":676,"context_line":"        sudo echo \"#!/usr/bin/env bash\" | sudo tee $CLOUDINIT_PATH"},{"line_number":677,"context_line":"        PUBKEY\u003d`cat ${SSH_DIR}/id_rsa.pub`"},{"line_number":678,"context_line":"        sudo echo \"echo \u0027${PUBKEY}\u0027 \u003e /home/${GUEST_USERNAME}/.ssh/authorized_keys\" | sudo tee $CLOUDINIT_PATH"}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_b214c2ec","line":675,"range":{"start_line":675,"start_character":8,"end_line":675,"end_character":34},"in_reply_to":"3f79a3b5_f8b9027b","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        sudo touch $CLOUDINIT_PATH"},{"line_number":676,"context_line":"        sudo echo \"#!/usr/bin/env bash\" | sudo tee $CLOUDINIT_PATH"},{"line_number":677,"context_line":"        PUBKEY\u003d`cat ${SSH_DIR}/id_rsa.pub`"},{"line_number":678,"context_line":"        sudo echo \"echo \u0027${PUBKEY}\u0027 \u003e /home/${GUEST_USERNAME}/.ssh/authorized_keys\" | sudo tee $CLOUDINIT_PATH"},{"line_number":679,"context_line":"    fi"},{"line_number":680,"context_line":"}"},{"line_number":681,"context_line":""}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_983c8eeb","line":678,"range":{"start_line":678,"start_character":0,"end_line":678,"end_character":110},"updated":"2018-11-30 20:06:47.000000000","message":"Use tee with --append flag.\nInstead, you will overwrite shebang line you have write just before.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        sudo touch $CLOUDINIT_PATH"},{"line_number":676,"context_line":"        sudo echo \"#!/usr/bin/env bash\" | sudo tee $CLOUDINIT_PATH"},{"line_number":677,"context_line":"        PUBKEY\u003d`cat ${SSH_DIR}/id_rsa.pub`"},{"line_number":678,"context_line":"        sudo echo \"echo \u0027${PUBKEY}\u0027 \u003e /home/${GUEST_USERNAME}/.ssh/authorized_keys\" | sudo tee $CLOUDINIT_PATH"},{"line_number":679,"context_line":"    fi"},{"line_number":680,"context_line":"}"},{"line_number":681,"context_line":""}],"source_content_type":"text/x-sh","patch_set":59,"id":"3f79a3b5_5213ee02","line":678,"range":{"start_line":678,"start_character":0,"end_line":678,"end_character":110},"in_reply_to":"3f79a3b5_983c8eeb","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"}],"integration/scripts/trovestack":[{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":852,"context_line":"        exit 1"},{"line_number":853,"context_line":"    fi"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"#    local IMAGE_URL\u003d\"\""},{"line_number":856,"context_line":"#    # Use /tmp as file_cache"},{"line_number":857,"context_line":"#    FILES\u003d/tmp"},{"line_number":858,"context_line":"#    if [[ -n $IMAGE_DOWNLOAD_URL ]]; then"},{"line_number":859,"context_line":"#        exclaim \"Downloading and using cached image\""},{"line_number":860,"context_line":"#        IMAGE_URL\u003d$IMAGE_DOWNLOAD_URL"},{"line_number":861,"context_line":"#    else"},{"line_number":862,"context_line":"#        exclaim \"Trying to build image\""},{"line_number":863,"context_line":"#        build_guest_image \"${DATASTORE_TYPE}\""},{"line_number":864,"context_line":"#        QCOW_IMAGE\u003d`find $VM_PATH -name \u0027*.qcow2\u0027`"},{"line_number":865,"context_line":"#        IMAGE_URL\u003d\"file://$QCOW_IMAGE\""},{"line_number":866,"context_line":"#    fi"},{"line_number":867,"context_line":"#"},{"line_number":868,"context_line":"#    GLANCE_IMAGEIDS\u003d$(openstack $CLOUD_ADMIN_ARG image list | grep $(basename $IMAGE_URL .qcow2) | get_field 1)"},{"line_number":869,"context_line":"#    if [[ -n $GLANCE_IMAGEIDS ]]; then"},{"line_number":870,"context_line":"#        openstack $CLOUD_ADMIN_ARG image delete $GLANCE_IMAGEIDS"},{"line_number":871,"context_line":"#    fi"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    GLANCE_IMAGEID\u003d$(openstack $CLOUD_ADMIN_ARG image list | grep \"$DATASTORE_TYPE\" | get_field 1)"},{"line_number":874,"context_line":"    echo \"IMAGEID: $GLANCE_IMAGEID\""},{"line_number":875,"context_line":"    if [[ -z $GLANCE_IMAGEID ]]; then"},{"line_number":876,"context_line":"        build_guest_image \"${DATASTORE_TYPE}\""},{"line_number":877,"context_line":"        QCOW_IMAGE\u003d`find $VM_PATH -name \u0027*.qcow2\u0027`"},{"line_number":878,"context_line":"        IMAGE_URL\u003d\"file://$QCOW_IMAGE\""},{"line_number":879,"context_line":"        GLANCE_IMAGEID\u003d`get_glance_id upload_image $IMAGE_URL`"},{"line_number":880,"context_line":"        [[ -z \"$GLANCE_IMAGEID\" ]] \u0026\u0026 echo \"Glance upload failed!\" \u0026\u0026 exit 1"},{"line_number":881,"context_line":"        echo \"IMAGE ID: $GLANCE_IMAGEID\""},{"line_number":882,"context_line":""},{"line_number":883,"context_line":"        if [[ -f /etc/trove/cloudinit/mysql.cloudinit ]]; then"},{"line_number":884,"context_line":"            sudo cp /etc/trove/cloudinit/mysql.cloudinit /etc/trove/cloudinit/${DATASTORE_TYPE}.cloudinit"},{"line_number":885,"context_line":"        fi"},{"line_number":886,"context_line":"    fi"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"    exclaim \"Updating Datastores\""}],"source_content_type":"application/octet-stream","patch_set":59,"id":"3f79a3b5_733753de","line":885,"range":{"start_line":855,"start_character":0,"end_line":885,"end_character":10},"updated":"2018-11-30 20:06:47.000000000","message":"Could you exlain why we need changes in trovestack?","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"5f47933cefe871c1934fa1bb0efd55b1fab8b8df","unresolved":false,"context_lines":[{"line_number":852,"context_line":"        exit 1"},{"line_number":853,"context_line":"    fi"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"#    local IMAGE_URL\u003d\"\""},{"line_number":856,"context_line":"#    # Use /tmp as file_cache"},{"line_number":857,"context_line":"#    FILES\u003d/tmp"},{"line_number":858,"context_line":"#    if [[ -n $IMAGE_DOWNLOAD_URL ]]; then"},{"line_number":859,"context_line":"#        exclaim \"Downloading and using cached image\""},{"line_number":860,"context_line":"#        IMAGE_URL\u003d$IMAGE_DOWNLOAD_URL"},{"line_number":861,"context_line":"#    else"},{"line_number":862,"context_line":"#        exclaim \"Trying to build image\""},{"line_number":863,"context_line":"#        build_guest_image \"${DATASTORE_TYPE}\""},{"line_number":864,"context_line":"#        QCOW_IMAGE\u003d`find $VM_PATH -name \u0027*.qcow2\u0027`"},{"line_number":865,"context_line":"#        IMAGE_URL\u003d\"file://$QCOW_IMAGE\""},{"line_number":866,"context_line":"#    fi"},{"line_number":867,"context_line":"#"},{"line_number":868,"context_line":"#    GLANCE_IMAGEIDS\u003d$(openstack $CLOUD_ADMIN_ARG image list | grep $(basename $IMAGE_URL .qcow2) | get_field 1)"},{"line_number":869,"context_line":"#    if [[ -n $GLANCE_IMAGEIDS ]]; then"},{"line_number":870,"context_line":"#        openstack $CLOUD_ADMIN_ARG image delete $GLANCE_IMAGEIDS"},{"line_number":871,"context_line":"#    fi"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    GLANCE_IMAGEID\u003d$(openstack $CLOUD_ADMIN_ARG image list | grep \"$DATASTORE_TYPE\" | get_field 1)"},{"line_number":874,"context_line":"    echo \"IMAGEID: $GLANCE_IMAGEID\""},{"line_number":875,"context_line":"    if [[ -z $GLANCE_IMAGEID ]]; then"},{"line_number":876,"context_line":"        build_guest_image \"${DATASTORE_TYPE}\""},{"line_number":877,"context_line":"        QCOW_IMAGE\u003d`find $VM_PATH -name \u0027*.qcow2\u0027`"},{"line_number":878,"context_line":"        IMAGE_URL\u003d\"file://$QCOW_IMAGE\""},{"line_number":879,"context_line":"        GLANCE_IMAGEID\u003d`get_glance_id upload_image $IMAGE_URL`"},{"line_number":880,"context_line":"        [[ -z \"$GLANCE_IMAGEID\" ]] \u0026\u0026 echo \"Glance upload failed!\" \u0026\u0026 exit 1"},{"line_number":881,"context_line":"        echo \"IMAGE ID: $GLANCE_IMAGEID\""},{"line_number":882,"context_line":""},{"line_number":883,"context_line":"        if [[ -f /etc/trove/cloudinit/mysql.cloudinit ]]; then"},{"line_number":884,"context_line":"            sudo cp /etc/trove/cloudinit/mysql.cloudinit /etc/trove/cloudinit/${DATASTORE_TYPE}.cloudinit"},{"line_number":885,"context_line":"        fi"},{"line_number":886,"context_line":"    fi"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"    exclaim \"Updating Datastores\""}],"source_content_type":"application/octet-stream","patch_set":59,"id":"3f79a3b5_942b1999","line":885,"range":{"start_line":855,"start_character":0,"end_line":885,"end_character":10},"in_reply_to":"3f79a3b5_1299f67e","updated":"2018-12-12 08:31:17.000000000","message":"Still, I would prefer to remove commented out piece of code.\nIt brings nothing.\nIf we will need it in the future, we can restore it from git history.","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":852,"context_line":"        exit 1"},{"line_number":853,"context_line":"    fi"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"#    local IMAGE_URL\u003d\"\""},{"line_number":856,"context_line":"#    # Use /tmp as file_cache"},{"line_number":857,"context_line":"#    FILES\u003d/tmp"},{"line_number":858,"context_line":"#    if [[ -n $IMAGE_DOWNLOAD_URL ]]; then"},{"line_number":859,"context_line":"#        exclaim \"Downloading and using cached image\""},{"line_number":860,"context_line":"#        IMAGE_URL\u003d$IMAGE_DOWNLOAD_URL"},{"line_number":861,"context_line":"#    else"},{"line_number":862,"context_line":"#        exclaim \"Trying to build image\""},{"line_number":863,"context_line":"#        build_guest_image \"${DATASTORE_TYPE}\""},{"line_number":864,"context_line":"#        QCOW_IMAGE\u003d`find $VM_PATH -name \u0027*.qcow2\u0027`"},{"line_number":865,"context_line":"#        IMAGE_URL\u003d\"file://$QCOW_IMAGE\""},{"line_number":866,"context_line":"#    fi"},{"line_number":867,"context_line":"#"},{"line_number":868,"context_line":"#    GLANCE_IMAGEIDS\u003d$(openstack $CLOUD_ADMIN_ARG image list | grep $(basename $IMAGE_URL .qcow2) | get_field 1)"},{"line_number":869,"context_line":"#    if [[ -n $GLANCE_IMAGEIDS ]]; then"},{"line_number":870,"context_line":"#        openstack $CLOUD_ADMIN_ARG image delete $GLANCE_IMAGEIDS"},{"line_number":871,"context_line":"#    fi"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    GLANCE_IMAGEID\u003d$(openstack $CLOUD_ADMIN_ARG image list | grep \"$DATASTORE_TYPE\" | get_field 1)"},{"line_number":874,"context_line":"    echo \"IMAGEID: $GLANCE_IMAGEID\""},{"line_number":875,"context_line":"    if [[ -z $GLANCE_IMAGEID ]]; then"},{"line_number":876,"context_line":"        build_guest_image \"${DATASTORE_TYPE}\""},{"line_number":877,"context_line":"        QCOW_IMAGE\u003d`find $VM_PATH -name \u0027*.qcow2\u0027`"},{"line_number":878,"context_line":"        IMAGE_URL\u003d\"file://$QCOW_IMAGE\""},{"line_number":879,"context_line":"        GLANCE_IMAGEID\u003d`get_glance_id upload_image $IMAGE_URL`"},{"line_number":880,"context_line":"        [[ -z \"$GLANCE_IMAGEID\" ]] \u0026\u0026 echo \"Glance upload failed!\" \u0026\u0026 exit 1"},{"line_number":881,"context_line":"        echo \"IMAGE ID: $GLANCE_IMAGEID\""},{"line_number":882,"context_line":""},{"line_number":883,"context_line":"        if [[ -f /etc/trove/cloudinit/mysql.cloudinit ]]; then"},{"line_number":884,"context_line":"            sudo cp /etc/trove/cloudinit/mysql.cloudinit /etc/trove/cloudinit/${DATASTORE_TYPE}.cloudinit"},{"line_number":885,"context_line":"        fi"},{"line_number":886,"context_line":"    fi"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"    exclaim \"Updating Datastores\""}],"source_content_type":"application/octet-stream","patch_set":59,"id":"3f79a3b5_1299f67e","line":885,"range":{"start_line":855,"start_character":0,"end_line":885,"end_character":10},"in_reply_to":"3f79a3b5_733753de","updated":"2018-12-04 20:27:47.000000000","message":"Otherwise, trovestack will delete our image when calling trovestack gate-tests ... .","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"c171fc38836f70d57ce09b6a18c90838e53d6351","unresolved":false,"context_lines":[{"line_number":852,"context_line":"        exit 1"},{"line_number":853,"context_line":"    fi"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"#    local IMAGE_URL\u003d\"\""},{"line_number":856,"context_line":"#    # Use /tmp as file_cache"},{"line_number":857,"context_line":"#    FILES\u003d/tmp"},{"line_number":858,"context_line":"#    if [[ -n $IMAGE_DOWNLOAD_URL ]]; then"},{"line_number":859,"context_line":"#        exclaim \"Downloading and using cached image\""},{"line_number":860,"context_line":"#        IMAGE_URL\u003d$IMAGE_DOWNLOAD_URL"},{"line_number":861,"context_line":"#    else"},{"line_number":862,"context_line":"#        exclaim \"Trying to build image\""},{"line_number":863,"context_line":"#        build_guest_image \"${DATASTORE_TYPE}\""},{"line_number":864,"context_line":"#        QCOW_IMAGE\u003d`find $VM_PATH -name \u0027*.qcow2\u0027`"},{"line_number":865,"context_line":"#        IMAGE_URL\u003d\"file://$QCOW_IMAGE\""},{"line_number":866,"context_line":"#    fi"},{"line_number":867,"context_line":"#"},{"line_number":868,"context_line":"#    GLANCE_IMAGEIDS\u003d$(openstack $CLOUD_ADMIN_ARG image list | grep $(basename $IMAGE_URL .qcow2) | get_field 1)"},{"line_number":869,"context_line":"#    if [[ -n $GLANCE_IMAGEIDS ]]; then"},{"line_number":870,"context_line":"#        openstack $CLOUD_ADMIN_ARG image delete $GLANCE_IMAGEIDS"},{"line_number":871,"context_line":"#    fi"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    GLANCE_IMAGEID\u003d$(openstack $CLOUD_ADMIN_ARG image list | grep \"$DATASTORE_TYPE\" | get_field 1)"},{"line_number":874,"context_line":"    echo \"IMAGEID: $GLANCE_IMAGEID\""},{"line_number":875,"context_line":"    if [[ -z $GLANCE_IMAGEID ]]; then"},{"line_number":876,"context_line":"        build_guest_image \"${DATASTORE_TYPE}\""},{"line_number":877,"context_line":"        QCOW_IMAGE\u003d`find $VM_PATH -name \u0027*.qcow2\u0027`"},{"line_number":878,"context_line":"        IMAGE_URL\u003d\"file://$QCOW_IMAGE\""},{"line_number":879,"context_line":"        GLANCE_IMAGEID\u003d`get_glance_id upload_image $IMAGE_URL`"},{"line_number":880,"context_line":"        [[ -z \"$GLANCE_IMAGEID\" ]] \u0026\u0026 echo \"Glance upload failed!\" \u0026\u0026 exit 1"},{"line_number":881,"context_line":"        echo \"IMAGE ID: $GLANCE_IMAGEID\""},{"line_number":882,"context_line":""},{"line_number":883,"context_line":"        if [[ -f /etc/trove/cloudinit/mysql.cloudinit ]]; then"},{"line_number":884,"context_line":"            sudo cp /etc/trove/cloudinit/mysql.cloudinit /etc/trove/cloudinit/${DATASTORE_TYPE}.cloudinit"},{"line_number":885,"context_line":"        fi"},{"line_number":886,"context_line":"    fi"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"    exclaim \"Updating Datastores\""}],"source_content_type":"application/octet-stream","patch_set":59,"id":"3f79a3b5_0187bb5e","line":885,"range":{"start_line":855,"start_character":0,"end_line":885,"end_character":10},"in_reply_to":"3f79a3b5_942b1999","updated":"2018-12-14 20:26:39.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"}],"integration/scripts/trovestack.rc":[{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"4555fdaa303ecfc18668df98e52a3176271e5699","unresolved":false,"context_lines":[{"line_number":102,"context_line":"#export TROVE_MAX_VOLUMES_PER_TENANT\u003d40"},{"line_number":103,"context_line":"#export TROVE_AGENT_CALL_LOW_TIMEOUT\u003d15"},{"line_number":104,"context_line":"#export TROVE_AGENT_CALL_HIGH_TIMEOUT\u003d300"},{"line_number":105,"context_line":"export TROVE_RESIZE_TIME_OUT\u003d3600"},{"line_number":106,"context_line":"#export TROVE_USAGE_TIMEOUT\u003d1500"},{"line_number":107,"context_line":"#export TROVE_STATE_CHANGE_WAIT_TIME\u003d180"}],"source_content_type":"application/octet-stream","patch_set":64,"id":"3f79a3b5_b2ece527","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":33},"updated":"2018-12-14 18:07:05.000000000","message":"This variable is already set in ansible task.","commit_id":"6d240e6155d5ea67612ddb360036ec82366ea653"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"c171fc38836f70d57ce09b6a18c90838e53d6351","unresolved":false,"context_lines":[{"line_number":102,"context_line":"#export TROVE_MAX_VOLUMES_PER_TENANT\u003d40"},{"line_number":103,"context_line":"#export TROVE_AGENT_CALL_LOW_TIMEOUT\u003d15"},{"line_number":104,"context_line":"#export TROVE_AGENT_CALL_HIGH_TIMEOUT\u003d300"},{"line_number":105,"context_line":"export TROVE_RESIZE_TIME_OUT\u003d3600"},{"line_number":106,"context_line":"#export TROVE_USAGE_TIMEOUT\u003d1500"},{"line_number":107,"context_line":"#export TROVE_STATE_CHANGE_WAIT_TIME\u003d180"}],"source_content_type":"application/octet-stream","patch_set":64,"id":"3f79a3b5_484cc4c9","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":33},"in_reply_to":"3f79a3b5_b2ece527","updated":"2018-12-14 20:26:39.000000000","message":"Done","commit_id":"6d240e6155d5ea67612ddb360036ec82366ea653"}],"roles/trove-devstack/tasks/main.yml":[{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"4555fdaa303ecfc18668df98e52a3176271e5699","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    export DEST\u003d{{devstack_base_dir}}"},{"line_number":5,"context_line":"    export PATH_DEVSTACK_SRC\u003d$DEST/devstack"},{"line_number":6,"context_line":"    export TROVE_RESIZE_TIME_OUT\u003d{{trove_resize_time_out}}"},{"line_number":7,"context_line":"    export DISTRO_RELEASE\u003dxenial"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    cd $DEST/trove/integration/scripts"},{"line_number":10,"context_line":"    ./trovestack gate-tests {{trove_test_datastore}} {{trove_test_group}}"}],"source_content_type":"text/x-yaml","patch_set":64,"id":"3f79a3b5_f2301db9","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":32},"updated":"2018-12-14 18:07:05.000000000","message":"This is redundant as DISTRO_RELEASE is used to determine RELEASE, which is already initialized in plugin.sh.","commit_id":"6d240e6155d5ea67612ddb360036ec82366ea653"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"c171fc38836f70d57ce09b6a18c90838e53d6351","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    export DEST\u003d{{devstack_base_dir}}"},{"line_number":5,"context_line":"    export PATH_DEVSTACK_SRC\u003d$DEST/devstack"},{"line_number":6,"context_line":"    export TROVE_RESIZE_TIME_OUT\u003d{{trove_resize_time_out}}"},{"line_number":7,"context_line":"    export DISTRO_RELEASE\u003dxenial"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    cd $DEST/trove/integration/scripts"},{"line_number":10,"context_line":"    ./trovestack gate-tests {{trove_test_datastore}} {{trove_test_group}}"}],"source_content_type":"text/x-yaml","patch_set":64,"id":"3f79a3b5_0846cca9","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":32},"in_reply_to":"3f79a3b5_f2301db9","updated":"2018-12-14 20:26:39.000000000","message":"Done","commit_id":"6d240e6155d5ea67612ddb360036ec82366ea653"}],"trove/tests/__init__.py":[{"author":{"_account_id":28671,"name":"Marcin Piwowarczyk","email":"m.piwowarczy@samsung.com","username":"m.piwowarczy"},"change_message_id":"8ec43043b2efdb966cc7d317f8b61a70dfc62883","unresolved":false,"context_lines":[{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d (\u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno \u0027"},{"line_number":8,"context_line":"           + (\u0027-o LogLevel\u003ddebug3 -i \u0027"},{"line_number":9,"context_line":"              + os.environ.get(\u0027TROVE_TEST_SSH_KEY_FILE\u0027)"},{"line_number":10,"context_line":"              if \u0027TROVE_TEST_SSH_KEY_FILE\u0027 in os.environ else \"\"))"}],"source_content_type":"text/x-python","patch_set":59,"id":"3f79a3b5_93346fd9","line":8,"range":{"start_line":8,"start_character":27,"end_line":8,"end_character":33},"updated":"2018-11-30 20:06:47.000000000","message":"Is this still needed?","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"},{"author":{"_account_id":29393,"name":"Dariusz Król","email":"dkrol3@gmail.com","username":"d.krol"},"change_message_id":"815714c719d8bdb3148fa092574d61cc3b987102","unresolved":false,"context_lines":[{"line_number":5,"context_line":"INSTANCES \u003d \"dbaas.api.instances\""},{"line_number":6,"context_line":"POST_INSTANCES \u003d \"dbaas.api.post_instances\""},{"line_number":7,"context_line":"SSH_CMD \u003d (\u0027ssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno \u0027"},{"line_number":8,"context_line":"           + (\u0027-o LogLevel\u003ddebug3 -i \u0027"},{"line_number":9,"context_line":"              + os.environ.get(\u0027TROVE_TEST_SSH_KEY_FILE\u0027)"},{"line_number":10,"context_line":"              if \u0027TROVE_TEST_SSH_KEY_FILE\u0027 in os.environ else \"\"))"}],"source_content_type":"text/x-python","patch_set":59,"id":"3f79a3b5_52e8cede","line":8,"range":{"start_line":8,"start_character":27,"end_line":8,"end_character":33},"in_reply_to":"3f79a3b5_93346fd9","updated":"2018-12-04 20:27:47.000000000","message":"Done","commit_id":"7353020dff3d3eb2f13b443f6634120aeb9bb5ae"}]}
