)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"9470589ebb97e880b348da705862f866db40cbd1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The current sheepdog driver has two bugs when deciding whether"},{"line_number":10,"context_line":"an image is cloneable:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"1.It use the addr in image_location url to find the image volume,"},{"line_number":13,"context_line":"if the image volume is found, then considers the image is cloneable,"},{"line_number":14,"context_line":"or considers it is not cloneable. Here has a problem, if cinder and"},{"line_number":15,"context_line":"glance use different sheepdog cluster, this may lead the image is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dada55a8_db958587","line":12,"range":{"start_line":12,"start_character":5,"end_line":12,"end_character":8},"updated":"2016-07-20 12:11:57.000000000","message":"uses","commit_id":"e1cbf8d9ac04191d0a6da1e6c1426233dae72453"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"9470589ebb97e880b348da705862f866db40cbd1","unresolved":false,"context_lines":[{"line_number":14,"context_line":"or considers it is not cloneable. Here has a problem, if cinder and"},{"line_number":15,"context_line":"glance use different sheepdog cluster, this may lead the image is"},{"line_number":16,"context_line":"always cloneable. In fact, it should use addr of cinder backend to"},{"line_number":17,"context_line":"find the image volume ,not the glance backend."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"2.The driver use \u0027dog vdi list volumename\u0027 command to find a volume,"},{"line_number":20,"context_line":"if the command don\u0027t return an err, then considers the volume already"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dada55a8_9bcdcdb9","line":17,"range":{"start_line":17,"start_character":21,"end_line":17,"end_character":23},"updated":"2016-07-20 12:11:57.000000000","message":"\u0027, \u0027","commit_id":"e1cbf8d9ac04191d0a6da1e6c1426233dae72453"}],"cinder/volume/drivers/sheepdog.py":[{"author":{"_account_id":20160,"name":"haobing1","email":"bing.hao@easystack.cn","username":"haobing"},"change_message_id":"b47ca864038dd4987087bff782b948c849bd17f9","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        return _stdout"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    def get_vdi_info(self, vdiname):"},{"line_number":317,"context_line":"        # Get the info of the specified vdi"},{"line_number":318,"context_line":"        try:"},{"line_number":319,"context_line":"            (_stdout, _stderr) \u003d self._run_dog(\u0027vdi\u0027, \u0027list\u0027, vdiname,  \u0027-r\u0027)"},{"line_number":320,"context_line":"        except exception.SheepdogCmdError as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_bbcff127","line":317,"range":{"start_line":317,"start_character":8,"end_line":317,"end_character":43},"updated":"2016-07-20 12:18:37.000000000","message":"we should use \"\"\"Get the info of the specified vdi.\"\"\"","commit_id":"e1cbf8d9ac04191d0a6da1e6c1426233dae72453"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"3c97e5bebae23625b8d7ae892a4c58944e1905a7","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        # Get info of the specified vdi."},{"line_number":318,"context_line":"        try:"},{"line_number":319,"context_line":"            (_stdout, _stderr) \u003d self._run_dog(\u0027vdi\u0027, \u0027list\u0027, vdiname,  \u0027-r\u0027)"},{"line_number":320,"context_line":"        except exception.SheepdogCmdError as e:"},{"line_number":321,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":322,"context_line":"                LOG.error(_LE(\u0027Failed to get vdi info. \u0027"},{"line_number":323,"context_line":"                              \u0027vdi: %(vdiname)s\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"dada55a8_ed599436","line":320,"range":{"start_line":320,"start_character":45,"end_line":320,"end_character":46},"updated":"2016-07-20 19:01:45.000000000","message":"local variable \u0027e\u0027 is assigned to but never used","commit_id":"16d7724645ab04de5bcec1c2adea181f350604c8"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f849b312094599bd58495ebad8ae90affae42c79","unresolved":false,"context_lines":[{"line_number":479,"context_line":""},{"line_number":480,"context_line":"        stdout \u003d self.client.get_vdi_info(name)"},{"line_number":481,"context_line":"        # Dog command return 0 and has a null output if the volume not exists"},{"line_number":482,"context_line":"        if stdout:"},{"line_number":483,"context_line":"            return True"},{"line_number":484,"context_line":"        else:"},{"line_number":485,"context_line":"            LOG.debug(\"Can not find vdi %(image)s, is not cloneable\","}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_80750ccc","line":482,"updated":"2016-07-21 15:59:58.000000000","message":"If you\u0027re potentially expecting a 0 here, don\u0027t you want to evaluate this differently here? if 0 would be false here.","commit_id":"1cf6c45b39e65573bf24547e7a831eebdfee2cf6"},{"author":{"_account_id":18967,"name":"zhangsong","email":"zhangsong@cmss.chinamobile.com","username":"zhangsong"},"change_message_id":"c70eddd9941cb3359e42484699195dfd15e7633c","unresolved":false,"context_lines":[{"line_number":479,"context_line":""},{"line_number":480,"context_line":"        stdout \u003d self.client.get_vdi_info(name)"},{"line_number":481,"context_line":"        # Dog command return 0 and has a null output if the volume not exists"},{"line_number":482,"context_line":"        if stdout:"},{"line_number":483,"context_line":"            return True"},{"line_number":484,"context_line":"        else:"},{"line_number":485,"context_line":"            LOG.debug(\"Can not find vdi %(image)s, is not cloneable\","}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_8a3350f5","line":482,"in_reply_to":"dada55a8_80750ccc","updated":"2016-07-22 02:30:44.000000000","message":"The return code is 0 here, or it would raise an err at self.client.get_vdi_info method.\nIn this case, if the stdout is null, this means the volume is not existent, and if the stdout is not null, it would output the info of the volume, it means the volume is already existent.","commit_id":"1cf6c45b39e65573bf24547e7a831eebdfee2cf6"}]}
