)]}'
{"zun/volume/driver.py":[{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"d23efe117a0da1c30da3c1c35fefe9d29cbc1a84","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def driver(*args, **kwargs):"},{"line_number":34,"context_line":"    name \u003d CONF.volume.driver"},{"line_number":35,"context_line":"    volume_driver \u003d stevedore_driver.DriverManager("},{"line_number":36,"context_line":"        \"zun.volume.driver\","},{"line_number":37,"context_line":"        name,"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f2f7f8d_ae581756","line":34,"updated":"2017-09-19 02:04:35.000000000","message":"Should add more logging to provide better logs, like:\n\nLOG.info(\"Loading volume driver \u0027%s\u0027\", driver)","commit_id":"c5da78e37def8b1988e163b355fc4a483e59c6a3"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"adbc9a1925611d1d6a901754ad01bf432d91dc68","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def driver(*args, **kwargs):"},{"line_number":34,"context_line":"    name \u003d CONF.volume.driver"},{"line_number":35,"context_line":"    volume_driver \u003d stevedore_driver.DriverManager("},{"line_number":36,"context_line":"        \"zun.volume.driver\","},{"line_number":37,"context_line":"        name,"}],"source_content_type":"text/x-python","patch_set":12,"id":"ff5d4b2f_01912e9a","line":34,"in_reply_to":"1f2f7f8d_ae581756","updated":"2017-09-19 15:44:45.000000000","message":"Done","commit_id":"c5da78e37def8b1988e163b355fc4a483e59c6a3"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"d23efe117a0da1c30da3c1c35fefe9d29cbc1a84","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        name,"},{"line_number":38,"context_line":"        invoke_on_load\u003dTrue,"},{"line_number":39,"context_line":"        invoke_args\u003dargs,"},{"line_number":40,"context_line":"        invoke_kwds\u003dkwargs).driver"},{"line_number":41,"context_line":"    return volume_driver"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1f2f7f8d_2e9e6707","line":40,"updated":"2017-09-19 02:04:35.000000000","message":"I think you should add a verify after load volume driver to make sure the volume_driver is an instance of class VolumeDriver.\n\nif not isinstance(volume_driver, VolumeDriver):\n    raise SomeException()","commit_id":"c5da78e37def8b1988e163b355fc4a483e59c6a3"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"adbc9a1925611d1d6a901754ad01bf432d91dc68","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        name,"},{"line_number":38,"context_line":"        invoke_on_load\u003dTrue,"},{"line_number":39,"context_line":"        invoke_args\u003dargs,"},{"line_number":40,"context_line":"        invoke_kwds\u003dkwargs).driver"},{"line_number":41,"context_line":"    return volume_driver"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ff5d4b2f_e18dfa7b","line":40,"in_reply_to":"1f2f7f8d_2e9e6707","updated":"2017-09-19 15:44:45.000000000","message":"Done","commit_id":"c5da78e37def8b1988e163b355fc4a483e59c6a3"},{"author":{"_account_id":22406,"name":"Kien Nguyen","email":"kiennt2609@gmail.com","username":"kiennt"},"change_message_id":"9dd5e929ef684c61626435b4012aa65339a9ce86","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def __init__(self, context, provider):"},{"line_number":52,"context_line":"        if provider not in self.supported_providers:"},{"line_number":53,"context_line":"            msg \u003d _(\"Unsupported volume provider \u0027%s\u0027\") % provider"},{"line_number":54,"context_line":"            raise exception.ZunException(msg)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        self.context \u003d context"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f2577a7_7d59088c","line":53,"range":{"start_line":53,"start_character":18,"end_line":53,"end_character":20},"updated":"2017-09-18 14:06:50.000000000","message":"You forgot to import it.","commit_id":"c5da78e37def8b1988e163b355fc4a483e59c6a3"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"adbc9a1925611d1d6a901754ad01bf432d91dc68","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def __init__(self, context, provider):"},{"line_number":52,"context_line":"        if provider not in self.supported_providers:"},{"line_number":53,"context_line":"            msg \u003d _(\"Unsupported volume provider \u0027%s\u0027\") % provider"},{"line_number":54,"context_line":"            raise exception.ZunException(msg)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        self.context \u003d context"}],"source_content_type":"text/x-python","patch_set":12,"id":"ff5d4b2f_61f7caf7","line":53,"range":{"start_line":53,"start_character":18,"end_line":53,"end_character":20},"in_reply_to":"5f2577a7_7d59088c","updated":"2017-09-19 15:44:45.000000000","message":"Done","commit_id":"c5da78e37def8b1988e163b355fc4a483e59c6a3"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"5be9b2cfad84901beb7f981cbc492f7efa02f713","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def __init__(self, context, provider):"},{"line_number":52,"context_line":"        if provider not in self.supported_providers:"},{"line_number":53,"context_line":"            msg \u003d _(\"Unsupported volume provider \u0027%s\u0027\") % provider"},{"line_number":54,"context_line":"            raise exception.ZunException(msg)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        self.context \u003d context"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f2f7f8d_ee5e1f44","line":53,"range":{"start_line":53,"start_character":18,"end_line":53,"end_character":20},"in_reply_to":"5f2577a7_7d59088c","updated":"2017-09-19 01:55:46.000000000","message":"Thanks for catching this. Will fix it.","commit_id":"c5da78e37def8b1988e163b355fc4a483e59c6a3"},{"author":{"_account_id":23055,"name":"miaohb","email":"miao.hongbao@zte.com.cn","username":"miaohb"},"change_message_id":"e912b109b9fca18f84b1607d15c9e3911c3ae056","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            self._mount_device(volume, devpath)"},{"line_number":84,"context_line":"        except Exception:"},{"line_number":85,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":86,"context_line":"                LOG.exception(\"Failed to mount device\")"},{"line_number":87,"context_line":"                try:"},{"line_number":88,"context_line":"                    cinder.detach_volume(volume)"},{"line_number":89,"context_line":"                except Exception:"}],"source_content_type":"text/x-python","patch_set":20,"id":"3f4b6375_716b9f1d","line":86,"range":{"start_line":86,"start_character":16,"end_line":86,"end_character":55},"updated":"2017-10-24 04:10:09.000000000","message":"Add volume_id and devpath to log?","commit_id":"c7369adbe53091a0715f3b639c168c968e6367ef"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"cf799382156d789171bd2c354edd6392c800e544","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            self._mount_device(volume, devpath)"},{"line_number":84,"context_line":"        except Exception:"},{"line_number":85,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":86,"context_line":"                LOG.exception(\"Failed to mount device\")"},{"line_number":87,"context_line":"                try:"},{"line_number":88,"context_line":"                    cinder.detach_volume(volume)"},{"line_number":89,"context_line":"                except Exception:"}],"source_content_type":"text/x-python","patch_set":20,"id":"3f4b6375_525e4876","line":86,"range":{"start_line":86,"start_character":16,"end_line":86,"end_character":55},"in_reply_to":"3f4b6375_716b9f1d","updated":"2017-10-24 22:00:02.000000000","message":"Will fix it if this patch has a revision.","commit_id":"c7369adbe53091a0715f3b639c168c968e6367ef"},{"author":{"_account_id":23055,"name":"miaohb","email":"miao.hongbao@zte.com.cn","username":"miaohb"},"change_message_id":"e912b109b9fca18f84b1607d15c9e3911c3ae056","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                try:"},{"line_number":88,"context_line":"                    cinder.detach_volume(volume)"},{"line_number":89,"context_line":"                except Exception:"},{"line_number":90,"context_line":"                    LOG.exception(\"Failed to detach volume\")"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _mount_device(self, volume, devpath):"},{"line_number":93,"context_line":"        mountpoint \u003d mount.get_mountpoint(volume.volume_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3f4b6375_517423fe","line":90,"range":{"start_line":90,"start_character":20,"end_line":90,"end_character":60},"updated":"2017-10-24 04:10:09.000000000","message":"ditto","commit_id":"c7369adbe53091a0715f3b639c168c968e6367ef"}]}
