)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"4cd30d16393c91fc6964edcd63cd500a9d6ae52a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Bharat Kumar Kobagana \u003cbkobagan@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-11-13 13:53:20 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement GlusterFS backend for Cinder"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The new lib installs a full GlusterFS cluster. It can be managed"},{"line_number":10,"context_line":"by the service init scripts. This implementation adds the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5a890539_d043796a","line":7,"updated":"2014-11-19 16:41:45.000000000","message":"Should probably be called \"Deploy GlusterFS server\" to avoid confusion (which I think is where sdague\u0027s comment comes from).","commit_id":"42f1471d38be8250734eb33696298ea3d0e32c7c"}],"extras.d/60-glusterfs.sh":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7762f55bdfc3e7f40d3d8ae99ef5689cec20bbf4","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"if is_service_enabled glusterfs; then"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    # Defaults"},{"line_number":20,"context_line":"    # --------"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    # Set ``GLUSTERFS_DATA_DIR`` to the location of GlusterFS drives."}],"source_content_type":"text/x-sh","patch_set":15,"id":"3a961159_bea59a48","line":19,"updated":"2014-12-18 12:21:17.000000000","message":"from here until L127 should be outside of this if block. The functions and variables should be top level defined.","commit_id":"df03159a7f198e58aa846ce8c00190c31e2f2c2e"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7762f55bdfc3e7f40d3d8ae99ef5689cec20bbf4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    # install_glusterfs() - Collect source and prepare"},{"line_number":97,"context_line":"    function install_glusterfs {"},{"line_number":98,"context_line":"        if [[ ${DISTRO} \u003d~ rhel7 ]] \u0026\u0026 [[ ! -f /etc/yum.repos.d/glusterfs-epel.repo ]]; then"},{"line_number":99,"context_line":"            sudo  wget $GLUSTERFS_CENTOS_REPO -O /etc/yum.repos.d/glusterfs-epel.repo"},{"line_number":100,"context_line":"        fi"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if [[ ${DISTRO} \u003d~ (precise|trusty|f20|rhel7) ]]; then"}],"source_content_type":"text/x-sh","patch_set":15,"id":"3a961159_fe3482fc","line":99,"updated":"2014-12-18 12:21:17.000000000","message":"the fact that this requires a 3rd party repo makes it dubious for inclusion in devstack.","commit_id":"df03159a7f198e58aa846ce8c00190c31e2f2c2e"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7762f55bdfc3e7f40d3d8ae99ef5689cec20bbf4","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            sudo  wget $GLUSTERFS_CENTOS_REPO -O /etc/yum.repos.d/glusterfs-epel.repo"},{"line_number":100,"context_line":"        fi"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if [[ ${DISTRO} \u003d~ (precise|trusty|f20|rhel7) ]]; then"},{"line_number":103,"context_line":"            install_package glusterfs-server"},{"line_number":104,"context_line":"        else"},{"line_number":105,"context_line":"            exit_distro_not_supported \"Please use Ubuntu Trusty \u0026 Precise or Fedora 20 or CentOS 7\""}],"source_content_type":"text/x-sh","patch_set":15,"id":"3a961159_fe1ba27d","line":102,"updated":"2014-12-18 12:21:17.000000000","message":"we shouldn\u0027t do this check. It should just install and if the server fails, so be it.\n\nPlease add the install of xfsutils here, so you don\u0027t need the files/*/glusterfs bits at all.","commit_id":"df03159a7f198e58aa846ce8c00190c31e2f2c2e"}],"files/rpms/glusterfs":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5d9376a928707f542493777d6d51c8b6b012f632","unresolved":false,"context_lines":[{"line_number":1,"context_line":"glusterfs-server    # NOPRIME"},{"line_number":2,"context_line":"xfsprogs"},{"line_number":3,"context_line":"redhat-lsb-core"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"5a890539_40689cba","line":3,"updated":"2014-11-11 04:50:38.000000000","message":"why is this here?","commit_id":"f6e5de63e86d0286884a7b6b5c3b859a5e58902f"}],"lib/glusterfs":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"71e24900d7236756805f718b3ecbc8735b8a62dc","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    # create a backing file disk"},{"line_number":73,"context_line":"    create_disk ${GLUSTERFS_DISK_IMAGE} ${GLUSTERFS_DATA_DIR} ${GLUSTERFS_LOOPBACK_DISK_SIZE}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    for VOL_NAME in $(echo $GLUSTERFS_VOLUMES | sed \"s/,/ /g\"); do"},{"line_number":76,"context_line":"        sudo mkdir -p ${GLUSTERFS_DATA_DIR}/$VOL_NAME"},{"line_number":77,"context_line":"        sudo gluster --mode\u003dscript volume create $VOL_NAME $(hostname):${GLUSTERFS_DATA_DIR}/$VOL_NAME \u003e /dev/null 2\u003e\u00261"},{"line_number":78,"context_line":"        sudo gluster --mode\u003dscript volume start $VOL_NAME \u003e /dev/null 2\u003e\u00261"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a8c0949_ac32cd0d","line":75,"updated":"2014-11-06 21:27:43.000000000","message":"all caps only for globals","commit_id":"53dfa2882ba03e05515681f71952ddb1bc83def1"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"71e24900d7236756805f718b3ecbc8735b8a62dc","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    for VOL_NAME in $(echo $GLUSTERFS_VOLUMES | sed \"s/,/ /g\"); do"},{"line_number":76,"context_line":"        sudo mkdir -p ${GLUSTERFS_DATA_DIR}/$VOL_NAME"},{"line_number":77,"context_line":"        sudo gluster --mode\u003dscript volume create $VOL_NAME $(hostname):${GLUSTERFS_DATA_DIR}/$VOL_NAME \u003e /dev/null 2\u003e\u00261"},{"line_number":78,"context_line":"        sudo gluster --mode\u003dscript volume start $VOL_NAME \u003e /dev/null 2\u003e\u00261"},{"line_number":79,"context_line":"        sudo gluster --mode\u003dscript volume set $VOL_NAME server.allow-insecure on"},{"line_number":80,"context_line":"    done"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a8c0949_cc1c797a","line":77,"updated":"2014-11-06 21:27:43.000000000","message":"we don\u0027t strictly enforce it, but keeping things close-ish to 80 lines with well placed \\\u0027s is helpful","commit_id":"53dfa2882ba03e05515681f71952ddb1bc83def1"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"71e24900d7236756805f718b3ecbc8735b8a62dc","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"# install_glusterfs() - Collect source and prepare"},{"line_number":84,"context_line":"function install_glusterfs {"},{"line_number":85,"context_line":"    if [[ ${os_CODENAME} \u003d~ trusty ]] || [[ ${os_CODENAME} \u003d~ precise ]] || [[ ${os_CODENAME} \u003d~ Heisenbug ]]; then"},{"line_number":86,"context_line":"        NO_UPDATE_REPOS\u003dFalse"},{"line_number":87,"context_line":"        install_package glusterfs-server"},{"line_number":88,"context_line":"    else"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a8c0949_ec13f563","line":85,"updated":"2014-11-06 21:27:43.000000000","message":"please check ${DISTRO} (see example at start of stack.sh)\n\nwhat about rhel7 / centos7?\n\nis there a more flexible way to check this, that ensures we don\u0027t have to update this check for every new release of an OS?  maybe it\u0027s worth reversing it to those platforms we know *won\u0027t* work","commit_id":"53dfa2882ba03e05515681f71952ddb1bc83def1"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"71e24900d7236756805f718b3ecbc8735b8a62dc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"# install_glusterfs() - Collect source and prepare"},{"line_number":84,"context_line":"function install_glusterfs {"},{"line_number":85,"context_line":"    if [[ ${os_CODENAME} \u003d~ trusty ]] || [[ ${os_CODENAME} \u003d~ precise ]] || [[ ${os_CODENAME} \u003d~ Heisenbug ]]; then"},{"line_number":86,"context_line":"        NO_UPDATE_REPOS\u003dFalse"},{"line_number":87,"context_line":"        install_package glusterfs-server"},{"line_number":88,"context_line":"    else"},{"line_number":89,"context_line":"        exit_distro_not_supported \"GlusterFS since your distro doesn\u0027t provide (at least) the Firefly release. Please use Ubuntu Trusty \u0026 Precise or Fedora 20\""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a8c0949_0c176152","line":86,"updated":"2014-11-06 21:27:43.000000000","message":"why this?","commit_id":"53dfa2882ba03e05515681f71952ddb1bc83def1"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"1ea09de5b8eb0b23adf23670a673e752926fcd0e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        NO_UPDATE_REPOS\u003dFalse"},{"line_number":87,"context_line":"        install_package glusterfs-server"},{"line_number":88,"context_line":"    else"},{"line_number":89,"context_line":"        exit_distro_not_supported \"GlusterFS since your distro doesn\u0027t provide (at least) the Firefly release. Please use Ubuntu Trusty \u0026 Precise or Fedora 20\""},{"line_number":90,"context_line":"    fi"},{"line_number":91,"context_line":"}"},{"line_number":92,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a8c0949_070e5a34","line":89,"updated":"2014-11-06 21:33:16.000000000","message":"in fact, isn\u0027t firefly a ceph release codename?  it\u0027s not required in here?  I think this is irrelevant","commit_id":"53dfa2882ba03e05515681f71952ddb1bc83def1"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5d9376a928707f542493777d6d51c8b6b012f632","unresolved":false,"context_lines":[{"line_number":77,"context_line":"# configure_glusterfs_cinder() - Create GlusterFS volumes"},{"line_number":78,"context_line":"function configure_glusterfs_cinder {"},{"line_number":79,"context_line":"    if is_fedora; then"},{"line_number":80,"context_line":"        sudo setenforce 0 \u003e /dev/null 2\u003e\u00261"},{"line_number":81,"context_line":"        stop_glusterfs"},{"line_number":82,"context_line":"        start_glusterfs"},{"line_number":83,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"5a890539_803444df","line":80,"updated":"2014-11-11 04:50:38.000000000","message":"shouldn\u0027t need this; we already disable selinux in i think fixup_stuff.sh\n\nmaybe one day we can get it turned on ... but i\u0027d rather not have mulitple places turning it off again.","commit_id":"f6e5de63e86d0286884a7b6b5c3b859a5e58902f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5d9376a928707f542493777d6d51c8b6b012f632","unresolved":false,"context_lines":[{"line_number":96,"context_line":"# install_glusterfs() - Collect source and prepare"},{"line_number":97,"context_line":"function install_glusterfs {"},{"line_number":98,"context_line":"    if [[ ${DISTRO} \u003d~ (precise|trusty|f20) ]]; then"},{"line_number":99,"context_line":"        NO_UPDATE_REPOS\u003dFalse"},{"line_number":100,"context_line":"        install_package glusterfs-server"},{"line_number":101,"context_line":"    elif [[ ${DISTRO} \u003d~ rhel7 ]]; then"},{"line_number":102,"context_line":"        sudo  wget\\"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"5a890539_e0526812","line":99,"updated":"2014-11-11 04:50:38.000000000","message":"why this?","commit_id":"f6e5de63e86d0286884a7b6b5c3b859a5e58902f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5d9376a928707f542493777d6d51c8b6b012f632","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        install_package glusterfs-server"},{"line_number":101,"context_line":"    elif [[ ${DISTRO} \u003d~ rhel7 ]]; then"},{"line_number":102,"context_line":"        sudo  wget\\"},{"line_number":103,"context_line":"            http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo\\"},{"line_number":104,"context_line":"            -O /etc/yum.repos.d/glusterfs-epel.repo"},{"line_number":105,"context_line":"        install_package glusterfs-server"},{"line_number":106,"context_line":"    else"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"5a890539_c04d6c74","line":103,"updated":"2014-11-11 04:50:38.000000000","message":"maybe move to a variable that can be over-ridden","commit_id":"f6e5de63e86d0286884a7b6b5c3b859a5e58902f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5d9376a928707f542493777d6d51c8b6b012f632","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    elif [[ ${DISTRO} \u003d~ rhel7 ]]; then"},{"line_number":102,"context_line":"        sudo  wget\\"},{"line_number":103,"context_line":"            http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo\\"},{"line_number":104,"context_line":"            -O /etc/yum.repos.d/glusterfs-epel.repo"},{"line_number":105,"context_line":"        install_package glusterfs-server"},{"line_number":106,"context_line":"    else"},{"line_number":107,"context_line":"        exit_distro_not_supported \"Please use Ubuntu Trusty \u0026 Precise or Fedora 20 or CentOS 7\""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"5a890539_603e78ba","line":104,"updated":"2014-11-11 04:50:38.000000000","message":"probably should check if this is there first\n\nthis is also auto-enabled?  we don\u0027t need an yum --enablerepo?","commit_id":"f6e5de63e86d0286884a7b6b5c3b859a5e58902f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"c95f67dc5ef89e95137b5122e111a9db0ca6396c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    for vol_name in $(echo $GLUSTERFS_VOLUMES | sed \"s/,/ /g\"); do"},{"line_number":87,"context_line":"        sudo mkdir -p ${GLUSTERFS_DATA_DIR}/$vol_name"},{"line_number":88,"context_line":"        sudo gluster --mode\u003dscript volume \\"},{"line_number":89,"context_line":"            create $vol_name $(hostname):${GLUSTERFS_DATA_DIR}/$vol_name \u003e /dev/null 2\u003e\u00261"},{"line_number":90,"context_line":"        sudo gluster --mode\u003dscript volume start $vol_name \u003e /dev/null 2\u003e\u00261"},{"line_number":91,"context_line":"        sudo gluster --mode\u003dscript volume set $vol_name server.allow-insecure on"},{"line_number":92,"context_line":"    done"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"5a890539_6dce565c","line":89,"updated":"2014-11-12 00:21:04.000000000","message":"why redirect the output here?  we should be capturing it in the logs","commit_id":"7ea6844e0ff76c5d7ecb6e6821caa2b752437f1f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"c95f67dc5ef89e95137b5122e111a9db0ca6396c","unresolved":false,"context_lines":[{"line_number":95,"context_line":"# install_glusterfs() - Collect source and prepare"},{"line_number":96,"context_line":"function install_glusterfs {"},{"line_number":97,"context_line":"    if [[ ${DISTRO} \u003d~ rhel7 ]] \u0026\u0026 [[ ! -f /etc/yum.repos.d/glusterfs-epel.repo ]]; then"},{"line_number":98,"context_line":"        centos_repo\u003dhttp://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo"},{"line_number":99,"context_line":"        sudo  wget $centos_repo -O /etc/yum.repos.d/glusterfs-epel.repo"},{"line_number":100,"context_line":"    fi"},{"line_number":101,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"5a890539_0de872b3","line":98,"updated":"2014-11-12 00:21:04.000000000","message":"I\u0027m thinking more at the top of hte file have\n\nGLUSTERFS_CENTOS_REPO\u003d${GLUSTERFS_CENTOS_REPO:-http://...}","commit_id":"7ea6844e0ff76c5d7ecb6e6821caa2b752437f1f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"dd50f8603ff8499b526dc9bc702e876626417c24","unresolved":false,"context_lines":[{"line_number":31,"context_line":"# GlusterFS data. Set ``GLUSTERFS_LOOPBACK_DISK_SIZE`` to the disk size in"},{"line_number":32,"context_line":"# kilobytes."},{"line_number":33,"context_line":"# Default is 4 gigabyte."},{"line_number":34,"context_line":"GLUSTERFS_LOOPBACK_DISK_SIZE_DEFAULT\u003d4G"},{"line_number":35,"context_line":"GLUSTERFS_LOOPBACK_DISK_SIZE\u003d${GLUSTERFS_LOOPBACK_DISK_SIZE:-$GLUSTERFS_LOOPBACK_DISK_SIZE_DEFAULT}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# Devstack will create GlusterFS shares to store Cinder volumes."}],"source_content_type":"application/octet-stream","patch_set":7,"id":"5a890539_c9c0fd2c","line":34,"updated":"2014-11-12 23:24:57.000000000","message":"see comment below","commit_id":"5ad2b7a088266a93d669e03311c604c9caad92fb"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"dd50f8603ff8499b526dc9bc702e876626417c24","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    GLUSTERFS_VOLUMES+\u003d,$(echo $share | cut -d/ -f2);"},{"line_number":45,"context_line":"done"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"GLUSTERFS_CENTOS_DEFAULT_REPO\u003dhttp://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo"},{"line_number":48,"context_line":"GLUSTERFS_CENTOS_REPO\u003d${GLUSTERFS_CENTOS_REPO:-$GLUSTERFS_CENTOS_DEFAULT_REPO}"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":7,"id":"5a890539_89c6f547","line":47,"updated":"2014-11-12 23:24:57.000000000","message":"no need for this as a separate variable, just make it the default? ${FOO:-\"default\"}","commit_id":"5ad2b7a088266a93d669e03311c604c9caad92fb"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"dd50f8603ff8499b526dc9bc702e876626417c24","unresolved":false,"context_lines":[{"line_number":55,"context_line":"# runs that a clean run would need to clean up"},{"line_number":56,"context_line":"function cleanup_glusterfs {"},{"line_number":57,"context_line":"    for share in $(echo $CINDER_GLUSTERFS_SHARES | sed \"s/;/ /\");  do"},{"line_number":58,"context_line":"        mount_point\u003d$(grep $share /proc/mounts | awk \u0027{print $2}\u0027)"},{"line_number":59,"context_line":"        if [[ -n $mount_point ]]; then"},{"line_number":60,"context_line":"            sudo umount $mount_point"},{"line_number":61,"context_line":"        fi"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"5a890539_09e205d5","line":58,"updated":"2014-11-12 23:24:57.000000000","message":"this one can be local?","commit_id":"5ad2b7a088266a93d669e03311c604c9caad92fb"}]}
