)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fe4a4564b92f21b5d43ff7877b62552eaf98ccd2","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-01 10:14:48 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"sheepdog: change create and delete operation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes create_volume and delete_volume to use"},{"line_number":10,"context_line":"SheepdogClient Class method for detailed Error logs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_7ad1ab56","line":7,"updated":"2015-07-01 06:05:27.000000000","message":"Sheepdog first.","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"f83f5c24e38268b1ae4b9f8f14141ddd1067fffe","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-01 10:14:48 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"sheepdog: change create and delete operation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes create_volume and delete_volume to use"},{"line_number":10,"context_line":"SheepdogClient Class method for detailed Error logs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_bdadb49c","line":7,"in_reply_to":"ba3cc151_7ad1ab56","updated":"2015-07-02 06:16:44.000000000","message":"I\u0027ll change it","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"14fe9648c2310b3e910ed4b8286c119fc0180d09","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-08 15:58:51 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Sheepdog: change create and delete operation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes create_volume and delete_volume 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":"ba3cc151_f295a231","line":7,"updated":"2015-07-08 21:21:53.000000000","message":"Suggest:\n    Sheepdog: improve create and delete operations","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"6d48638fd7b6a943e069b6607b798cfc09db8446","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-08 15:58:51 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Sheepdog: change create and delete operation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes create_volume and delete_volume 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":"ba3cc151_4294ae89","line":7,"in_reply_to":"ba3cc151_f295a231","updated":"2015-07-09 04:11:26.000000000","message":"Thanks for your suggestions.\nI\u0027ll change it","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"14fe9648c2310b3e910ed4b8286c119fc0180d09","unresolved":false,"context_lines":[{"line_number":10,"context_line":"SheepdogClient Class method for detailed Error logs."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"SheepdogClient Class methods are implemented to enable"},{"line_number":13,"context_line":"to do a fine grained Error handling."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"So, the administrators are enable to do error recovery"},{"line_number":16,"context_line":"more easily with using those logs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba3cc151_72aaf272","line":13,"updated":"2015-07-08 21:21:53.000000000","message":"suggest:\n   s/to do a//","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"6d48638fd7b6a943e069b6607b798cfc09db8446","unresolved":false,"context_lines":[{"line_number":10,"context_line":"SheepdogClient Class method for detailed Error logs."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"SheepdogClient Class methods are implemented to enable"},{"line_number":13,"context_line":"to do a fine grained Error handling."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"So, the administrators are enable to do error recovery"},{"line_number":16,"context_line":"more easily with using those logs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba3cc151_827dd66e","line":13,"in_reply_to":"ba3cc151_72aaf272","updated":"2015-07-09 04:11:26.000000000","message":"I\u0027ll change it","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"14fe9648c2310b3e910ed4b8286c119fc0180d09","unresolved":false,"context_lines":[{"line_number":13,"context_line":"to do a fine grained Error handling."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"So, the administrators are enable to do error recovery"},{"line_number":16,"context_line":"more easily with using those logs."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I54d320475c143c5f96d70abd7314320ef79f55bf"},{"line_number":19,"context_line":"Depends-On: I738c23b9213ebd781ab399a3198551c8b8dfe382"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba3cc151_52e32ed9","line":16,"updated":"2015-07-08 21:21:53.000000000","message":"Suggest:\n/enable/enabled/\n/with//","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"6d48638fd7b6a943e069b6607b798cfc09db8446","unresolved":false,"context_lines":[{"line_number":13,"context_line":"to do a fine grained Error handling."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"So, the administrators are enable to do error recovery"},{"line_number":16,"context_line":"more easily with using those logs."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I54d320475c143c5f96d70abd7314320ef79f55bf"},{"line_number":19,"context_line":"Depends-On: I738c23b9213ebd781ab399a3198551c8b8dfe382"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba3cc151_e28e2278","line":16,"in_reply_to":"ba3cc151_52e32ed9","updated":"2015-07-09 04:11:26.000000000","message":"I\u0027ll change it","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"dda2d86e0a815cc5d2cb0c4e4fd443c339689242","unresolved":false,"context_lines":[{"line_number":13,"context_line":"fine grained Error handling."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"So, the administrators are enabled to do error recovery"},{"line_number":16,"context_line":"more easily with using those logs."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I54d320475c143c5f96d70abd7314320ef79f55bf"},{"line_number":19,"context_line":"Depends-On: I738c23b9213ebd781ab399a3198551c8b8dfe382"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ba3cc151_4fd936f2","line":16,"updated":"2015-07-09 04:43:58.000000000","message":"suggest removing the word \u0027with\u0027 if you do another changeset.","commit_id":"feb1ff0597455276bfdb716dde2f90b76105a6e4"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"3453e43983e13c3a6341983f03813cf41a134bea","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"So, the administrators are enabled to do error recovery"},{"line_number":16,"context_line":"more easily using those logs."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I54d320475c143c5f96d70abd7314320ef79f55bf"},{"line_number":19,"context_line":"Depends-On: I738c23b9213ebd781ab399a3198551c8b8dfe382"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"9a41bdd9_803f99d5","line":17,"updated":"2015-07-17 15:03:26.000000000","message":"Since this is a slightly larger change, should there be a blueprint for this?","commit_id":"f8b6f9aaa5b4710ff1f5b84317e2e87522561db5"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"ba81770545c32dd12246d86f6386effeb36a1e7e","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"So, the administrators are enabled to do error recovery"},{"line_number":16,"context_line":"more easily using those logs."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I54d320475c143c5f96d70abd7314320ef79f55bf"},{"line_number":19,"context_line":"Depends-On: I738c23b9213ebd781ab399a3198551c8b8dfe382"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3a50d1a3_be7b878b","line":17,"in_reply_to":"9a41bdd9_803f99d5","updated":"2015-07-22 06:27:12.000000000","message":"There is not a blueprint for this, because we don\u0027t add new feature.\nWe only refined implementation and added fine grained logs.","commit_id":"f8b6f9aaa5b4710ff1f5b84317e2e87522561db5"}],"cinder/tests/unit/test_sheepdog.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fe4a4564b92f21b5d43ff7877b62552eaf98ccd2","unresolved":false,"context_lines":[{"line_number":366,"context_line":"                cmd\u003dcmd, exit_code\u003dexit_code,"},{"line_number":367,"context_line":"                stdout\u003dstdout.replace(\u0027\\n\u0027, \u0027\\\\n\u0027),"},{"line_number":368,"context_line":"                stderr\u003dstderr.replace(\u0027\\n\u0027, \u0027\\\\n\u0027))"},{"line_number":369,"context_line":"            with mock.patch.object(sheepdog, \u0027LOG\u0027) as fake_logger:"},{"line_number":370,"context_line":"                ex \u003d self.assertRaises(exception.SheepdogCmdError,"},{"line_number":371,"context_line":"                                       self.client.create,"},{"line_number":372,"context_line":"                                       self._vdiname, self._vdisize)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_3aa6c310","line":369,"updated":"2015-07-01 06:05:27.000000000","message":"There is no \"self.\", so you can put this line in the decorator.","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"f83f5c24e38268b1ae4b9f8f14141ddd1067fffe","unresolved":false,"context_lines":[{"line_number":366,"context_line":"                cmd\u003dcmd, exit_code\u003dexit_code,"},{"line_number":367,"context_line":"                stdout\u003dstdout.replace(\u0027\\n\u0027, \u0027\\\\n\u0027),"},{"line_number":368,"context_line":"                stderr\u003dstderr.replace(\u0027\\n\u0027, \u0027\\\\n\u0027))"},{"line_number":369,"context_line":"            with mock.patch.object(sheepdog, \u0027LOG\u0027) as fake_logger:"},{"line_number":370,"context_line":"                ex \u003d self.assertRaises(exception.SheepdogCmdError,"},{"line_number":371,"context_line":"                                       self.client.create,"},{"line_number":372,"context_line":"                                       self._vdiname, self._vdisize)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_1da8601f","line":369,"in_reply_to":"ba3cc151_3aa6c310","updated":"2015-07-02 06:16:44.000000000","message":"I\u0027ll change here and the other lines to use the decorator","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fe4a4564b92f21b5d43ff7877b62552eaf98ccd2","unresolved":false,"context_lines":[{"line_number":386,"context_line":"                cmd\u003dcmd, exit_code\u003dexit_code,"},{"line_number":387,"context_line":"                stdout\u003dstdout.replace(\u0027\\n\u0027, \u0027\\\\n\u0027),"},{"line_number":388,"context_line":"                stderr\u003dstderr.replace(\u0027\\n\u0027, \u0027\\\\n\u0027))"},{"line_number":389,"context_line":"            with mock.patch.object(sheepdog, \u0027LOG\u0027) as fake_logger:"},{"line_number":390,"context_line":"                ex \u003d self.assertRaises(exception.SheepdogCmdError,"},{"line_number":391,"context_line":"                                       self.client.create,"},{"line_number":392,"context_line":"                                       self._vdiname, self._vdisize)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_fab05b45","line":389,"updated":"2015-07-01 06:05:27.000000000","message":"There is no \"self.\", so you can put this line in the decorator.","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fe4a4564b92f21b5d43ff7877b62552eaf98ccd2","unresolved":false,"context_lines":[{"line_number":405,"context_line":"                cmd\u003dcmd, exit_code\u003dexit_code,"},{"line_number":406,"context_line":"                stdout\u003dstdout.replace(\u0027\\n\u0027, \u0027\\\\n\u0027),"},{"line_number":407,"context_line":"                stderr\u003dstderr.replace(\u0027\\n\u0027, \u0027\\\\n\u0027))"},{"line_number":408,"context_line":"            with mock.patch.object(sheepdog, \u0027LOG\u0027) as fake_logger:"},{"line_number":409,"context_line":"                ex \u003d self.assertRaises(exception.SheepdogCmdError,"},{"line_number":410,"context_line":"                                       self.client.create,"},{"line_number":411,"context_line":"                                       self._vdiname, self._vdisize)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_dab55731","line":408,"updated":"2015-07-01 06:05:27.000000000","message":"There is no \"self.\", so you can put this line in the decorator.","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fe4a4564b92f21b5d43ff7877b62552eaf98ccd2","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        stdout \u003d \u0027\u0027"},{"line_number":425,"context_line":"        stderr \u003d self.test_data.DOG_VDI_DELETE_VDI_NOT_EXISTS"},{"line_number":426,"context_line":"        with mock.patch.object(self.client, \u0027_run_dog\u0027) as fake_execute:"},{"line_number":427,"context_line":"            with mock.patch.object(sheepdog, \u0027LOG\u0027) as fake_logger:"},{"line_number":428,"context_line":"                fake_execute.return_value \u003d (stdout, stderr)"},{"line_number":429,"context_line":"                self.client.delete(self._vdiname)"},{"line_number":430,"context_line":"                fake_execute.assert_called_once_with(*expected_cmd)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_7a83eb56","line":427,"updated":"2015-07-01 06:05:27.000000000","message":"There is no \"self.\", so you can put this line in the decorator.","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fe4a4564b92f21b5d43ff7877b62552eaf98ccd2","unresolved":false,"context_lines":[{"line_number":440,"context_line":"                                                         stdout\u003dstdout,"},{"line_number":441,"context_line":"                                                         stderr\u003dstderr)"},{"line_number":442,"context_line":"        with mock.patch.object(self.client, \u0027_run_dog\u0027) as fake_execute:"},{"line_number":443,"context_line":"            with mock.patch.object(sheepdog, \u0027LOG\u0027) as fake_logger:"},{"line_number":444,"context_line":"                fake_execute.side_effect \u003d exception.SheepdogCmdError("},{"line_number":445,"context_line":"                    cmd\u003dcmd, exit_code\u003dexit_code,"},{"line_number":446,"context_line":"                    stdout\u003dstdout.replace(\u0027\\n\u0027, \u0027\\\\n\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_3a7d636e","line":443,"updated":"2015-07-01 06:05:27.000000000","message":"There is no \"self.\", so you can put this line in the decorator.","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fe4a4564b92f21b5d43ff7877b62552eaf98ccd2","unresolved":false,"context_lines":[{"line_number":460,"context_line":"                                                         stdout\u003dstdout,"},{"line_number":461,"context_line":"                                                         stderr\u003dstderr)"},{"line_number":462,"context_line":"        with mock.patch.object(self.client, \u0027_run_dog\u0027) as fake_execute:"},{"line_number":463,"context_line":"            with mock.patch.object(sheepdog, \u0027LOG\u0027) as fake_logger:"},{"line_number":464,"context_line":"                fake_execute.side_effect \u003d exception.SheepdogCmdError("},{"line_number":465,"context_line":"                    cmd\u003dcmd, exit_code\u003dexit_code,"},{"line_number":466,"context_line":"                    stdout\u003dstdout.replace(\u0027\\n\u0027, \u0027\\\\n\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_fa97fb8d","line":463,"updated":"2015-07-01 06:05:27.000000000","message":"There is no \"self.\", so you can put this line in the decorator.","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fe4a4564b92f21b5d43ff7877b62552eaf98ccd2","unresolved":false,"context_lines":[{"line_number":558,"context_line":"        self.stubs.Set(sheepdog.SheepdogDriver,"},{"line_number":559,"context_line":"                       \u0027_try_execute\u0027,"},{"line_number":560,"context_line":"                       fake_try_execute)"},{"line_number":561,"context_line":"        self.stubs.Set(sheepdog.SheepdogClient,"},{"line_number":562,"context_line":"                       \u0027_run_dog\u0027,"},{"line_number":563,"context_line":"                       fake_run_dog)"},{"line_number":564,"context_line":"        self.driver.copy_image_to_volume(None, {\u0027name\u0027: \u0027test\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_3af483f0","line":561,"updated":"2015-07-01 06:05:27.000000000","message":"No.\nChange it to mock.patch.object","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"f83f5c24e38268b1ae4b9f8f14141ddd1067fffe","unresolved":false,"context_lines":[{"line_number":558,"context_line":"        self.stubs.Set(sheepdog.SheepdogDriver,"},{"line_number":559,"context_line":"                       \u0027_try_execute\u0027,"},{"line_number":560,"context_line":"                       fake_try_execute)"},{"line_number":561,"context_line":"        self.stubs.Set(sheepdog.SheepdogClient,"},{"line_number":562,"context_line":"                       \u0027_run_dog\u0027,"},{"line_number":563,"context_line":"                       fake_run_dog)"},{"line_number":564,"context_line":"        self.driver.copy_image_to_volume(None, {\u0027name\u0027: \u0027test\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_7ec2c335","line":561,"in_reply_to":"ba3cc151_3af483f0","updated":"2015-07-02 06:16:44.000000000","message":"I\u0027ll change it","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"14fe9648c2310b3e910ed4b8286c119fc0180d09","unresolved":false,"context_lines":[{"line_number":130,"context_line":"\"\"\""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    DOG_VDI_DELETE_VDI_NOT_EXISTS \u003d \"\"\"\\"},{"line_number":133,"context_line":"Failed to open VDI vdiname (snapshot id: 0 snapshot tag: ): No VDI found"},{"line_number":134,"context_line":"\"\"\""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    DOG_COMMAND_ERROR_FAIL_TO_CONNECT \u003d \"\"\"\\"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_781df3bc","line":133,"updated":"2015-07-08 21:21:53.000000000","message":"Wouldn\u0027t this message specify the real name of the vdi rather than the literal \u0027vdiname\u0027, so it should be %(vdiname)s: as in the above message?","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"6d48638fd7b6a943e069b6607b798cfc09db8446","unresolved":false,"context_lines":[{"line_number":130,"context_line":"\"\"\""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    DOG_VDI_DELETE_VDI_NOT_EXISTS \u003d \"\"\"\\"},{"line_number":133,"context_line":"Failed to open VDI vdiname (snapshot id: 0 snapshot tag: ): No VDI found"},{"line_number":134,"context_line":"\"\"\""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    DOG_COMMAND_ERROR_FAIL_TO_CONNECT \u003d \"\"\"\\"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_421eee0c","line":133,"in_reply_to":"ba3cc151_781df3bc","updated":"2015-07-09 04:11:26.000000000","message":"I\u0027ll change it","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"8a7076aa7dbebc4f1433f1a878e1be83000391af","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        self.client.delete(self._vdiname)"},{"line_number":436,"context_line":"        self.assertTrue(fake_logger.warning.called)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        # XXX (tishizaki) Sheepdog\u0027s bug case."},{"line_number":439,"context_line":"        # details was written to Sheepdog driver code."},{"line_number":440,"context_line":"        # Test3: failed to connect to sheep process"},{"line_number":441,"context_line":"        fake_logger.reset_mock()"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_93ea3173","line":438,"updated":"2015-07-08 13:42:01.000000000","message":"s/XXX (tishizaki)/Note (tishizaki):/","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"6d48638fd7b6a943e069b6607b798cfc09db8446","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        self.client.delete(self._vdiname)"},{"line_number":436,"context_line":"        self.assertTrue(fake_logger.warning.called)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        # XXX (tishizaki) Sheepdog\u0027s bug case."},{"line_number":439,"context_line":"        # details was written to Sheepdog driver code."},{"line_number":440,"context_line":"        # Test3: failed to connect to sheep process"},{"line_number":441,"context_line":"        fake_logger.reset_mock()"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_22e08a28","line":438,"in_reply_to":"ba3cc151_1285a6cd","updated":"2015-07-09 04:11:26.000000000","message":"I\u0027ll change it","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"14fe9648c2310b3e910ed4b8286c119fc0180d09","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        self.client.delete(self._vdiname)"},{"line_number":436,"context_line":"        self.assertTrue(fake_logger.warning.called)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        # XXX (tishizaki) Sheepdog\u0027s bug case."},{"line_number":439,"context_line":"        # details was written to Sheepdog driver code."},{"line_number":440,"context_line":"        # Test3: failed to connect to sheep process"},{"line_number":441,"context_line":"        fake_logger.reset_mock()"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_1285a6cd","line":438,"in_reply_to":"ba3cc151_93ea3173","updated":"2015-07-08 21:21:53.000000000","message":"Agree with Thang.","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"dda2d86e0a815cc5d2cb0c4e4fd443c339689242","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        fake_logger.reset_mock()"},{"line_number":431,"context_line":"        fake_execute.reset_mock()"},{"line_number":432,"context_line":"        stdout \u003d \u0027\u0027"},{"line_number":433,"context_line":"        stderr \u003d self.test_data.DOG_VDI_DELETE_VDI_NOT_EXISTS % \\"},{"line_number":434,"context_line":"            {\u0027vdiname\u0027: self._vdiname}"},{"line_number":435,"context_line":"        fake_execute.return_value \u003d (stdout, stderr)"},{"line_number":436,"context_line":"        self.client.delete(self._vdiname)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_2f05d244","line":433,"updated":"2015-07-09 04:43:58.000000000","message":"Someone will likely ask you to use ( for line continuation rather than \\.","commit_id":"feb1ff0597455276bfdb716dde2f90b76105a6e4"}],"cinder/volume/drivers/sheepdog.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"fe4a4564b92f21b5d43ff7877b62552eaf98ccd2","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from cinder import exception"},{"line_number":34,"context_line":"from cinder import utils"},{"line_number":35,"context_line":"from cinder.i18n import _, _LW, _LE"},{"line_number":36,"context_line":"from cinder.image import image_utils"},{"line_number":37,"context_line":"from cinder.openstack.common import fileutils"},{"line_number":38,"context_line":"from cinder.volume import driver"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_cf591b5c","line":35,"updated":"2015-07-01 06:05:27.000000000","message":"Shall we do \" _LE, _LW\"?","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"f83f5c24e38268b1ae4b9f8f14141ddd1067fffe","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from cinder import exception"},{"line_number":34,"context_line":"from cinder import utils"},{"line_number":35,"context_line":"from cinder.i18n import _, _LW, _LE"},{"line_number":36,"context_line":"from cinder.image import image_utils"},{"line_number":37,"context_line":"from cinder.openstack.common import fileutils"},{"line_number":38,"context_line":"from cinder.volume import driver"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_fd957c32","line":35,"in_reply_to":"ba3cc151_cf591b5c","updated":"2015-07-02 06:16:44.000000000","message":"I\u0027ll change it","commit_id":"bb722f20d557b6509fcc3cfe7cd54d77d4050d2c"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"8a7076aa7dbebc4f1433f1a878e1be83000391af","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                                      \u0027Waiting for cluster to be formatted\u0027)"},{"line_number":65,"context_line":"    DOG_RESP_CLUSTER_WAITING \u003d (\u0027Cluster status: \u0027"},{"line_number":66,"context_line":"                                \u0027Waiting for other nodes to join cluster\u0027)"},{"line_number":67,"context_line":"    DOG_RESP_VDI_ALREADY_EXISTS \u003d \u0027: VDI exists already\\\\n\u0027"},{"line_number":68,"context_line":"    DOG_RESP_VDI_NOT_FOUND \u003d \u0027: No VDI found\\n\u0027"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __init__(self, addr, port):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_53afc929","line":67,"updated":"2015-07-08 13:42:01.000000000","message":"Is there suppose to be two \"\\\" at the end here?  Below there is only one \"\\\".","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"6d48638fd7b6a943e069b6607b798cfc09db8446","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                                      \u0027Waiting for cluster to be formatted\u0027)"},{"line_number":65,"context_line":"    DOG_RESP_CLUSTER_WAITING \u003d (\u0027Cluster status: \u0027"},{"line_number":66,"context_line":"                                \u0027Waiting for other nodes to join cluster\u0027)"},{"line_number":67,"context_line":"    DOG_RESP_VDI_ALREADY_EXISTS \u003d \u0027: VDI exists already\\\\n\u0027"},{"line_number":68,"context_line":"    DOG_RESP_VDI_NOT_FOUND \u003d \u0027: No VDI found\\n\u0027"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __init__(self, addr, port):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_82e876b4","line":67,"in_reply_to":"ba3cc151_53afc929","updated":"2015-07-09 04:11:26.000000000","message":"DOG_RESP_VDI_ALREADY_EXISTS is the term for parsing stderr of exception(ProcessExecutionError).\n\nDOG_RESP_VDI_NOT_FOUND is the term  for parsing stderr of command which is completed successfully\n\nI\u0027ll use rstrip() and delete \"\\n\" and \"\\\\n\".","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"8a7076aa7dbebc4f1433f1a878e1be83000391af","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            if stderr.endswith(self.DOG_RESP_VDI_NOT_FOUND):"},{"line_number":137,"context_line":"                LOG.warning(_LW(\u0027Volume not found. %s\u0027), vdiname)"},{"line_number":138,"context_line":"            elif stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":139,"context_line":"                # XXX(tishizaki)"},{"line_number":140,"context_line":"                # Dog command does not return error_code although"},{"line_number":141,"context_line":"                # dog command cannot connect to sheep process."},{"line_number":142,"context_line":"                # That is a Sheepdog\u0027s bug."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_3379e5c8","line":139,"updated":"2015-07-08 13:42:01.000000000","message":"s/XXX (tishizaki)/NOTE (tishizaki):/","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"14fe9648c2310b3e910ed4b8286c119fc0180d09","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            if stderr.endswith(self.DOG_RESP_VDI_NOT_FOUND):"},{"line_number":137,"context_line":"                LOG.warning(_LW(\u0027Volume not found. %s\u0027), vdiname)"},{"line_number":138,"context_line":"            elif stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":139,"context_line":"                # XXX(tishizaki)"},{"line_number":140,"context_line":"                # Dog command does not return error_code although"},{"line_number":141,"context_line":"                # dog command cannot connect to sheep process."},{"line_number":142,"context_line":"                # That is a Sheepdog\u0027s bug."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_5269eef7","line":139,"in_reply_to":"ba3cc151_3379e5c8","updated":"2015-07-08 21:21:53.000000000","message":"Agree.","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"6d48638fd7b6a943e069b6607b798cfc09db8446","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            if stderr.endswith(self.DOG_RESP_VDI_NOT_FOUND):"},{"line_number":137,"context_line":"                LOG.warning(_LW(\u0027Volume not found. %s\u0027), vdiname)"},{"line_number":138,"context_line":"            elif stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":139,"context_line":"                # XXX(tishizaki)"},{"line_number":140,"context_line":"                # Dog command does not return error_code although"},{"line_number":141,"context_line":"                # dog command cannot connect to sheep process."},{"line_number":142,"context_line":"                # That is a Sheepdog\u0027s bug."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_a22d7aff","line":139,"in_reply_to":"ba3cc151_5269eef7","updated":"2015-07-09 04:11:26.000000000","message":"I\u0027ll change it","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"14fe9648c2310b3e910ed4b8286c119fc0180d09","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":152,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":153,"context_line":"                if stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":154,"context_line":"                    LOG.error(_LE(\u0027Failed to connect sheep daemon. \u0027"},{"line_number":155,"context_line":"                              \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":156,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":157,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_6d9c576a","line":154,"updated":"2015-07-08 21:21:53.000000000","message":"Suggest: s/connect sheep/connect to sheep/","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"6d48638fd7b6a943e069b6607b798cfc09db8446","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":152,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":153,"context_line":"                if stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":154,"context_line":"                    LOG.error(_LE(\u0027Failed to connect sheep daemon. \u0027"},{"line_number":155,"context_line":"                              \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":156,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":157,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_8236364f","line":154,"in_reply_to":"ba3cc151_6d9c576a","updated":"2015-07-09 04:11:26.000000000","message":"I\u0027ll change it","commit_id":"22af2597a3cd6aa39dafa63160e0ff243cdd19d2"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"3453e43983e13c3a6341983f03813cf41a134bea","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":127,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":128,"context_line":"                if stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":129,"context_line":"                    LOG.error(_LE(\"Failed to connect to sheep daemon. \""},{"line_number":130,"context_line":"                              \"addr: %(addr)s, port: %(port)s\"),"},{"line_number":131,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":132,"context_line":"                elif stderr.rstrip(\u0027\\\\n\u0027).endswith("}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_40ad1130","line":129,"updated":"2015-07-17 15:03:26.000000000","message":"sheep -\u003e sheepdog ?","commit_id":"f8b6f9aaa5b4710ff1f5b84317e2e87522561db5"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"ce158a525ea362ec9bb96f57d30f731a17f02be6","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":127,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":128,"context_line":"                if stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":129,"context_line":"                    LOG.error(_LE(\"Failed to connect to sheep daemon. \""},{"line_number":130,"context_line":"                              \"addr: %(addr)s, port: %(port)s\"),"},{"line_number":131,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":132,"context_line":"                elif stderr.rstrip(\u0027\\\\n\u0027).endswith("}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_ace72f11","line":129,"in_reply_to":"9a41bdd9_40ad1130","updated":"2015-07-17 17:16:10.000000000","message":"No.  The daemon is actually called sheep - http://manpages.ubuntu.com/manpages/trusty/man8/dog.8.html","commit_id":"f8b6f9aaa5b4710ff1f5b84317e2e87522561db5"},{"author":{"_account_id":13923,"name":"Teruaki Ishizaki","email":"ishizaki.teruaki@lab.ntt.co.jp","username":"tishizaki"},"change_message_id":"ba81770545c32dd12246d86f6386effeb36a1e7e","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":127,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":128,"context_line":"                if stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":129,"context_line":"                    LOG.error(_LE(\"Failed to connect to sheep daemon. \""},{"line_number":130,"context_line":"                              \"addr: %(addr)s, port: %(port)s\"),"},{"line_number":131,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":132,"context_line":"                elif stderr.rstrip(\u0027\\\\n\u0027).endswith("}],"source_content_type":"text/x-python","patch_set":9,"id":"3a50d1a3_dee53338","line":129,"in_reply_to":"9a41bdd9_ace72f11","updated":"2015-07-22 06:27:12.000000000","message":"As Thang-san said, the name of the daemon is sheep.","commit_id":"f8b6f9aaa5b4710ff1f5b84317e2e87522561db5"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"3453e43983e13c3a6341983f03813cf41a134bea","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                # To avoid a Sheepdog\u0027s bug, now we need to check stderr."},{"line_number":149,"context_line":"                # If Sheepdog has been fixed, this check logic is needed"},{"line_number":150,"context_line":"                # by old Sheepdog users."},{"line_number":151,"context_line":"                reason \u003d (_(\u0027Failed to connect to sheep daemon. \u0027"},{"line_number":152,"context_line":"                          \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":153,"context_line":"                          {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":154,"context_line":"                raise exception.SheepdogError(reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_606cd508","line":151,"updated":"2015-07-17 15:03:26.000000000","message":"sheep-\u003e sheepdog ?","commit_id":"f8b6f9aaa5b4710ff1f5b84317e2e87522561db5"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"3453e43983e13c3a6341983f03813cf41a134bea","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            stderr \u003d e.kwargs[\u0027stderr\u0027]"},{"line_number":157,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":158,"context_line":"                if stderr.startswith(self.DOG_RESP_CONNECTION_ERROR):"},{"line_number":159,"context_line":"                    LOG.error(_LE(\u0027Failed to connect to sheep daemon. \u0027"},{"line_number":160,"context_line":"                              \u0027addr: %(addr)s, port: %(port)s\u0027),"},{"line_number":161,"context_line":"                              {\u0027addr\u0027: self.addr, \u0027port\u0027: self.port})"},{"line_number":162,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_6043756d","line":159,"updated":"2015-07-17 15:03:26.000000000","message":"sheep-\u003e sheepdog ?","commit_id":"f8b6f9aaa5b4710ff1f5b84317e2e87522561db5"}]}
