)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"282f1c37b8572015edf040b5af139efe493fce47","unresolved":false,"context_lines":[{"line_number":16,"context_line":"pasted from GlusterFs with some adjustments, we tested"},{"line_number":17,"context_line":"using nosetests under tempest/api/volume/admin/test_volume_*.py"},{"line_number":18,"context_line":"and tempest/api/volume/test_volume_*.py, it could pass"},{"line_number":19,"context_line":"all tests except backup driver(Not well supported yet)."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Implements: blueprint driver-for-lustre"},{"line_number":22,"context_line":"Change-Id: I5498c72c3bbb21b3b2ffd0a6842bea76c829683b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a3c09a3_f45bb02c","line":19,"updated":"2017-01-12 21:35:23.000000000","message":"This should have a DocImpact tag","commit_id":"aa5c96037dc78b11d834f5c064b27b437424b119"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4ea6e6d05d9f1f2c20d159b9c4a6eb3cf363a719","unresolved":false,"context_lines":[{"line_number":17,"context_line":"using nosetests under tempest/api/volume/admin/test_volume_*.py"},{"line_number":18,"context_line":"and tempest/api/volume/test_volume_*.py, it could pass"},{"line_number":19,"context_line":"all tests except backup driver(Not well supported yet)."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Implements: blueprint driver-for-lustre"},{"line_number":22,"context_line":"Change-Id: I5498c72c3bbb21b3b2ffd0a6842bea76c829683b"},{"line_number":23,"context_line":"Signed-off-by: Li Xi \u003clixi@ddn.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a77a97e_beb85212","line":20,"updated":"2016-11-19 16:29:18.000000000","message":"Have you submitted a os-brick connector?  You need that for this driver to work.  Please add a link here if you have submitted one.","commit_id":"aa5c96037dc78b11d834f5c064b27b437424b119"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3209c41bfc2cae850fd12c304293e1cb99497425","unresolved":false,"context_lines":[{"line_number":15,"context_line":"for Lustre. The inital implement of Lustre cinder"},{"line_number":16,"context_line":"pasted from GlusterFs with some adjustments, we tested"},{"line_number":17,"context_line":"using nosetests under tempest/api/volume/admin/test_volume_*.py"},{"line_number":18,"context_line":"and tempest/api/volume/test_volume_*.py."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I5498c72c3bbb21b3b2ffd0a6842bea76c829683b"},{"line_number":21,"context_line":"Signed-off-by: Li Xi \u003clixi@ddn.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ff0f0b1f_9fecf78f","line":18,"updated":"2017-05-22 15:07:43.000000000","message":"In addition to a Cinder volume driver, this patch also adds a backup driver for Lustre.  Please describe that in the commit message.","commit_id":"01e88e1fd37577f59acf8ab4bea3552cea9972cf"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"98b4a5d06ebb44f68534eb9a5a21c448cc425255","unresolved":false,"context_lines":[{"line_number":15,"context_line":"for Lustre. The inital implement of Lustre cinder"},{"line_number":16,"context_line":"pasted from GlusterFs with some adjustments, we tested"},{"line_number":17,"context_line":"using nosetests under tempest/api/volume/admin/test_volume_*.py"},{"line_number":18,"context_line":"and tempest/api/volume/test_volume_*.py."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I5498c72c3bbb21b3b2ffd0a6842bea76c829683b"},{"line_number":21,"context_line":"Signed-off-by: Li Xi \u003clixi@ddn.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ff0f0b1f_946bb9b5","line":18,"in_reply_to":"ff0f0b1f_9fecf78f","updated":"2017-05-22 15:23:12.000000000","message":"The backup driver should be split into a separate patch.","commit_id":"01e88e1fd37577f59acf8ab4bea3552cea9972cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3209c41bfc2cae850fd12c304293e1cb99497425","unresolved":false,"context_lines":[{"line_number":16,"context_line":"pasted from GlusterFs with some adjustments, we tested"},{"line_number":17,"context_line":"using nosetests under tempest/api/volume/admin/test_volume_*.py"},{"line_number":18,"context_line":"and tempest/api/volume/test_volume_*.py."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I5498c72c3bbb21b3b2ffd0a6842bea76c829683b"},{"line_number":21,"context_line":"Signed-off-by: Li Xi \u003clixi@ddn.com\u003e"},{"line_number":22,"context_line":"Signed-off-by: Wang Shilong \u003cwshilong@ddn.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ff0f0b1f_ff1bf37d","line":19,"updated":"2017-05-22 15:07:43.000000000","message":"Please reference the lustre os-brick patch in the commit message:\n\nhttps://review.openstack.org/#/c/397473/","commit_id":"01e88e1fd37577f59acf8ab4bea3552cea9972cf"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"98b4a5d06ebb44f68534eb9a5a21c448cc425255","unresolved":false,"context_lines":[{"line_number":16,"context_line":"pasted from GlusterFs with some adjustments, we tested"},{"line_number":17,"context_line":"using nosetests under tempest/api/volume/admin/test_volume_*.py"},{"line_number":18,"context_line":"and tempest/api/volume/test_volume_*.py."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I5498c72c3bbb21b3b2ffd0a6842bea76c829683b"},{"line_number":21,"context_line":"Signed-off-by: Li Xi \u003clixi@ddn.com\u003e"},{"line_number":22,"context_line":"Signed-off-by: Wang Shilong \u003cwshilong@ddn.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ff0f0b1f_f4a1d5f9","line":19,"in_reply_to":"ff0f0b1f_ff1bf37d","updated":"2017-05-22 15:23:12.000000000","message":"It looks like there should be a\n\n    Depends-On: I7fc10ecac41ac68495b999c425613c19ed23a8d4\n\nfor tests to work here.","commit_id":"01e88e1fd37577f59acf8ab4bea3552cea9972cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3209c41bfc2cae850fd12c304293e1cb99497425","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I5498c72c3bbb21b3b2ffd0a6842bea76c829683b"},{"line_number":21,"context_line":"Signed-off-by: Li Xi \u003clixi@ddn.com\u003e"},{"line_number":22,"context_line":"Signed-off-by: Wang Shilong \u003cwshilong@ddn.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ff0f0b1f_bfafbb7b","line":22,"updated":"2017-05-22 15:07:43.000000000","message":"Please register a blueprint and reference it in the commit message.","commit_id":"01e88e1fd37577f59acf8ab4bea3552cea9972cf"}],"cinder/tests/unit/volume/drivers/test_lustre.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4ea6e6d05d9f1f2c20d159b9c4a6eb3cf363a719","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    def setUp(self):"},{"line_number":83,"context_line":"        super(LustreDriverTestCase, self).setUp()"},{"line_number":84,"context_line":"        self._configuration \u003d mock.MagicMock()"},{"line_number":85,"context_line":"        self._configuration.lustre_shares_config \u003d \\"},{"line_number":86,"context_line":"            self.TEST_SHARES_CONFIG_FILE"},{"line_number":87,"context_line":"        self._configuration.lustre_mount_point_base \u003d \\"},{"line_number":88,"context_line":"            self.TEST_MNT_POINT_BASE"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_9ebd5604","line":85,"updated":"2016-11-19 16:29:18.000000000","message":"Replace \\ with ()\n\nself._configuration.lustre_shares_config \u003d (\n    self.TEST_SHARES_CONFIG_FILE)","commit_id":"aa5c96037dc78b11d834f5c064b27b437424b119"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3209c41bfc2cae850fd12c304293e1cb99497425","unresolved":false,"context_lines":[{"line_number":1468,"context_line":"            info.file_format \u003d \u0027raw\u0027"},{"line_number":1469,"context_line":"            mock_qemu_img_info.return_value \u003d info"},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"            drv.backup_volume(ctxt, backup, mock.MagicMock())"},{"line_number":1472,"context_line":"            self.assertTrue(mock_backup_volume.called)"},{"line_number":1473,"context_line":""},{"line_number":1474,"context_line":"    def test_backup_volume_previous_snap(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_ff32d30f","line":1471,"range":{"start_line":1471,"start_character":12,"end_line":1471,"end_character":29},"updated":"2017-05-22 15:07:43.000000000","message":"backup_volume in driver.py is not used by the Cinder backup service.\n\nPlease add new unit tests under cinder/tests/unit/backup/drivers for the new backup driver you added.","commit_id":"01e88e1fd37577f59acf8ab4bea3552cea9972cf"}],"cinder/volume/drivers/lustre.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"9c51b3077b921c1f27deece550cc7dc01743f553","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"volume_opts \u003d ["},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027lustre_shares_config\u0027,"},{"line_number":41,"context_line":"               default\u003d\u0027/etc/cinder/lustre_shares\u0027,"},{"line_number":42,"context_line":"               help\u003d\u0027File with the list of available lustre shares\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027lustre_mount_point_base\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_9ed4b620","line":40,"updated":"2016-12-05 21:01:49.000000000","message":"A new driver being added should not use the \u003cdriver\u003e_shares_config external config file method of configuration.  This has effectively been deprecated.\n\nYou can use the \"nas_host\" and \"nas_share_path\" options instead.","commit_id":"aa5c96037dc78b11d834f5c064b27b437424b119"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3e69baa33496d6adc7ffbb472e84c30580c4603b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":70,"context_line":"    CI_WIKI_NAME \u003d \"Cinder_Jenkins\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def __init__(self, execute\u003dprocessutils.execute, *args, **kwargs):"},{"line_number":73,"context_line":"        self._remotefsclient \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_3665d4e0","line":70,"range":{"start_line":70,"start_character":20,"end_line":70,"end_character":34},"updated":"2016-11-16 14:43:54.000000000","message":"Needs to be updated to point to your actual CI information on the wiki.","commit_id":"aa5c96037dc78b11d834f5c064b27b437424b119"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4ea6e6d05d9f1f2c20d159b9c4a6eb3cf363a719","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    VERSION \u003d \u00271.0.0\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":70,"context_line":"    CI_WIKI_NAME \u003d \"Cinder_Jenkins\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def __init__(self, execute\u003dprocessutils.execute, *args, **kwargs):"},{"line_number":73,"context_line":"        self._remotefsclient \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_be8a1262","line":70,"range":{"start_line":70,"start_character":20,"end_line":70,"end_character":34},"in_reply_to":"7a77a97e_3665d4e0","updated":"2016-11-19 16:29:18.000000000","message":"Name it \"Lustre_CI\" instead of \"Cinder_Jenkins\".","commit_id":"aa5c96037dc78b11d834f5c064b27b437424b119"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4ea6e6d05d9f1f2c20d159b9c4a6eb3cf363a719","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # This is done with a qemu-img convert to raw/qcow2 from the snapshot"},{"line_number":206,"context_line":"        # qcow2."},{"line_number":207,"context_line":"        # \"\"\""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        LOG.debug(\"snapshot: %(snap)s, volume: %(vol)s, \""},{"line_number":210,"context_line":"                  \"volume_size: %(size)s\","}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_9ee63642","line":207,"updated":"2016-11-19 16:29:18.000000000","message":"Remove # as these are already docstrings.","commit_id":"aa5c96037dc78b11d834f5c064b27b437424b119"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4ea6e6d05d9f1f2c20d159b9c4a6eb3cf363a719","unresolved":false,"context_lines":[{"line_number":438,"context_line":"                      {\u0027share\u0027: lustre_share})"},{"line_number":439,"context_line":"            raise"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def backup_volume(self, context, backup, backup_service):"},{"line_number":442,"context_line":"        \"\"\"Create a new backup from an existing volume."},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        Allow a backup to occur only if no snapshots exist."}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_ded26e5b","line":441,"updated":"2016-11-19 16:29:18.000000000","message":"Remove this function.","commit_id":"aa5c96037dc78b11d834f5c064b27b437424b119"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"732d5d3eb9836db7fce4d039a495867d6f4af5b6","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"volume_opts \u003d ["},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027lustre_shares_config\u0027,"},{"line_number":41,"context_line":"               default\u003d\u0027/etc/cinder/lustre_shares\u0027,"},{"line_number":42,"context_line":"               help\u003d\u0027File with the list of available lustre shares\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027lustre_mount_point_base\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_a08084c0","line":40,"range":{"start_line":40,"start_character":15,"end_line":40,"end_character":38},"updated":"2017-04-20 18:37:32.000000000","message":"This option of listing shares in a file should not be added for new remotefs drivers.  It has been deprecated and will be removed from other drivers soon.  Just use nas_host/nas_share_path instead.\n\n(Already noted this on patch set 2.)","commit_id":"af3fec91d393ff8746e3144d600e9c0eb88cbf4f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"732d5d3eb9836db7fce4d039a495867d6f4af5b6","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"@interface.volumedriver"},{"line_number":53,"context_line":"class LustreDriver(remotefs_drv.RemoteFSSnapDriverDistributed,"},{"line_number":54,"context_line":"                      driver.ExtendVD):"},{"line_number":55,"context_line":"    \"\"\"Lustre based cinder driver."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    Creates file on Lustre share for using it as block device on hypervisor."}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_a0fd246f","line":54,"range":{"start_line":54,"start_character":19,"end_line":54,"end_character":22},"updated":"2017-04-20 18:37:32.000000000","message":"Indentation is off here.","commit_id":"af3fec91d393ff8746e3144d600e9c0eb88cbf4f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"732d5d3eb9836db7fce4d039a495867d6f4af5b6","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self.base \u003d getattr(self.configuration,"},{"line_number":78,"context_line":"                            \u0027lustre_mount_point_base\u0027,"},{"line_number":79,"context_line":"                            CONF.lustre_mount_point_base)"},{"line_number":80,"context_line":"        self._remotefsclient \u003d remotefs_brick.RemoteFsClient("},{"line_number":81,"context_line":"            \u0027lustre\u0027, root_helper, execute,"},{"line_number":82,"context_line":"            lustre_mount_point_base\u003dself.base)"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_40f8a079","line":80,"updated":"2017-04-20 18:37:32.000000000","message":"RemoteFsClient should be created in do_setup rather than __init__.\n\nJust set \"self._remotefsclient \u003d None\" in __init__().","commit_id":"af3fec91d393ff8746e3144d600e9c0eb88cbf4f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3a60e392c6262957170d1c3997265d0fd65ca9ac","unresolved":false,"context_lines":[{"line_number":325,"context_line":"    def _fallocate(self, path, size):"},{"line_number":326,"context_line":"        \"\"\"Creates a raw file of given size in GiB using fallocate.\"\"\""},{"line_number":327,"context_line":"        self._execute(\u0027fallocate\u0027, \u0027--length\u003d%sG\u0027 % size,"},{"line_number":328,"context_line":"                      path, run_as_root\u003dTrue)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def _do_create_volume(self, volume):"},{"line_number":331,"context_line":"        \"\"\"Create a volume on given lustre_share."}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_34686d85","line":328,"updated":"2017-05-22 15:27:26.000000000","message":"This will not work since fallocate was removed from volume.filters in https://review.openstack.org/#/c/461077/ .","commit_id":"01e88e1fd37577f59acf8ab4bea3552cea9972cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3209c41bfc2cae850fd12c304293e1cb99497425","unresolved":false,"context_lines":[{"line_number":433,"context_line":"                      {\u0027share\u0027: lustre_share})"},{"line_number":434,"context_line":"            raise"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"    def backup_volume(self, context, backup, backup_service):"},{"line_number":437,"context_line":"        \"\"\"Create a new backup from an existing volume."},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        Allow a backup to occur only if no snapshots exist."}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_d154a300","line":436,"range":{"start_line":436,"start_character":8,"end_line":436,"end_character":21},"updated":"2017-05-22 15:07:43.000000000","message":"This function is no longer needed.  Please remove it.  Cinder backup service does not call this function any more.","commit_id":"01e88e1fd37577f59acf8ab4bea3552cea9972cf"}],"releasenotes/notes/lustre_cinder_driver-ba69908e9e44ed90.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3e69baa33496d6adc7ffbb472e84c30580c4603b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added backend driver for Lustre filesystem"},{"line_number":4,"context_line":"issues:"},{"line_number":5,"context_line":"  - backup function is not well supported yet."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7a77a97e_76310cec","line":5,"range":{"start_line":4,"start_character":0,"end_line":5,"end_character":46},"updated":"2016-11-16 14:43:54.000000000","message":"Remove this.","commit_id":"aa5c96037dc78b11d834f5c064b27b437424b119"}]}
