)]}'
{"cinder/tests/unit/volume/drivers/ibm/test_xiv_proxy.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"521482789ab3783e1b9e3cd8dfb3e6eb0c22c4f1","unresolved":false,"context_lines":[{"line_number":1916,"context_line":"    def test_delete_consistencygroup_replicated(self):"},{"line_number":1917,"context_line":"        \"\"\"test delete_consistenygroup when CG is not empty\"\"\""},{"line_number":1918,"context_line":"        driver \u003d mock.MagicMock()"},{"line_number":1919,"context_line":"        driver.VERSION \u003d \"VERSION\""},{"line_number":1920,"context_line":""},{"line_number":1921,"context_line":"        p \u003d self.proxy("},{"line_number":1922,"context_line":"            self.default_storage_info,"}],"source_content_type":"text/x-python","patch_set":4,"id":"df3967d1_5d64284a","line":1919,"updated":"2017-08-03 13:42:34.000000000","message":"Why do we need this in a mock?","commit_id":"5fd3d0fd16ad4e0305e07e7f151c0e2020b0885c"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"3a58e6cce30b497abe4075d02a01eb7857aaaf5a","unresolved":false,"context_lines":[{"line_number":1914,"context_line":"        self.assertRaises(ex, p.delete_group, {}, group_obj, [])"},{"line_number":1915,"context_line":""},{"line_number":1916,"context_line":"    def test_delete_consistencygroup_replicated(self):"},{"line_number":1917,"context_line":"        \"\"\"test delete_consistenygroup when CG is not empty\"\"\""},{"line_number":1918,"context_line":"        driver \u003d mock.MagicMock()"},{"line_number":1919,"context_line":"        driver.VERSION \u003d \"VERSION\""},{"line_number":1920,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_cabf27a8","line":1917,"range":{"start_line":1917,"start_character":44,"end_line":1917,"end_character":59},"updated":"2017-08-14 14:10:35.000000000","message":"when cg is empty or when replication is not disabled.","commit_id":"91ec49a9e00ec137eb75f6a236d0a0896e68e060"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"a0783a6073eb464c8f791d511514a7d72eb5d845","unresolved":false,"context_lines":[{"line_number":1914,"context_line":"        self.assertRaises(ex, p.delete_group, {}, group_obj, [])"},{"line_number":1915,"context_line":""},{"line_number":1916,"context_line":"    def test_delete_consistencygroup_replicated(self):"},{"line_number":1917,"context_line":"        \"\"\"test delete_consistenygroup when CG is not empty\"\"\""},{"line_number":1918,"context_line":"        driver \u003d mock.MagicMock()"},{"line_number":1919,"context_line":"        driver.VERSION \u003d \"VERSION\""},{"line_number":1920,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_75325c60","line":1917,"range":{"start_line":1917,"start_character":44,"end_line":1917,"end_character":59},"in_reply_to":"9f436f4f_cabf27a8","updated":"2017-08-14 14:39:39.000000000","message":"There is another test for this. See:\ntest_delete_consistencygroup_with_no_volumes","commit_id":"91ec49a9e00ec137eb75f6a236d0a0896e68e060"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"3a58e6cce30b497abe4075d02a01eb7857aaaf5a","unresolved":false,"context_lines":[{"line_number":1927,"context_line":"        p.ibm_storage_cli \u003d mock.MagicMock()"},{"line_number":1928,"context_line":""},{"line_number":1929,"context_line":"        group_obj \u003d self._create_test_group()"},{"line_number":1930,"context_line":"        group_obj[\u0027replication_status\u0027] \u003d fields.ReplicationStatus.ENABLED"},{"line_number":1931,"context_line":"        ex \u003d getattr(p, \"_get_exception\")()"},{"line_number":1932,"context_line":"        self.assertRaises(ex, p.delete_group, {}, group_obj, [])"},{"line_number":1933,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_0acf6f56","line":1930,"range":{"start_line":1930,"start_character":42,"end_line":1930,"end_character":74},"updated":"2017-08-14 14:10:35.000000000","message":"I\u0027d prefer to add one more assert that when the status is \u0027failed_over\u0027","commit_id":"91ec49a9e00ec137eb75f6a236d0a0896e68e060"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"b3984cfd34b7eb2ecd00e410b489f8f47adbc39a","unresolved":false,"context_lines":[{"line_number":1931,"context_line":"        ex \u003d getattr(p, \"_get_exception\")()"},{"line_number":1932,"context_line":"        self.assertRaises(ex, p.delete_group, {}, group_obj, [])"},{"line_number":1933,"context_line":""},{"line_number":1934,"context_line":"    def test_delete_consistencygroup_faildover(self):"},{"line_number":1935,"context_line":"        \"\"\"test delete cg when CG is faild-over\"\"\""},{"line_number":1936,"context_line":"        driver \u003d mock.MagicMock()"},{"line_number":1937,"context_line":"        driver.VERSION \u003d \"VERSION\""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_c3824400","line":1934,"range":{"start_line":1934,"start_character":37,"end_line":1934,"end_character":42},"updated":"2017-08-16 02:34:13.000000000","message":"nit: failed","commit_id":"55bbd427e01068da6b5da60770a55f8121225be5"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"b3984cfd34b7eb2ecd00e410b489f8f47adbc39a","unresolved":false,"context_lines":[{"line_number":1932,"context_line":"        self.assertRaises(ex, p.delete_group, {}, group_obj, [])"},{"line_number":1933,"context_line":""},{"line_number":1934,"context_line":"    def test_delete_consistencygroup_faildover(self):"},{"line_number":1935,"context_line":"        \"\"\"test delete cg when CG is faild-over\"\"\""},{"line_number":1936,"context_line":"        driver \u003d mock.MagicMock()"},{"line_number":1937,"context_line":"        driver.VERSION \u003d \"VERSION\""},{"line_number":1938,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_8380bcf6","line":1935,"range":{"start_line":1935,"start_character":37,"end_line":1935,"end_character":42},"updated":"2017-08-16 02:34:13.000000000","message":"nit: failed","commit_id":"55bbd427e01068da6b5da60770a55f8121225be5"}],"cinder/volume/drivers/ibm/ibm_storage/xiv_proxy.py":[{"author":{"_account_id":25805,"name":"Yu Shengzuo","email":"yu.shengzuo@99cloud.net","username":"yuc"},"change_message_id":"65c3c7dde8cd84e13ae6a13be840595498d3fb60","unresolved":false,"context_lines":[{"line_number":1906,"context_line":"    def delete_group(self, context, group, volumes):"},{"line_number":1907,"context_line":"        \"\"\"Deletes a group.\"\"\""},{"line_number":1908,"context_line":"        rep_status \u003d group.get(\u0027replication_status\u0027)"},{"line_number":1909,"context_line":"        if rep_status \u003d\u003d fields.ReplicationStatus.ENABLED \\"},{"line_number":1910,"context_line":"                or rep_status \u003d\u003d fields.ReplicationStatus.FAILED_OVER:"},{"line_number":1911,"context_line":"            msg \u003d \"Error: Disable group replication before deleting group.\""},{"line_number":1912,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_62afd694","line":1909,"range":{"start_line":1909,"start_character":58,"end_line":1909,"end_character":59},"updated":"2017-07-29 08:56:00.000000000","message":"Please use \u0027(....)\u0027 instead of \u0027\\\u0027","commit_id":"ca2989a01cf2afede1a2a6799dfacd31632eedfa"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"6b77b2a72b47597ac6758d7af3ded8cdfe3cc6e5","unresolved":false,"context_lines":[{"line_number":1906,"context_line":"    def delete_group(self, context, group, volumes):"},{"line_number":1907,"context_line":"        \"\"\"Deletes a group.\"\"\""},{"line_number":1908,"context_line":"        rep_status \u003d group.get(\u0027replication_status\u0027)"},{"line_number":1909,"context_line":"        if (rep_status \u003d\u003d fields.ReplicationStatus.ENABLED or rep_status \u003d\u003d"},{"line_number":1910,"context_line":"                fields.ReplicationStatus.FAILED_OVER):"},{"line_number":1911,"context_line":"            msg \u003d \"Error: Disable group replication before deleting group.\""},{"line_number":1912,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df3967d1_ffcf8bad","line":1909,"range":{"start_line":1909,"start_character":61,"end_line":1909,"end_character":75},"updated":"2017-08-02 03:51:28.000000000","message":"put this to new line, it will easier to read","commit_id":"baa3c81d41cddb658a0904e567f01b53b6bd0ef8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"521482789ab3783e1b9e3cd8dfb3e6eb0c22c4f1","unresolved":false,"context_lines":[{"line_number":1909,"context_line":"        enabled \u003d fields.ReplicationStatus.ENABLED"},{"line_number":1910,"context_line":"        failed_over \u003d fields.ReplicationStatus.FAILED_OVER"},{"line_number":1911,"context_line":"        if rep_status \u003d\u003d enabled or rep_status \u003d\u003d failed_over:"},{"line_number":1912,"context_line":"            msg \u003d \"Error: Disable group replication before deleting group.\""},{"line_number":1913,"context_line":"            LOG.error(msg)"},{"line_number":1914,"context_line":"            raise self._get_exception()(msg)"},{"line_number":1915,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"df3967d1_ddb37897","line":1912,"updated":"2017-08-03 13:42:34.000000000","message":"We don\u0027t need \u0027Error\u0027 word here","commit_id":"5fd3d0fd16ad4e0305e07e7f151c0e2020b0885c"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c53fd6c554c82762acee61e67300389031032890","unresolved":false,"context_lines":[{"line_number":1909,"context_line":"        enabled \u003d fields.ReplicationStatus.ENABLED"},{"line_number":1910,"context_line":"        failed_over \u003d fields.ReplicationStatus.FAILED_OVER"},{"line_number":1911,"context_line":"        if rep_status \u003d\u003d enabled or rep_status \u003d\u003d failed_over:"},{"line_number":1912,"context_line":"            msg \u003d \"Disable group replication before deleting group.\""},{"line_number":1913,"context_line":"            LOG.error(msg)"},{"line_number":1914,"context_line":"            raise self._get_exception()(msg)"},{"line_number":1915,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f436f4f_cdeee120","line":1912,"range":{"start_line":1912,"start_character":12,"end_line":1912,"end_character":68},"updated":"2017-08-16 14:59:24.000000000","message":"This should be translated as it goes to an exception.","commit_id":"f41f71c4fcc763d99822b539edc5a6524c186bca"}]}
