)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"d5fc7a55535edc60ca4a51b5532aefb5e8400d8a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Teruaki Ishizaki \u003cishizaki.teruaki@lab.ntt.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-23 16:46:35 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Sheepdog: improve snapshot and clone operation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes SheepdogDriver Class methods to use"},{"line_number":10,"context_line":"SheepdogClient Class method for detailed Error logs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a4dcd0f_00345fdb","line":7,"updated":"2015-08-06 18:51:16.000000000","message":"Capitalize \"improve\".","commit_id":"3f29e2c96293cd7bd416e5a41cd9cbe675c90b7b"},{"author":{"_account_id":17444,"name":"Jay.Shen","email":"shenhong09@huawei.com","username":"Jay.Shen"},"change_message_id":"60bc2908fe3564aadc034de5560eb58b8287fbc2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Sheepdog: improve snapshot and clone operation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes SheepdogDriver Class methods to use"},{"line_number":10,"context_line":"SheepdogClient Class method for detailed Error logs."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"We change the following SheepdogDriver methods."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3a50d1a3_16b3930b","line":10,"updated":"2015-08-02 04:27:43.000000000","message":"method--\u003emethods","commit_id":"3f29e2c96293cd7bd416e5a41cd9cbe675c90b7b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"df857555b087ae5a5bd5eae1fca0e7cfd9c55633","unresolved":false,"context_lines":[{"line_number":24,"context_line":"more easily using those logs."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: Ib126088e4100739db013b21970051af1f29790d5"},{"line_number":27,"context_line":"Depends-On: I54d320475c143c5f96d70abd7314320ef79f55bf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a4dcd0f_2b6765b8","line":27,"updated":"2015-08-17 00:47:03.000000000","message":"Please only use Depends-on for cross-repo dependencies. For dependencies within the same repo just branch off of the branch.","commit_id":"3f29e2c96293cd7bd416e5a41cd9cbe675c90b7b"}],"cinder/tests/unit/test_sheepdog.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"df857555b087ae5a5bd5eae1fca0e7cfd9c55633","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                 \u0027src_vdiname\u0027: src_vdiname, \u0027src_snapname\u0027: src_snapname},"},{"line_number":100,"context_line":"                \u0027sheepdog:%(addr)s:%(port)s:%(dst_vdiname)s\u0027 %"},{"line_number":101,"context_line":"                {\u0027addr\u0027: SHEEP_ADDR, \u0027port\u0027: str(SHEEP_PORT),"},{"line_number":102,"context_line":"                 \u0027dst_vdiname\u0027: dst_vdiname}, \u0027%sG\u0027 % str(size))"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def cmd_dog_vdi_resize(self, name, size):"},{"line_number":105,"context_line":"        return (\u0027env\u0027, \u0027LC_ALL\u003dC\u0027, \u0027LANG\u003dC\u0027, \u0027dog\u0027, \u0027vdi\u0027, \u0027resize\u0027, name,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_4bf991c7","line":102,"updated":"2015-08-17 00:47:03.000000000","message":"No need to cast as a string to format into a string.","commit_id":"3f29e2c96293cd7bd416e5a41cd9cbe675c90b7b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"df857555b087ae5a5bd5eae1fca0e7cfd9c55633","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def cmd_dog_vdi_resize(self, name, size):"},{"line_number":105,"context_line":"        return (\u0027env\u0027, \u0027LC_ALL\u003dC\u0027, \u0027LANG\u003dC\u0027, \u0027dog\u0027, \u0027vdi\u0027, \u0027resize\u0027, name,"},{"line_number":106,"context_line":"                size, \u0027-a\u0027, SHEEP_ADDR, \u0027-p\u0027, str(SHEEP_PORT))"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    CMD_DOG_CLUSTER_INFO \u003d (\u0027env\u0027, \u0027LC_ALL\u003dC\u0027, \u0027LANG\u003dC\u0027, \u0027dog\u0027, \u0027cluster\u0027,"},{"line_number":109,"context_line":"                            \u0027info\u0027, \u0027-a\u0027, SHEEP_ADDR, \u0027-p\u0027, str(SHEEP_PORT))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_2bfe85ae","line":106,"updated":"2015-08-17 00:47:03.000000000","message":"You\u0027re converting SHEEP_PORT to a string everywhere it is used. Just change this constant to be a string instead.","commit_id":"3f29e2c96293cd7bd416e5a41cd9cbe675c90b7b"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"2bc02d9b5d0dd2bb575fd186bc60e6d354371514","unresolved":false,"context_lines":[{"line_number":439,"context_line":""},{"line_number":440,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027)"},{"line_number":441,"context_line":"    def test_run_qemu_img_success(self, fake_execute):"},{"line_number":442,"context_line":"        # multiple part of args mathches the prefix and"},{"line_number":443,"context_line":"        # volume name is matched the prefix unfortunately"},{"line_number":444,"context_line":"        expected_cmd \u003d (\u0027env\u0027, \u0027LC_ALL\u003dC\u0027, \u0027LANG\u003dC\u0027,"},{"line_number":445,"context_line":"                        \u0027qemu-img\u0027, \u0027create\u0027, \u0027-b\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_b29ecd61","line":442,"updated":"2015-09-02 07:46:03.000000000","message":"s/mathches/mathch","commit_id":"1d9e4116ebe27777360765324648699fc2e5cc2f"}],"cinder/volume/drivers/sheepdog.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"966e5984243e9666a5e5263b40f9f996e2ae9f9a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                else:"},{"line_number":127,"context_line":"                    msg \u003d _LE(\u0027OSError: command is %(cmd)s.\u0027)"},{"line_number":128,"context_line":"                msg \u003d msg % {\u0027cmd\u0027: tuple(cmd)}"},{"line_number":129,"context_line":"                LOG.error(msg)"},{"line_number":130,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":131,"context_line":"            raise exception.SheepdogCmdError("},{"line_number":132,"context_line":"                cmd\u003de.cmd,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_1e697ebe","line":129,"updated":"2015-07-07 15:05:27.000000000","message":"Should be \nLOG.error(msg, {\u0027cmd\u0027: tuple(cmd)})","commit_id":"800afd4b8044ae6c9e1d0c7e2be697bd9d17e206"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"95f292983e8e953dbbbc553d479b6370689fe40a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                else:"},{"line_number":127,"context_line":"                    msg \u003d _LE(\u0027OSError: command is %(cmd)s.\u0027)"},{"line_number":128,"context_line":"                msg \u003d msg % {\u0027cmd\u0027: tuple(cmd)}"},{"line_number":129,"context_line":"                LOG.error(msg)"},{"line_number":130,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":131,"context_line":"            raise exception.SheepdogCmdError("},{"line_number":132,"context_line":"                cmd\u003de.cmd,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_24ad3a84","line":129,"in_reply_to":"ba3cc151_1e697ebe","updated":"2015-07-08 10:55:08.000000000","message":"I\u0027ll change it","commit_id":"800afd4b8044ae6c9e1d0c7e2be697bd9d17e206"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"966e5984243e9666a5e5263b40f9f996e2ae9f9a","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            elif stderr.rstrip().endswith(self.DOG_RESP_VDI_NOT_FOUND):"},{"line_number":234,"context_line":"                LOG.warning(_LW(\u0027Volume \"%s\" not found.\u0027), vdiname)"},{"line_number":235,"context_line":"            elif stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":236,"context_line":"                # XXX(tishizaki)"},{"line_number":237,"context_line":"                # Dog command does not return error_code although"},{"line_number":238,"context_line":"                # dog command cannot connect to sheep process."},{"line_number":239,"context_line":"                # That is a Sheepdog\u0027s bug."}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_9e826e51","line":236,"updated":"2015-07-07 15:05:27.000000000","message":"What does \u0027XXX\u0027 means?","commit_id":"800afd4b8044ae6c9e1d0c7e2be697bd9d17e206"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"95f292983e8e953dbbbc553d479b6370689fe40a","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            elif stderr.rstrip().endswith(self.DOG_RESP_VDI_NOT_FOUND):"},{"line_number":234,"context_line":"                LOG.warning(_LW(\u0027Volume \"%s\" not found.\u0027), vdiname)"},{"line_number":235,"context_line":"            elif stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":236,"context_line":"                # XXX(tishizaki)"},{"line_number":237,"context_line":"                # Dog command does not return error_code although"},{"line_number":238,"context_line":"                # dog command cannot connect to sheep process."},{"line_number":239,"context_line":"                # That is a Sheepdog\u0027s bug."}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_2441ba63","line":236,"in_reply_to":"ba3cc151_9e826e51","updated":"2015-07-08 10:55:08.000000000","message":"I want to notice developers about this code.\n\nI\u0027ll change XXX to NOTE","commit_id":"800afd4b8044ae6c9e1d0c7e2be697bd9d17e206"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"fd39317b4f5380b3d3f1f479dc42538565e2053c","unresolved":false,"context_lines":[{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":541,"context_line":"        \"\"\"Create a sheepdog snapshot.\"\"\""},{"line_number":542,"context_line":"        self.client.create_snapshot(snapshot[\u0027volume_name\u0027], snapshot[\u0027name\u0027])"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":545,"context_line":"        \"\"\"Delete a sheepdog snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_c6ec9df5","line":542,"updated":"2015-07-07 21:26:04.000000000","message":"snapshot is an oslo_versionedobject.  Could you use snapshot.volume_name here instead?  Eventually, all drivers have to switch over to oslo_versionedobject, so it will have to be done now or later.","commit_id":"800afd4b8044ae6c9e1d0c7e2be697bd9d17e206"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"95f292983e8e953dbbbc553d479b6370689fe40a","unresolved":false,"context_lines":[{"line_number":539,"context_line":""},{"line_number":540,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":541,"context_line":"        \"\"\"Create a sheepdog snapshot.\"\"\""},{"line_number":542,"context_line":"        self.client.create_snapshot(snapshot[\u0027volume_name\u0027], snapshot[\u0027name\u0027])"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":545,"context_line":"        \"\"\"Delete a sheepdog snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_01fa5d75","line":542,"in_reply_to":"ba3cc151_c6ec9df5","updated":"2015-07-08 10:55:08.000000000","message":"I\u0027ll change them and the unittest codes","commit_id":"800afd4b8044ae6c9e1d0c7e2be697bd9d17e206"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"fd39317b4f5380b3d3f1f479dc42538565e2053c","unresolved":false,"context_lines":[{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":545,"context_line":"        \"\"\"Delete a sheepdog snapshot.\"\"\""},{"line_number":546,"context_line":"        self.client.delete_snapshot(snapshot[\u0027volume_name\u0027], snapshot[\u0027name\u0027])"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"    def local_path(self, volume):"},{"line_number":549,"context_line":"        return \"sheepdog:%s\" % volume[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_66ba71e3","line":546,"updated":"2015-07-07 21:26:04.000000000","message":"Ditto","commit_id":"800afd4b8044ae6c9e1d0c7e2be697bd9d17e206"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"95f292983e8e953dbbbc553d479b6370689fe40a","unresolved":false,"context_lines":[{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":545,"context_line":"        \"\"\"Delete a sheepdog snapshot.\"\"\""},{"line_number":546,"context_line":"        self.client.delete_snapshot(snapshot[\u0027volume_name\u0027], snapshot[\u0027name\u0027])"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"    def local_path(self, volume):"},{"line_number":549,"context_line":"        return \"sheepdog:%s\" % volume[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_c1ef95af","line":546,"in_reply_to":"ba3cc151_66ba71e3","updated":"2015-07-08 10:55:08.000000000","message":"Same.","commit_id":"800afd4b8044ae6c9e1d0c7e2be697bd9d17e206"},{"author":{"_account_id":11275,"name":"Abhinav Agrawal","email":"abhinav.sgsits@gmail.com","username":"abhinav.sgsits"},"change_message_id":"cf9833b1a7eeac15c9ad7817d30d195bf19eb220","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                                      \u0027Connection refused\u0027)"},{"line_number":77,"context_line":"    QEMU_IMG_RESP_ALREADY_EXISTS \u003d \u0027: VDI exists already\u0027"},{"line_number":78,"context_line":"    QEMU_IMG_RESP_SNAPSHOT_NOT_FOUND \u003d \u0027Failed to find the requested tag\u0027"},{"line_number":79,"context_line":"    QEMU_IMG_RESP_VDI_NOT_FOUND \u003d \u0027No vdi found\u0027"},{"line_number":80,"context_line":"    QEMU_IMG_RESP_SIZE_TOO_LARGE \u003d \u0027An image is too large.\u0027"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def __init__(self, addr, port):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_a17d1ee9","line":79,"updated":"2015-07-17 04:47:57.000000000","message":"vdi should be VDI","commit_id":"24ed84ddab890a853df22b45705b8508f0a3a3dc"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"86f7e847a960aada40fafdd2f0767cd64f9eb1fb","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    QEMU_IMG_RESP_ALREADY_EXISTS \u003d \u0027: VDI exists already\u0027"},{"line_number":78,"context_line":"    QEMU_IMG_RESP_SNAPSHOT_NOT_FOUND \u003d \u0027Failed to find the requested tag\u0027"},{"line_number":79,"context_line":"    QEMU_IMG_RESP_VDI_NOT_FOUND \u003d \u0027No vdi found\u0027"},{"line_number":80,"context_line":"    QEMU_IMG_RESP_SIZE_TOO_LARGE \u003d \u0027An image is too large.\u0027"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def __init__(self, addr, port):"},{"line_number":83,"context_line":"        self.addr \u003d addr"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_147688d8","line":80,"updated":"2015-07-31 12:47:33.000000000","message":"Should there be \u0027.\u0027 at the end of all of these? Or is there some convention that these messages are following specific to the sheepdog driver? Only asking because one of the last one has a \u0027.\u0027 and the rest don\u0027t..","commit_id":"3f29e2c96293cd7bd416e5a41cd9cbe675c90b7b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"df857555b087ae5a5bd5eae1fca0e7cfd9c55633","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                if _stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":256,"context_line":"                    msg \u003d _LE(\u0027Failed to connect sheep daemon. \u0027"},{"line_number":257,"context_line":"                              \u0027addr: %(addr)s, port: %(port)s\u0027)"},{"line_number":258,"context_line":"                    LOG.error(msg, {\u0027addr\u0027: self.addr, \u0027port\u0027: str(self.port)})"},{"line_number":259,"context_line":"                else:"},{"line_number":260,"context_line":"                    LOG.error(_LE(\u0027Failed to delete snapshot. (command: %s)\u0027),"},{"line_number":261,"context_line":"                              cmd)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_cbb921ee","line":258,"updated":"2015-08-17 00:47:03.000000000","message":"No need for str().","commit_id":"3f29e2c96293cd7bd416e5a41cd9cbe675c90b7b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"df857555b087ae5a5bd5eae1fca0e7cfd9c55633","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                              src_snapname)"},{"line_number":290,"context_line":"                elif self.QEMU_IMG_RESP_SIZE_TOO_LARGE in _stderr:"},{"line_number":291,"context_line":"                    LOG.error(_LE(\u0027Volume size \"%sG\" is too large.\u0027),"},{"line_number":292,"context_line":"                              str(size))"},{"line_number":293,"context_line":"                else:"},{"line_number":294,"context_line":"                    LOG.error(_LE(\u0027Failed to clone volume.(command: %s)\u0027), cmd)"},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_2bc3e558","line":292,"updated":"2015-08-17 00:47:03.000000000","message":"No need for str().","commit_id":"3f29e2c96293cd7bd416e5a41cd9cbe675c90b7b"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"7b9372393f03b8ad24febac682fbb0befee38ffb","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                                  \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":275,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":276,"context_line":"                elif self.QEMU_IMG_RESP_ALREADY_EXISTS in _stderr:"},{"line_number":277,"context_line":"                    LOG.error(_LE(\u0027Clone volume \"%s\" already exists. \u0027"},{"line_number":278,"context_line":"                              \u0027Please check the results of \"dog vdi list\".\u0027),"},{"line_number":279,"context_line":"                              dst_vdiname)"},{"line_number":280,"context_line":"                elif self.QEMU_IMG_RESP_VDI_NOT_FOUND in _stderr:"}],"source_content_type":"text/x-python","patch_set":8,"id":"da20952f_67754cf8","line":277,"updated":"2015-08-31 07:13:53.000000000","message":"Line 224 is \"already existed\" and here is \"already exists\", please keep consistent.","commit_id":"8a1e2c406a34f1873b889c0dce98d6395f41e86e"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"7b9372393f03b8ad24febac682fbb0befee38ffb","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                elif _stderr.startswith(self.DOG_RESP_VDI_SIZE_TOO_LARGE):"},{"line_number":314,"context_line":"                    LOG.error(_LE(\u0027Failed to resize vdi. \u0027"},{"line_number":315,"context_line":"                                  \u0027Too large volume size. \u0027"},{"line_number":316,"context_line":"                                  \u0027vdi:%(vdiname)s new size:%(size)s\u0027),"},{"line_number":317,"context_line":"                              {\u0027vdiname\u0027: vdiname, \u0027size\u0027: size})"},{"line_number":318,"context_line":"                else:"},{"line_number":319,"context_line":"                    LOG.error(_LE(\u0027Failed to resize vdi. \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"da20952f_621bfa73","line":316,"updated":"2015-08-31 07:13:53.000000000","message":"Add a space after the colons.","commit_id":"8a1e2c406a34f1873b889c0dce98d6395f41e86e"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"7b9372393f03b8ad24febac682fbb0befee38ffb","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                              {\u0027vdiname\u0027: vdiname, \u0027size\u0027: size})"},{"line_number":318,"context_line":"                else:"},{"line_number":319,"context_line":"                    LOG.error(_LE(\u0027Failed to resize vdi. \u0027"},{"line_number":320,"context_line":"                                  \u0027vdi:%(vdiname)s new size:%(size)s\u0027),"},{"line_number":321,"context_line":"                              {\u0027vdiname\u0027: vdiname, \u0027size\u0027: size})"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da20952f_4206f61d","line":320,"updated":"2015-08-31 07:13:53.000000000","message":"Add a space after the colons.","commit_id":"8a1e2c406a34f1873b889c0dce98d6395f41e86e"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"2bc02d9b5d0dd2bb575fd186bc60e6d354371514","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            _stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":211,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":212,"context_line":"                if _stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":213,"context_line":"                    LOG.error(_LE(\u0027Failed to connect sheep daemon. \u0027"},{"line_number":214,"context_line":"                              \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":215,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":216,"context_line":"                elif _stderr.rstrip(\u0027\\\\n\u0027).endswith("}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_123c592e","line":213,"updated":"2015-09-02 07:46:03.000000000","message":"\"connect\" -\u003e \"connect to\", see line 199.","commit_id":"1d9e4116ebe27777360765324648699fc2e5cc2f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"2bc02d9b5d0dd2bb575fd186bc60e6d354371514","unresolved":false,"context_lines":[{"line_number":251,"context_line":"            _stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":252,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":253,"context_line":"                if _stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":254,"context_line":"                    msg \u003d _LE(\u0027Failed to connect sheep daemon. \u0027"},{"line_number":255,"context_line":"                              \u0027addr: %(addr)s, port: %(port)s\u0027)"},{"line_number":256,"context_line":"                    LOG.error(msg, {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":257,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_320b9d7f","line":254,"updated":"2015-09-02 07:46:03.000000000","message":"Ditto.","commit_id":"1d9e4116ebe27777360765324648699fc2e5cc2f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"2bc02d9b5d0dd2bb575fd186bc60e6d354371514","unresolved":false,"context_lines":[{"line_number":298,"context_line":"            _stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":299,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":300,"context_line":"                if _stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":301,"context_line":"                    LOG.error(_LE(\u0027Failed to connect sheep daemon. \u0027"},{"line_number":302,"context_line":"                                  \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":303,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":304,"context_line":"                elif _stderr.rstrip(\u0027\\\\n\u0027).endswith("}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_3282bdc9","line":301,"updated":"2015-09-02 07:46:03.000000000","message":"Ditto.","commit_id":"1d9e4116ebe27777360765324648699fc2e5cc2f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"2bc02d9b5d0dd2bb575fd186bc60e6d354371514","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                              vdiname)"},{"line_number":308,"context_line":"                elif _stderr.startswith(self.DOG_RESP_VDI_SHRINK_NOT_SUPPORT):"},{"line_number":309,"context_line":"                    LOG.error(_LE(\u0027Failed to resize vdi. \u0027"},{"line_number":310,"context_line":"                                  \u0027shrinking vdi not supported. \u0027"},{"line_number":311,"context_line":"                                  \u0027vdi: %(vdiname)s new size: %(size)s\u0027),"},{"line_number":312,"context_line":"                              {\u0027vdiname\u0027: vdiname, \u0027size\u0027: size})"},{"line_number":313,"context_line":"                elif _stderr.startswith(self.DOG_RESP_VDI_SIZE_TOO_LARGE):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_b24d6dc6","line":310,"updated":"2015-09-02 07:46:03.000000000","message":"s/shrinking/Shrinking","commit_id":"1d9e4116ebe27777360765324648699fc2e5cc2f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"dc23d67712b815157bc1789f83b578d23268f626","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        except exception.SheepdogCmdError as e:"},{"line_number":209,"context_line":"            cmd \u003d e.kwargs[\u0027cmd\u0027]"},{"line_number":210,"context_line":"            _stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":211,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":212,"context_line":"                if _stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":213,"context_line":"                    LOG.error(_LE(\u0027Failed to connect to sheep daemon. \u0027"},{"line_number":214,"context_line":"                              \u0027addr: %(addr)s, port: %(port)s\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_1648ed89","line":211,"updated":"2015-09-08 13:58:50.000000000","message":"How about just logging the error message from the exception here?","commit_id":"34a28c302c6fbde5cf5307e16bb0f746d3ee03c3"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"7ed24a67adc3cd6f8723ae29453f8fb996af8a4b","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        except exception.SheepdogCmdError as e:"},{"line_number":209,"context_line":"            cmd \u003d e.kwargs[\u0027cmd\u0027]"},{"line_number":210,"context_line":"            _stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":211,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":212,"context_line":"                if _stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":213,"context_line":"                    LOG.error(_LE(\u0027Failed to connect to sheep daemon. \u0027"},{"line_number":214,"context_line":"                              \u0027addr: %(addr)s, port: %(port)s\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_6a011f6a","line":211,"in_reply_to":"da20952f_1648ed89","updated":"2015-09-09 02:02:09.000000000","message":"Now, error messages from dog/qemu is difficult for the users who don\u0027t know Sheepdog internal well.\nIn addition, OpenStack operators don\u0027t always know Sheepdog well.\n\nThis patch adds detail logs and I think it helps for the users.","commit_id":"34a28c302c6fbde5cf5307e16bb0f746d3ee03c3"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"dc23d67712b815157bc1789f83b578d23268f626","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        try:"},{"line_number":231,"context_line":"            (_stdout, _stderr) \u003d self._run_dog(\u0027vdi\u0027, \u0027delete\u0027, \u0027-s\u0027,"},{"line_number":232,"context_line":"                                               snapname, vdiname)"},{"line_number":233,"context_line":"            if _stderr.rstrip().endswith(self.DOG_RESP_SNAPSHOT_NOT_FOUND):"},{"line_number":234,"context_line":"                LOG.warning(_LW(\u0027Snapshot \"%s\" not found.\u0027), snapname)"},{"line_number":235,"context_line":"            elif _stderr.rstrip().endswith(self.DOG_RESP_VDI_NOT_FOUND):"},{"line_number":236,"context_line":"                LOG.warning(_LW(\u0027Volume \"%s\" not found.\u0027), vdiname)"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_965cfd4d","line":233,"updated":"2015-09-08 13:58:50.000000000","message":"same as above","commit_id":"34a28c302c6fbde5cf5307e16bb0f746d3ee03c3"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"7ed24a67adc3cd6f8723ae29453f8fb996af8a4b","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        try:"},{"line_number":231,"context_line":"            (_stdout, _stderr) \u003d self._run_dog(\u0027vdi\u0027, \u0027delete\u0027, \u0027-s\u0027,"},{"line_number":232,"context_line":"                                               snapname, vdiname)"},{"line_number":233,"context_line":"            if _stderr.rstrip().endswith(self.DOG_RESP_SNAPSHOT_NOT_FOUND):"},{"line_number":234,"context_line":"                LOG.warning(_LW(\u0027Snapshot \"%s\" not found.\u0027), snapname)"},{"line_number":235,"context_line":"            elif _stderr.rstrip().endswith(self.DOG_RESP_VDI_NOT_FOUND):"},{"line_number":236,"context_line":"                LOG.warning(_LW(\u0027Volume \"%s\" not found.\u0027), vdiname)"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_eae0cf98","line":233,"in_reply_to":"da20952f_965cfd4d","updated":"2015-09-09 02:02:09.000000000","message":"same as above.\n\nThe dog delete command has bug about return code, so this code avoids the bug.\nThe details is written in \"NOTE\"\n\n(Of cource, the dog command must be fixed, but this code will help the uses who use old Sheepdog version.)","commit_id":"34a28c302c6fbde5cf5307e16bb0f746d3ee03c3"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"dc23d67712b815157bc1789f83b578d23268f626","unresolved":false,"context_lines":[{"line_number":269,"context_line":"            cmd \u003d e.kwargs[\u0027cmd\u0027]"},{"line_number":270,"context_line":"            _stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":271,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":272,"context_line":"                if self.QEMU_IMG_RESP_CONNECTION_ERROR in _stderr:"},{"line_number":273,"context_line":"                    LOG.error(_LE(\u0027Failed to connect to sheep daemon. \u0027"},{"line_number":274,"context_line":"                                  \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":275,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_b62021b2","line":272,"updated":"2015-09-08 13:58:50.000000000","message":"same idea as above","commit_id":"34a28c302c6fbde5cf5307e16bb0f746d3ee03c3"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"7ed24a67adc3cd6f8723ae29453f8fb996af8a4b","unresolved":false,"context_lines":[{"line_number":269,"context_line":"            cmd \u003d e.kwargs[\u0027cmd\u0027]"},{"line_number":270,"context_line":"            _stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":271,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":272,"context_line":"                if self.QEMU_IMG_RESP_CONNECTION_ERROR in _stderr:"},{"line_number":273,"context_line":"                    LOG.error(_LE(\u0027Failed to connect to sheep daemon. \u0027"},{"line_number":274,"context_line":"                                  \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":275,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_cafaab43","line":272,"in_reply_to":"da20952f_b62021b2","updated":"2015-09-09 02:02:09.000000000","message":"same","commit_id":"34a28c302c6fbde5cf5307e16bb0f746d3ee03c3"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"dc23d67712b815157bc1789f83b578d23268f626","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        except exception.SheepdogCmdError as e:"},{"line_number":298,"context_line":"            _stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":299,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":300,"context_line":"                if _stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":301,"context_line":"                    LOG.error(_LE(\u0027Failed to connect to sheep daemon. \u0027"},{"line_number":302,"context_line":"                                  \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":303,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_76a5a945","line":300,"updated":"2015-09-08 13:58:50.000000000","message":"Any reason we can\u0027t just LOG the error message from DOG and skip all the if/elif checking here?","commit_id":"34a28c302c6fbde5cf5307e16bb0f746d3ee03c3"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"7ed24a67adc3cd6f8723ae29453f8fb996af8a4b","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        except exception.SheepdogCmdError as e:"},{"line_number":298,"context_line":"            _stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":299,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":300,"context_line":"                if _stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":301,"context_line":"                    LOG.error(_LE(\u0027Failed to connect to sheep daemon. \u0027"},{"line_number":302,"context_line":"                                  \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":303,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"}],"source_content_type":"text/x-python","patch_set":10,"id":"da20952f_8a935300","line":300,"in_reply_to":"da20952f_76a5a945","updated":"2015-09-09 02:02:09.000000000","message":"same","commit_id":"34a28c302c6fbde5cf5307e16bb0f746d3ee03c3"}]}
