)]}'
{"devstack/README.md":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"77babaa3ac8710dfa915a9bcbbc4a0e13d9fb3bc","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    enable_plugin cinderlib https://git.openstack.org/openstack/cinderlib stable/stein"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The cinderlib DevStack plugin will install cinderlib from Git by default, but"},{"line_number":24,"context_line":"it can installed from PyPi using the `CINDERLIB_FROM_GIT` configuration option. "},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    CINDERLIB_FROM_GIT\u003dFalse"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":1,"id":"5fc1f717_b068f21c","line":24,"range":{"start_line":24,"start_character":7,"end_line":24,"end_character":16},"updated":"2019-03-13 17:10:03.000000000","message":"can be installed","commit_id":"e3f0cfb4237ec3fde9aab0d6e50c660b6ad999f1"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"820be53feb07980dbf8cb0d8799fdcea12c14b50","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    enable_plugin cinderlib https://git.openstack.org/openstack/cinderlib stable/stein"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The cinderlib DevStack plugin will install cinderlib from Git by default, but"},{"line_number":24,"context_line":"it can installed from PyPi using the `CINDERLIB_FROM_GIT` configuration option. "},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    CINDERLIB_FROM_GIT\u003dFalse"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":1,"id":"5fc1f717_30cf2257","line":24,"updated":"2019-03-13 17:03:22.000000000","message":"the dreaded whitespace!!!!!","commit_id":"e3f0cfb4237ec3fde9aab0d6e50c660b6ad999f1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4fedd45c6c2372e991de89cf974afe3c01d08dd8","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    enable_plugin cinderlib https://git.openstack.org/openstack/cinderlib stable/stein"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The cinderlib DevStack plugin will install cinderlib from Git by default, but"},{"line_number":24,"context_line":"it can installed from PyPi using the `CINDERLIB_FROM_GIT` configuration option. "},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    CINDERLIB_FROM_GIT\u003dFalse"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":1,"id":"5fc1f717_fb989b75","line":24,"in_reply_to":"5fc1f717_30cf2257","updated":"2019-03-13 17:40:25.000000000","message":"It\u0027s weird, because I have it configured to automatically remove them...  Well, thanks for catching it. :-)","commit_id":"e3f0cfb4237ec3fde9aab0d6e50c660b6ad999f1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4fedd45c6c2372e991de89cf974afe3c01d08dd8","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    enable_plugin cinderlib https://git.openstack.org/openstack/cinderlib stable/stein"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The cinderlib DevStack plugin will install cinderlib from Git by default, but"},{"line_number":24,"context_line":"it can installed from PyPi using the `CINDERLIB_FROM_GIT` configuration option. "},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    CINDERLIB_FROM_GIT\u003dFalse"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":1,"id":"5fc1f717_fb717b45","line":24,"range":{"start_line":24,"start_character":7,"end_line":24,"end_character":16},"in_reply_to":"5fc1f717_b068f21c","updated":"2019-03-13 17:40:25.000000000","message":"changing it.","commit_id":"e3f0cfb4237ec3fde9aab0d6e50c660b6ad999f1"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"81626026026fcc24f36edebbb476a8f0851e91ae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"This directory contains the cinderlib DevStack plugin."},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"To configure cinderlib with DevStack, you will need to enable this plugin by"},{"line_number":4,"context_line":"adding one line to the [[local|localrc]] section of your local.conf file."}],"source_content_type":"text/x-gfm","patch_set":6,"id":"5fc1f717_5fca724f","line":1,"updated":"2019-03-20 17:06:47.000000000","message":"We typically use RST files in OpenStack. Is there a reason for making this one markdown?","commit_id":"c41e08b186e9935b1454019e2fc4a65905eae9f3"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3aa89bff8c74096d5f1c660df329811aee4fe4dc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"This directory contains the cinderlib DevStack plugin."},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"To configure cinderlib with DevStack, you will need to enable this plugin by"},{"line_number":4,"context_line":"adding one line to the [[local|localrc]] section of your local.conf file."}],"source_content_type":"text/x-gfm","patch_set":6,"id":"5fc1f717_bf6835ba","line":1,"in_reply_to":"5fc1f717_5fca724f","updated":"2019-03-20 17:20:48.000000000","message":"I looked at a couple of plugins (ceph, barbican) and they had it as markdown, so I thought \"when in Rome...\".  But I think it would make sense to change it to an RST file for consistency with all the other Cinder team projects.","commit_id":"c41e08b186e9935b1454019e2fc4a65905eae9f3"}],"devstack/README.rst":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"f2be51c2c27f396f30c59ce875fd4db75dd254f0","unresolved":false,"context_lines":[{"line_number":27,"context_line":"it can be installed from PyPi using the ``CINDERLIB_FROM_GIT`` configuration"},{"line_number":28,"context_line":"option::"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    CINDERLIB_FROM_GIT\u003dFalse"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"The plugin will also generate the code equivalent to the deployed Cinder\u0027s"},{"line_number":33,"context_line":"configuration in ``$CINDERLIB_SAMPLE_DIR/cinderlib.py`` which defaults to the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5fc1f717_c704cb17","line":30,"updated":"2019-03-27 12:38:20.000000000","message":"so you still have to provide the giturl even though you specify from_git\u003dFalse (meaning install from pypi) ?","commit_id":"37c085fd6c63f01a6891be4cc55124eee90bed68"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"47b376f273e405e052f3fc9a0e4edb1950ed0993","unresolved":false,"context_lines":[{"line_number":27,"context_line":"it can be installed from PyPi using the ``CINDERLIB_FROM_GIT`` configuration"},{"line_number":28,"context_line":"option::"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    CINDERLIB_FROM_GIT\u003dFalse"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"The plugin will also generate the code equivalent to the deployed Cinder\u0027s"},{"line_number":33,"context_line":"configuration in ``$CINDERLIB_SAMPLE_DIR/cinderlib.py`` which defaults to the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5fc1f717_f2a5f0b5","line":30,"in_reply_to":"5fc1f717_c704cb17","updated":"2019-03-27 16:06:42.000000000","message":"Yes, because here devstack pulls the code to use the devstack part, so it needs the location, then the plugin does the installation from the repo or PyPi.","commit_id":"37c085fd6c63f01a6891be4cc55124eee90bed68"}],"devstack/plugin.sh":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"820be53feb07980dbf8cb0d8799fdcea12c14b50","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        sudo ${GITDIR[\"cinderlib\"]}/tools/cinder-cfg-to-python.py $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":18,"context_line":"    else"},{"line_number":19,"context_line":"        # We need to download the script since it\u0027s not part of the pypi package"},{"line_number":20,"context_line":"        curl -s https://git.openstack.org/cgit/openstack/cinderlib/plain/tools/cinder-cfg-to-python.py | sudo python - $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":21,"context_line":"    fi"},{"line_number":22,"context_line":"}"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"5fc1f717_d0f01e94","line":20,"updated":"2019-03-13 17:03:22.000000000","message":"will this always pull master?","commit_id":"e3f0cfb4237ec3fde9aab0d6e50c660b6ad999f1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e52c18fea5ca1ceb46b4d3339acb5e2d8bab8e81","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        sudo ${GITDIR[\"cinderlib\"]}/tools/cinder-cfg-to-python.py $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":18,"context_line":"    else"},{"line_number":19,"context_line":"        # We need to download the script since it\u0027s not part of the pypi package"},{"line_number":20,"context_line":"        curl -s https://git.openstack.org/cgit/openstack/cinderlib/plain/tools/cinder-cfg-to-python.py | sudo python - $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":21,"context_line":"    fi"},{"line_number":22,"context_line":"}"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"5fc1f717_783a63cc","line":20,"in_reply_to":"5fc1f717_2aafaa7d","updated":"2019-03-14 08:54:49.000000000","message":"Reasonable concern, indeed, but I think we are safe.\n\nThe code basically calls `cinderlib.tests.functional.cinder_to_yaml.convert` of the installed cinderlib package, and then converts from the resulting yaml data to Python in a mostly opaque way.\n\nThis means that even if we are pulling this script from master, the code doing the heavy lifting would be the one we installed from PyPi, so it will be the correct one for the cinderlib version we have installed.\n\nThe only requirement from the script is that `convert` always returns `backends` and in each backend it has `volume_backend_name`, which I think are safe assumptions.","commit_id":"e3f0cfb4237ec3fde9aab0d6e50c660b6ad999f1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"61b32edebe840da26aceafee3aea4f318224aec9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        sudo ${GITDIR[\"cinderlib\"]}/tools/cinder-cfg-to-python.py $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":18,"context_line":"    else"},{"line_number":19,"context_line":"        # We need to download the script since it\u0027s not part of the pypi package"},{"line_number":20,"context_line":"        curl -s https://git.openstack.org/cgit/openstack/cinderlib/plain/tools/cinder-cfg-to-python.py | sudo python - $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":21,"context_line":"    fi"},{"line_number":22,"context_line":"}"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"5fc1f717_c7f60b64","line":20,"in_reply_to":"5fc1f717_783a63cc","updated":"2019-03-14 15:48:20.000000000","message":"In the last patch I have moved the code to be included in the package and to be a shell script entrypoint, so we no longer need to make any distinction between downloading from PyPi and from a repo.  We will run whatever we have installed.","commit_id":"e3f0cfb4237ec3fde9aab0d6e50c660b6ad999f1"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"4a2b1dcd9fbabe70b4f2a4c3f13bcab2ca3533a4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        sudo ${GITDIR[\"cinderlib\"]}/tools/cinder-cfg-to-python.py $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":18,"context_line":"    else"},{"line_number":19,"context_line":"        # We need to download the script since it\u0027s not part of the pypi package"},{"line_number":20,"context_line":"        curl -s https://git.openstack.org/cgit/openstack/cinderlib/plain/tools/cinder-cfg-to-python.py | sudo python - $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":21,"context_line":"    fi"},{"line_number":22,"context_line":"}"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"5fc1f717_2aafaa7d","line":20,"in_reply_to":"5fc1f717_9b071783","updated":"2019-03-13 18:58:25.000000000","message":"I\u0027m just worried a little bit that the cinder-cfg-to-python.py will always have to work for older versions of cinderlib.","commit_id":"e3f0cfb4237ec3fde9aab0d6e50c660b6ad999f1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4fedd45c6c2372e991de89cf974afe3c01d08dd8","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        sudo ${GITDIR[\"cinderlib\"]}/tools/cinder-cfg-to-python.py $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":18,"context_line":"    else"},{"line_number":19,"context_line":"        # We need to download the script since it\u0027s not part of the pypi package"},{"line_number":20,"context_line":"        curl -s https://git.openstack.org/cgit/openstack/cinderlib/plain/tools/cinder-cfg-to-python.py | sudo python - $CINDER_CONF $CINDERLIB_SAMPLE"},{"line_number":21,"context_line":"    fi"},{"line_number":22,"context_line":"}"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"5fc1f717_9b071783","line":20,"in_reply_to":"5fc1f717_d0f01e94","updated":"2019-03-13 17:40:25.000000000","message":"My idea was to always pull from master because as long as we don\u0027t rename it or anything it should have all the latest fixes (if there is ever one), and there\u0027s nothing relying on this configuration that is generated.\n\nIt is just to help people use cinderlib with whatever backends they have configured.\n\nFor the default LVM I ended up with:\n\n  import cinderlib as cl\n  \n  lvmdriver_1 \u003d cl.Backend(volume_clear\u003d\"zero\", lvm_type\u003d\"auto\", volume_backend_name\u003d\"lvmdriver-1\", target_helper\u003d\"lioadm\", volume_driver\u003d\"cinder.volume.drivers.lvm.LVMVolumeDriver\", image_volume_cache_enabled\u003dTrue, volume_group\u003d\"stack-volumes-lvmdriver-1\")\n\n\nAm I missing some case where pulling from master could be a problem?  Or were you making sure I didn\u0027t forget to take into account the Cinder branch to pull the corresponding script?","commit_id":"e3f0cfb4237ec3fde9aab0d6e50c660b6ad999f1"}],"setup.cfg":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bb60b92868edfb99497389a0d069471da312ad7a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    db \u003d cinderlib.persistence.dbms:DBPersistence"},{"line_number":40,"context_line":"    memory_db \u003d cinderlib.persistence.dbms:MemoryDBPersistence"},{"line_number":41,"context_line":"console_scripts \u003d"},{"line_number":42,"context_line":"    cinder-cfg-to-cinderlib-code \u003d cinderlib.cmd.cinder_cfg_to_python:main"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"[egg_info]"},{"line_number":45,"context_line":"tag_build \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"5fc1f717_a55024d6","line":42,"updated":"2019-03-20 18:51:33.000000000","message":"IMO, it\u0027s better to have a shorter name","commit_id":"37c085fd6c63f01a6891be4cc55124eee90bed68"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"58d4cbf65547b5c2c81e5d931be0eb6536dfb815","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    db \u003d cinderlib.persistence.dbms:DBPersistence"},{"line_number":40,"context_line":"    memory_db \u003d cinderlib.persistence.dbms:MemoryDBPersistence"},{"line_number":41,"context_line":"console_scripts \u003d"},{"line_number":42,"context_line":"    cinder-cfg-to-cinderlib-code \u003d cinderlib.cmd.cinder_cfg_to_python:main"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"[egg_info]"},{"line_number":45,"context_line":"tag_build \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"5fc1f717_d5a1e2aa","line":42,"in_reply_to":"5fc1f717_a55024d6","updated":"2019-03-26 11:42:51.000000000","message":"Yeah, I tried, but couldn\u0027t come up with a good one.  Suggestions are welcome!  :-)","commit_id":"37c085fd6c63f01a6891be4cc55124eee90bed68"}]}
