)]}'
{"cinder/tests/unit/volume/drivers/nec/cli_test.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def view_all(self, conf_ismview_path\u003dNone, delete_ismview\u003dTrue,"},{"line_number":25,"context_line":"                 cmd_lock\u003dTrue):"},{"line_number":26,"context_line":"        with open(conf_ismview_path, \u0027r\u0027) as f:"},{"line_number":27,"context_line":"            out \u003d f.read()"},{"line_number":28,"context_line":"        return out"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_3fb2bd06","line":26,"updated":"2016-11-02 15:27:09.000000000","message":"Can we avoid reading real files in unit tests, please?","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def view_all(self, conf_ismview_path\u003dNone, delete_ismview\u003dTrue,"},{"line_number":25,"context_line":"                 cmd_lock\u003dTrue):"},{"line_number":26,"context_line":"        with open(conf_ismview_path, \u0027r\u0027) as f:"},{"line_number":27,"context_line":"            out \u003d f.read()"},{"line_number":28,"context_line":"        return out"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_7084440a","line":26,"in_reply_to":"ba5da102_3fb2bd06","updated":"2016-11-11 09:18:30.000000000","message":"Done","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_cfa125fa","line":2,"updated":"2016-11-27 20:26:50.000000000","message":"2016","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_6ed44aeb","line":2,"in_reply_to":"5a74a57a_cfa125fa","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"}],"cinder/tests/unit/volume/drivers/nec/test.xml":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003cREQUEST\u003e"},{"line_number":2,"context_line":" \u003cCMD_REQUEST cmd_name\u003d\"/opt/iSMCliGateway/impl/query/iSMquery\""},{"line_number":3,"context_line":"              arg\u003d\"-cinder -xml -all \""},{"line_number":4,"context_line":"              version\u003d\"Version 9.4.001\"\u003e"}],"source_content_type":"application/xml","patch_set":5,"id":"ba5da102_1fa8998c","line":1,"updated":"2016-11-02 15:27:09.000000000","message":"Please, add mode user-friendly file name","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003cREQUEST\u003e"},{"line_number":2,"context_line":" \u003cCMD_REQUEST cmd_name\u003d\"/opt/iSMCliGateway/impl/query/iSMquery\""},{"line_number":3,"context_line":"              arg\u003d\"-cinder -xml -all \""},{"line_number":4,"context_line":"              version\u003d\"Version 9.4.001\"\u003e"}],"source_content_type":"application/xml","patch_set":5,"id":"9a629dbe_d0ac308e","line":1,"in_reply_to":"ba5da102_1fa8998c","updated":"2016-11-11 09:18:30.000000000","message":"Done.\nDeleted this file.","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"}],"cinder/tests/unit/volume/drivers/nec/test_volume.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from cinder.db.sqlalchemy.models import Volume"},{"line_number":18,"context_line":"from cinder import exception"},{"line_number":19,"context_line":"from cinder.tests.unit.volume.drivers.nec.volume_common_test\\"},{"line_number":20,"context_line":"    import MStorageVolumeCommon"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_9f7bc927","line":17,"updated":"2016-11-02 15:27:09.000000000","message":"According to the openstack hacking rules [1], please, import modules, not objects. Also, please change import order according to the guidelines\n\n[1] http://docs.openstack.org/developer/hacking/","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from cinder.db.sqlalchemy.models import Volume"},{"line_number":18,"context_line":"from cinder import exception"},{"line_number":19,"context_line":"from cinder.tests.unit.volume.drivers.nec.volume_common_test\\"},{"line_number":20,"context_line":"    import MStorageVolumeCommon"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_d0c35036","line":17,"in_reply_to":"ba5da102_9f7bc927","updated":"2016-11-11 09:18:30.000000000","message":"Done","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_af9ce9c0","line":2,"updated":"2016-11-27 20:26:50.000000000","message":"2016","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_aedae214","line":2,"in_reply_to":"5a74a57a_af9ce9c0","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from cinder.volume.drivers.nec.volume_helper import MStorageDSVDriver"},{"line_number":24,"context_line":"from mock import Mock"},{"line_number":25,"context_line":"from mock import patch"},{"line_number":26,"context_line":"import unittest"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def mock_set_config(self, configuration, db, host, driver_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_efa261fb","line":26,"updated":"2016-11-27 20:26:50.000000000","message":"See the following guidelines for import order.\n\nhttp://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from cinder.volume.drivers.nec.volume_helper import MStorageDSVDriver"},{"line_number":24,"context_line":"from mock import Mock"},{"line_number":25,"context_line":"from mock import patch"},{"line_number":26,"context_line":"import unittest"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def mock_set_config(self, configuration, db, host, driver_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_0e0af689","line":26,"in_reply_to":"5a74a57a_efa261fb","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        pass"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def test_getxml(self):"},{"line_number":134,"context_line":"        self.assertNotEqual(None, self.xml, \"iSMview xml should not be None\")"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def test_selectldn_for_normalvolume(self):"},{"line_number":137,"context_line":"        ldn \u003d self._select_ldnumber(self.used_ldns, self.max_ld_count)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_066338dd","line":134,"range":{"start_line":134,"start_character":13,"end_line":134,"end_character":27},"updated":"2016-12-09 15:52:57.000000000","message":"Please use assertIsNotNone()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        pass"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def test_getxml(self):"},{"line_number":134,"context_line":"        self.assertNotEqual(None, self.xml, \"iSMview xml should not be None\")"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def test_selectldn_for_normalvolume(self):"},{"line_number":137,"context_line":"        ldn \u003d self._select_ldnumber(self.used_ldns, self.max_ld_count)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a93137ef","line":134,"range":{"start_line":134,"start_character":13,"end_line":134,"end_character":27},"in_reply_to":"3a71b18c_066338dd","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":460,"context_line":"        mock_setUp(self)"},{"line_number":461,"context_line":"        mock_getldset \u003d mock.Mock()"},{"line_number":462,"context_line":"        self._common.get_ldset \u003d mock_getldset"},{"line_number":463,"context_line":"        self._common.get_ldset.return_value \u003d\\"},{"line_number":464,"context_line":"            self.ldsets[\"LX:OpenStack0\"]"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_86abc888","line":463,"range":{"start_line":463,"start_character":45,"end_line":463,"end_character":46},"updated":"2016-12-09 15:52:57.000000000","message":"I think this can all fit on one line. We try to avoid using \\ to span multiple lines. Wrapping in () is preferred.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":460,"context_line":"        mock_setUp(self)"},{"line_number":461,"context_line":"        mock_getldset \u003d mock.Mock()"},{"line_number":462,"context_line":"        self._common.get_ldset \u003d mock_getldset"},{"line_number":463,"context_line":"        self._common.get_ldset.return_value \u003d\\"},{"line_number":464,"context_line":"            self.ldsets[\"LX:OpenStack0\"]"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_295447fc","line":463,"range":{"start_line":463,"start_character":45,"end_line":463,"end_character":46},"in_reply_to":"3a71b18c_86abc888","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from cinder.volume.drivers.nec import volume_helper"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def mock_set_config(self, configuration, db, host, driver_name):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    self._db \u003d db"},{"line_number":28,"context_line":"    self._host \u003d host"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_0b0471be","line":25,"updated":"2016-12-13 08:44:21.000000000","message":"Please, move it inside test case class","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from cinder.volume.drivers.nec import volume_helper"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def mock_set_config(self, configuration, db, host, driver_name):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    self._db \u003d db"},{"line_number":28,"context_line":"    self._host \u003d host"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_fdf8c97e","line":25,"in_reply_to":"1a6eadb0_0b0471be","updated":"2016-12-13 14:02:09.000000000","message":"Done","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    self._diskarray \u003d self._properties[\u0027diskarray_name\u0027]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def mock_setUp(self):"},{"line_number":43,"context_line":"    self.do_setup(None)"},{"line_number":44,"context_line":"    self.vol \u003d {}"},{"line_number":45,"context_line":"    self._common \u003d volume_common_test.MStorageVolCommDummy(1, 2, 3, 4)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_8b0fa1e0","line":42,"updated":"2016-12-13 08:44:21.000000000","message":"We don\u0027t need this method. It should be done inside test case class","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    self._diskarray \u003d self._properties[\u0027diskarray_name\u0027]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def mock_setUp(self):"},{"line_number":43,"context_line":"    self.do_setup(None)"},{"line_number":44,"context_line":"    self.vol \u003d {}"},{"line_number":45,"context_line":"    self._common \u003d volume_common_test.MStorageVolCommDummy(1, 2, 3, 4)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_7d2bd9eb","line":42,"in_reply_to":"1a6eadb0_8b0fa1e0","updated":"2016-12-13 14:02:09.000000000","message":"Done","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        pass"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def test_volumeid_should_change_62scale(self):"},{"line_number":69,"context_line":"        self.vol[\u0027id\u0027] \u003d \"AAAAAAAA\""},{"line_number":70,"context_line":"        actual \u003d self._convert_id2name(self.vol)"},{"line_number":71,"context_line":"        self.assertEqual(\"LX:37mA82\", actual,"},{"line_number":72,"context_line":"                         \"ID:AAAAAAAA should be change to LX:37mA82\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_ab2b7d2f","line":69,"updated":"2016-12-13 08:44:21.000000000","message":"Please, use ddt library here and below","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        pass"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def test_volumeid_should_change_62scale(self):"},{"line_number":69,"context_line":"        self.vol[\u0027id\u0027] \u003d \"AAAAAAAA\""},{"line_number":70,"context_line":"        actual \u003d self._convert_id2name(self.vol)"},{"line_number":71,"context_line":"        self.assertEqual(\"LX:37mA82\", actual,"},{"line_number":72,"context_line":"                         \"ID:AAAAAAAA should be change to LX:37mA82\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_bd357147","line":69,"in_reply_to":"1a6eadb0_ab2b7d2f","updated":"2016-12-13 14:02:09.000000000","message":"Done","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"}],"cinder/tests/unit/volume/drivers/nec/volume_common_test.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_0f715da8","line":2,"updated":"2016-11-27 20:26:50.000000000","message":"2016","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_2efdf26d","line":2,"in_reply_to":"5a74a57a_0f715da8","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from cinder.tests.unit.volume.drivers.nec.cli_test import MStorageISMCLI"},{"line_number":18,"context_line":"from cinder.volume.drivers.nec.volume_common \\"},{"line_number":19,"context_line":"    import MStorageVolumeCommon as realcommon"},{"line_number":20,"context_line":"from lxml import etree"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_4f67d5e8","line":17,"updated":"2016-11-27 20:26:50.000000000","message":"import modules not objects.","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from cinder.tests.unit.volume.drivers.nec.cli_test import MStorageISMCLI"},{"line_number":18,"context_line":"from cinder.volume.drivers.nec.volume_common \\"},{"line_number":19,"context_line":"    import MStorageVolumeCommon as realcommon"},{"line_number":20,"context_line":"from lxml import etree"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_6efb6a79","line":17,"in_reply_to":"5a74a57a_4f67d5e8","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from cinder.tests.unit.volume.drivers.nec.cli_test import MStorageISMCLI"},{"line_number":18,"context_line":"from cinder.volume.drivers.nec.volume_common \\"},{"line_number":19,"context_line":"    import MStorageVolumeCommon as realcommon"},{"line_number":20,"context_line":"from lxml import etree"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_6f6011d0","line":19,"updated":"2016-11-27 20:26:50.000000000","message":"same","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from cinder.tests.unit.volume.drivers.nec.cli_test import MStorageISMCLI"},{"line_number":18,"context_line":"from cinder.volume.drivers.nec.volume_common \\"},{"line_number":19,"context_line":"    import MStorageVolumeCommon as realcommon"},{"line_number":20,"context_line":"from lxml import etree"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_aef10297","line":19,"in_reply_to":"5a74a57a_6f6011d0","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from cinder.tests.unit.volume.drivers.nec.cli_test import MStorageISMCLI"},{"line_number":18,"context_line":"from cinder.volume.drivers.nec.volume_common \\"},{"line_number":19,"context_line":"    import MStorageVolumeCommon as realcommon"},{"line_number":20,"context_line":"from lxml import etree"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class MStorageVolumeCommon(object):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_0fa87dda","line":20,"updated":"2016-11-27 20:26:50.000000000","message":"http://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from cinder.tests.unit.volume.drivers.nec.cli_test import MStorageISMCLI"},{"line_number":18,"context_line":"from cinder.volume.drivers.nec.volume_common \\"},{"line_number":19,"context_line":"    import MStorageVolumeCommon as realcommon"},{"line_number":20,"context_line":"from lxml import etree"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class MStorageVolumeCommon(object):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_ceec7ebd","line":20,"in_reply_to":"5a74a57a_0fa87dda","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"cf388bc92c174c1957f4abdd5e719d27724cecb2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_297b2c7c","line":1,"updated":"2016-11-29 10:15:50.000000000","message":"Why do we have a test in a driver\u0027s code?","commit_id":"cc6678af970ea623972ef04da3674dd071d91f94"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"a197922c315118e891c6105f8168a35b84b1e636","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_13aae819","line":1,"in_reply_to":"5a74a57a_297b2c7c","updated":"2016-11-30 09:55:12.000000000","message":"This is a unit test code for the driver.\nWe changed class name for easy understanding.","commit_id":"cc6678af970ea623972ef04da3674dd071d91f94"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"cf388bc92c174c1957f4abdd5e719d27724cecb2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        self._properties \u003d self.get_conf_properties()"},{"line_number":27,"context_line":"        self._context \u003d None"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def set_context(self, context):"},{"line_number":30,"context_line":"        self._context \u003d context"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def get_conf(self, host):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_097af087","line":29,"updated":"2016-11-29 10:15:50.000000000","message":"Why do we need a method instead of a property here?","commit_id":"cc6678af970ea623972ef04da3674dd071d91f94"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"a197922c315118e891c6105f8168a35b84b1e636","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        self._properties \u003d self.get_conf_properties()"},{"line_number":27,"context_line":"        self._context \u003d None"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def set_context(self, context):"},{"line_number":30,"context_line":"        self._context \u003d context"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def get_conf(self, host):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_9343586c","line":29,"in_reply_to":"5a74a57a_097af087","updated":"2016-11-30 09:55:12.000000000","message":"The test fails without this method.","commit_id":"cc6678af970ea623972ef04da3674dd071d91f94"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"cf388bc92c174c1957f4abdd5e719d27724cecb2","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self._context \u003d context"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def get_conf(self, host):"},{"line_number":33,"context_line":"        return self.get_conf_properties()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def get_conf_properties(self, conf\u003dNone):"},{"line_number":36,"context_line":"        conf \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_c95c781b","line":33,"updated":"2016-11-29 10:15:50.000000000","message":"IMO, we don\u0027t need this method here","commit_id":"cc6678af970ea623972ef04da3674dd071d91f94"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"a197922c315118e891c6105f8168a35b84b1e636","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self._context \u003d context"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def get_conf(self, host):"},{"line_number":33,"context_line":"        return self.get_conf_properties()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def get_conf_properties(self, conf\u003dNone):"},{"line_number":36,"context_line":"        conf \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_d35dd049","line":33,"in_reply_to":"5a74a57a_c95c781b","updated":"2016-11-30 09:55:12.000000000","message":"The test fails without this dummy method.","commit_id":"cc6678af970ea623972ef04da3674dd071d91f94"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self._properties \u003d self.get_conf_properties()"},{"line_number":29,"context_line":"        self._context \u003d None"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def set_context(self, context):"},{"line_number":32,"context_line":"        self._context \u003d context"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def get_conf(self, host):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_0bf2b1d2","line":31,"updated":"2016-12-13 08:44:21.000000000","message":"Why do we need \u0027set_context\u0027 and \u0027get_conf\u0027 methods?","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self._properties \u003d self.get_conf_properties()"},{"line_number":29,"context_line":"        self._context \u003d None"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def set_context(self, context):"},{"line_number":32,"context_line":"        self._context \u003d context"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def get_conf(self, host):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_7d7919fc","line":31,"in_reply_to":"1a6eadb0_0bf2b1d2","updated":"2016-12-13 14:02:09.000000000","message":"These are dummy methods for test.\nUnit test fails without these.","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    def get_ldname(volid, volformat):"},{"line_number":72,"context_line":"        return volume_common.MStorageVolumeCommon.get_ldname(volid, volformat)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def get_diskarray_max_ld_count(self, xml, root):"},{"line_number":75,"context_line":"        max_ld_count \u003d 0"},{"line_number":76,"context_line":"        for section in root.xpath("},{"line_number":77,"context_line":"                \u0027./\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_6bbfa5d0","line":74,"updated":"2016-12-13 08:44:21.000000000","message":"xml param is not used in the method","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    def get_ldname(volid, volformat):"},{"line_number":72,"context_line":"        return volume_common.MStorageVolumeCommon.get_ldname(volid, volformat)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def get_diskarray_max_ld_count(self, xml, root):"},{"line_number":75,"context_line":"        max_ld_count \u003d 0"},{"line_number":76,"context_line":"        for section in root.xpath("},{"line_number":77,"context_line":"                \u0027./\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_1d6bc51f","line":74,"in_reply_to":"1a6eadb0_6bbfa5d0","updated":"2016-12-13 14:02:09.000000000","message":"Deleted","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        pass"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"class volumeAPI(object):"},{"line_number":312,"context_line":"    def get_volume_metadata(self, context, volume):"},{"line_number":313,"context_line":"        pass"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_6ba6c5c2","line":311,"updated":"2016-12-13 08:44:21.000000000","message":"Why do we need these classes?","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        pass"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"class volumeAPI(object):"},{"line_number":312,"context_line":"    def get_volume_metadata(self, context, volume):"},{"line_number":313,"context_line":"        pass"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_dd5f8d70","line":311,"in_reply_to":"1a6eadb0_6ba6c5c2","updated":"2016-12-13 14:02:09.000000000","message":"Deleted, no longer needed.","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"}],"cinder/volume/drivers/nec/__init__.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_bff08d92","line":2,"updated":"2016-11-02 15:27:09.000000000","message":"You don\u0027t need to add copyright to empty files","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_10e068cc","line":2,"in_reply_to":"ba5da102_bff08d92","updated":"2016-11-11 09:18:30.000000000","message":"Done","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"}],"cinder/volume/drivers/nec/cli.py":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"4462dda709b1bdae413970ee9339c9c562b7f1c9","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def create(self):"},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            ssh \u003d paramiko.SSHClient()"},{"line_number":57,"context_line":"            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())"},{"line_number":58,"context_line":"            if self.password:"},{"line_number":59,"context_line":"                ssh.connect(self.ip,"},{"line_number":60,"context_line":"                            port\u003dself.port,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_77521115","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":69},"updated":"2016-10-28 11:24:06.000000000","message":"You\u0027ve broken strict_ssh_host_key_policy here. It would be better to add passphrase support to ssh_utils directly and use that, I think.","commit_id":"581cd19f6dedb78be48376f09157b0b908ae30f6"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"ed10e5e1d479c9b640b8c2e3a6a1c0e3248b77f5","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def create(self):"},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            ssh \u003d paramiko.SSHClient()"},{"line_number":57,"context_line":"            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())"},{"line_number":58,"context_line":"            if self.password:"},{"line_number":59,"context_line":"                ssh.connect(self.ip,"},{"line_number":60,"context_line":"                            port\u003dself.port,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_0eac32ec","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":69},"in_reply_to":"ba5da102_77521115","updated":"2016-11-09 09:40:16.000000000","message":"Done.\nWe obsoleted the passphrase option and use ssh_utils.SSHPool directly, because storing passphrase in cinder.conf does not improve security very much.","commit_id":"581cd19f6dedb78be48376f09157b0b908ae30f6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_cf7a0588","line":2,"updated":"2016-11-27 20:26:50.000000000","message":"2016","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_ce439ead","line":2,"in_reply_to":"5a74a57a_cf7a0588","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from cinder.coordination import synchronized"},{"line_number":18,"context_line":"from cinder import exception"},{"line_number":19,"context_line":"from cinder import ssh_utils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import os"},{"line_number":22,"context_line":"import re"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_ef6b41b7","line":19,"updated":"2016-11-27 20:26:50.000000000","message":"the import block line 17-19 should be moved after the olso_log import block.\n\nhttp://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from cinder.coordination import synchronized"},{"line_number":18,"context_line":"from cinder import exception"},{"line_number":19,"context_line":"from cinder import ssh_utils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import os"},{"line_number":22,"context_line":"import re"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_ee14daa0","line":19,"in_reply_to":"5a74a57a_ef6b41b7","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self._properties \u003d properties"},{"line_number":43,"context_line":"        self._fmt \u003d self._properties[\u0027msg_fmt\u0027]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _msg(self, msgstr):"},{"line_number":46,"context_line":"        return getattr(self, \u0027_fmt\u0027, \u0027%s\u0027) % (msgstr, )"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _execute(self, command, expected_status\u003d[0], raise_exec\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e191c69b","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":12},"updated":"2016-12-09 15:52:57.000000000","message":"Since this is used by other classes it should not be marked as private with the prepended _.\n\nCan you explain the need for this call in the first place? Would be better to just do regular logging like everywhere else.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self._properties \u003d properties"},{"line_number":43,"context_line":"        self._fmt \u003d self._properties[\u0027msg_fmt\u0027]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _msg(self, msgstr):"},{"line_number":46,"context_line":"        return getattr(self, \u0027_fmt\u0027, \u0027%s\u0027) % (msgstr, )"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _execute(self, command, expected_status\u003d[0], raise_exec\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c9459343","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":12},"in_reply_to":"3a71b18c_e191c69b","updated":"2016-12-12 13:23:28.000000000","message":"Deleted","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                    errflg \u003d 0"},{"line_number":63,"context_line":"                    errnum \u003d \"\""},{"line_number":64,"context_line":"                    errnum \u003d out + err"},{"line_number":65,"context_line":"                    LOG.debug(self._msg(\u0027errnum\u003d%s\u0027 % errnum))"},{"line_number":66,"context_line":"                    for retry_msgid in retry_msgids:"},{"line_number":67,"context_line":"                        if errnum.find(retry_msgid) \u003e\u003d 0:"},{"line_number":68,"context_line":"                            LOG.debug(self._msg(\u0027`%s` failed. %s %s \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e69e3c53","line":65,"range":{"start_line":65,"start_character":51,"end_line":65,"end_character":53},"updated":"2016-12-09 15:52:57.000000000","message":"Change % to ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                    errflg \u003d 0"},{"line_number":63,"context_line":"                    errnum \u003d \"\""},{"line_number":64,"context_line":"                    errnum \u003d out + err"},{"line_number":65,"context_line":"                    LOG.debug(self._msg(\u0027errnum\u003d%s\u0027 % errnum))"},{"line_number":66,"context_line":"                    for retry_msgid in retry_msgids:"},{"line_number":67,"context_line":"                        if errnum.find(retry_msgid) \u003e\u003d 0:"},{"line_number":68,"context_line":"                            LOG.debug(self._msg(\u0027`%s` failed. %s %s \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_6969dfbd","line":65,"range":{"start_line":65,"start_character":51,"end_line":65,"end_character":53},"in_reply_to":"3a71b18c_e69e3c53","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                        if errnum.find(retry_msgid) \u003e\u003d 0:"},{"line_number":68,"context_line":"                            LOG.debug(self._msg(\u0027`%s` failed. %s %s \u0027"},{"line_number":69,"context_line":"                                                \u0027retry_count\u003d%d\u0027"},{"line_number":70,"context_line":"                                                % (command, __name__, errnum,"},{"line_number":71,"context_line":"                                                   retry_count)))"},{"line_number":72,"context_line":"                            errflg \u003d 1"},{"line_number":73,"context_line":"                            break"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_26a9147c","line":70,"range":{"start_line":70,"start_character":48,"end_line":70,"end_character":50},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                        if errnum.find(retry_msgid) \u003e\u003d 0:"},{"line_number":68,"context_line":"                            LOG.debug(self._msg(\u0027`%s` failed. %s %s \u0027"},{"line_number":69,"context_line":"                                                \u0027retry_count\u003d%d\u0027"},{"line_number":70,"context_line":"                                                % (command, __name__, errnum,"},{"line_number":71,"context_line":"                                                   retry_count)))"},{"line_number":72,"context_line":"                            errflg \u003d 1"},{"line_number":73,"context_line":"                            break"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_89663beb","line":70,"range":{"start_line":70,"start_character":48,"end_line":70,"end_character":50},"in_reply_to":"3a71b18c_26a9147c","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                    if errflg \u003d\u003d 1:"},{"line_number":75,"context_line":"                        retry_count +\u003d 1"},{"line_number":76,"context_line":"                        if retry_count \u003e\u003d 60:"},{"line_number":77,"context_line":"                            raise exception.Error(self._msg(\u0027Timeout `%s`.\u0027"},{"line_number":78,"context_line":"                                                            \u0027 status\u003d%d, \u0027"},{"line_number":79,"context_line":"                                                            \u0027out\u003d\"%s\", \u0027"},{"line_number":80,"context_line":"                                                            \u0027err\u003d\"%s\".\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_81f3b209","line":77,"range":{"start_line":77,"start_character":60,"end_line":77,"end_character":61},"updated":"2016-12-09 15:52:57.000000000","message":"Needs _() translation.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                    if errflg \u003d\u003d 1:"},{"line_number":75,"context_line":"                        retry_count +\u003d 1"},{"line_number":76,"context_line":"                        if retry_count \u003e\u003d 60:"},{"line_number":77,"context_line":"                            raise exception.Error(self._msg(\u0027Timeout `%s`.\u0027"},{"line_number":78,"context_line":"                                                            \u0027 status\u003d%d, \u0027"},{"line_number":79,"context_line":"                                                            \u0027out\u003d\"%s\", \u0027"},{"line_number":80,"context_line":"                                                            \u0027err\u003d\"%s\".\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_09a14bf8","line":77,"range":{"start_line":77,"start_character":60,"end_line":77,"end_character":61},"in_reply_to":"3a71b18c_81f3b209","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                        continue"},{"line_number":87,"context_line":"                    else:"},{"line_number":88,"context_line":"                        if raise_exec is True:"},{"line_number":89,"context_line":"                            raise exception.Error(self._msg(\u0027`%s` failed.\u0027"},{"line_number":90,"context_line":"                                                            % (command, )))"},{"line_number":91,"context_line":"            except EOFError:"},{"line_number":92,"context_line":"                LOG.debug(self._msg(\u0027EOFError has occurred. %s retry_count\u003d%d\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c1ddaa71","line":89,"range":{"start_line":89,"start_character":60,"end_line":89,"end_character":61},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                        continue"},{"line_number":87,"context_line":"                    else:"},{"line_number":88,"context_line":"                        if raise_exec is True:"},{"line_number":89,"context_line":"                            raise exception.Error(self._msg(\u0027`%s` failed.\u0027"},{"line_number":90,"context_line":"                                                            % (command, )))"},{"line_number":91,"context_line":"            except EOFError:"},{"line_number":92,"context_line":"                LOG.debug(self._msg(\u0027EOFError has occurred. %s retry_count\u003d%d\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_69b0ff43","line":89,"range":{"start_line":89,"start_character":60,"end_line":89,"end_character":61},"in_reply_to":"3a71b18c_c1ddaa71","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                                            % (command, )))"},{"line_number":91,"context_line":"            except EOFError:"},{"line_number":92,"context_line":"                LOG.debug(self._msg(\u0027EOFError has occurred. %s retry_count\u003d%d\u0027"},{"line_number":93,"context_line":"                                    % (__name__, retry_count)))"},{"line_number":94,"context_line":"                retry_count +\u003d 1"},{"line_number":95,"context_line":"                if retry_count \u003e\u003d 60:"},{"line_number":96,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_264594b2","line":93,"range":{"start_line":93,"start_character":36,"end_line":93,"end_character":37},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                                            % (command, )))"},{"line_number":91,"context_line":"            except EOFError:"},{"line_number":92,"context_line":"                LOG.debug(self._msg(\u0027EOFError has occurred. %s retry_count\u003d%d\u0027"},{"line_number":93,"context_line":"                                    % (__name__, retry_count)))"},{"line_number":94,"context_line":"                retry_count +\u003d 1"},{"line_number":95,"context_line":"                if retry_count \u003e\u003d 60:"},{"line_number":96,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a98db77d","line":93,"range":{"start_line":93,"start_character":36,"end_line":93,"end_character":37},"in_reply_to":"3a71b18c_264594b2","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                                                     raise_exec)"},{"line_number":110,"context_line":"            except EOFError:"},{"line_number":111,"context_line":"                LOG.debug(self._msg(\u0027EOFError has occurred. %s retry_count\u003d%d\u0027"},{"line_number":112,"context_line":"                                    % (__name__, retry_count)))"},{"line_number":113,"context_line":"                retry_count +\u003d 1"},{"line_number":114,"context_line":"                if retry_count \u003e\u003d 60:"},{"line_number":115,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_860ca895","line":112,"range":{"start_line":112,"start_character":36,"end_line":112,"end_character":37},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,\n\nAlso, when more than just one variable to be formatted, please use named args:\n\n\u0027%(name)s retry_count\u003d%(retry_count)d\u0027, {\u0027name\u0027: __name__, \u0027retry_count\u0027: retry_count}","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                                                     raise_exec)"},{"line_number":110,"context_line":"            except EOFError:"},{"line_number":111,"context_line":"                LOG.debug(self._msg(\u0027EOFError has occurred. %s retry_count\u003d%d\u0027"},{"line_number":112,"context_line":"                                    % (__name__, retry_count)))"},{"line_number":113,"context_line":"                retry_count +\u003d 1"},{"line_number":114,"context_line":"                if retry_count \u003e\u003d 60:"},{"line_number":115,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_89947b8b","line":112,"range":{"start_line":112,"start_character":36,"end_line":112,"end_character":37},"in_reply_to":"3a71b18c_860ca895","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                max_size\u003dself._properties[\u0027ssh_max_pool_conn\u0027])"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        with self._sshpool.item() as ssh:"},{"line_number":135,"context_line":"            LOG.debug(self._msg(\u0027`%s` executing...\u0027 % (command, )))"},{"line_number":136,"context_line":"            stdin, stdout, stderr \u003d ssh.exec_command(command)"},{"line_number":137,"context_line":"            stdin.close()"},{"line_number":138,"context_line":"            channel \u003d stdout.channel"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e668fc23","line":135,"range":{"start_line":135,"start_character":52,"end_line":135,"end_character":53},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                max_size\u003dself._properties[\u0027ssh_max_pool_conn\u0027])"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        with self._sshpool.item() as ssh:"},{"line_number":135,"context_line":"            LOG.debug(self._msg(\u0027`%s` executing...\u0027 % (command, )))"},{"line_number":136,"context_line":"            stdin, stdout, stderr \u003d ssh.exec_command(command)"},{"line_number":137,"context_line":"            stdin.close()"},{"line_number":138,"context_line":"            channel \u003d stdout.channel"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a9b6973b","line":135,"range":{"start_line":135,"start_character":52,"end_line":135,"end_character":53},"in_reply_to":"3a71b18c_e668fc23","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                if channel.exit_status_ready():"},{"line_number":149,"context_line":"                    status \u003d channel.recv_exit_status()"},{"line_number":150,"context_line":"                    break"},{"line_number":151,"context_line":"            LOG.debug(self._msg(\u0027`%s` done. status\u003d%d.\u0027) % (command, status))"},{"line_number":152,"context_line":"            out, err \u003d \u0027\u0027.join(_out), \u0027\u0027.join(_err)"},{"line_number":153,"context_line":"            if expected_status is not None and status not in expected_status:"},{"line_number":154,"context_line":"                LOG.debug(self._msg(\u0027`%s` failed.\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_66630c42","line":151,"range":{"start_line":151,"start_character":57,"end_line":151,"end_character":58},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                if channel.exit_status_ready():"},{"line_number":149,"context_line":"                    status \u003d channel.recv_exit_status()"},{"line_number":150,"context_line":"                    break"},{"line_number":151,"context_line":"            LOG.debug(self._msg(\u0027`%s` done. status\u003d%d.\u0027) % (command, status))"},{"line_number":152,"context_line":"            out, err \u003d \u0027\u0027.join(_out), \u0027\u0027.join(_err)"},{"line_number":153,"context_line":"            if expected_status is not None and status not in expected_status:"},{"line_number":154,"context_line":"                LOG.debug(self._msg(\u0027`%s` failed.\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_09886b70","line":151,"range":{"start_line":151,"start_character":57,"end_line":151,"end_character":58},"in_reply_to":"3a71b18c_66630c42","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            if expected_status is not None and status not in expected_status:"},{"line_number":154,"context_line":"                LOG.debug(self._msg(\u0027`%s` failed.\u0027"},{"line_number":155,"context_line":"                                    \u0027 status\u003d%d, out\u003d\"%s\", err\u003d\"%s\".\u0027"},{"line_number":156,"context_line":"                          % (command, status, out, err)))"},{"line_number":157,"context_line":"                if raise_exec is True:"},{"line_number":158,"context_line":"                    raise exception.Error(self._msg(\u0027`%s` failed.\u0027"},{"line_number":159,"context_line":"                                                    % (command, )))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a65d247b","line":156,"range":{"start_line":156,"start_character":26,"end_line":156,"end_character":27},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            if expected_status is not None and status not in expected_status:"},{"line_number":154,"context_line":"                LOG.debug(self._msg(\u0027`%s` failed.\u0027"},{"line_number":155,"context_line":"                                    \u0027 status\u003d%d, out\u003d\"%s\", err\u003d\"%s\".\u0027"},{"line_number":156,"context_line":"                          % (command, status, out, err)))"},{"line_number":157,"context_line":"                if raise_exec is True:"},{"line_number":158,"context_line":"                    raise exception.Error(self._msg(\u0027`%s` failed.\u0027"},{"line_number":159,"context_line":"                                                    % (command, )))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_497ee36a","line":156,"range":{"start_line":156,"start_character":26,"end_line":156,"end_character":27},"in_reply_to":"3a71b18c_a65d247b","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                                    \u0027 status\u003d%d, out\u003d\"%s\", err\u003d\"%s\".\u0027"},{"line_number":156,"context_line":"                          % (command, status, out, err)))"},{"line_number":157,"context_line":"                if raise_exec is True:"},{"line_number":158,"context_line":"                    raise exception.Error(self._msg(\u0027`%s` failed.\u0027"},{"line_number":159,"context_line":"                                                    % (command, )))"},{"line_number":160,"context_line":"            return out, err, status"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_81cad29f","line":158,"range":{"start_line":158,"start_character":52,"end_line":158,"end_character":53},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                                    \u0027 status\u003d%d, out\u003d\"%s\", err\u003d\"%s\".\u0027"},{"line_number":156,"context_line":"                          % (command, status, out, err)))"},{"line_number":157,"context_line":"                if raise_exec is True:"},{"line_number":158,"context_line":"                    raise exception.Error(self._msg(\u0027`%s` failed.\u0027"},{"line_number":159,"context_line":"                                                    % (command, )))"},{"line_number":160,"context_line":"            return out, err, status"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a9bbf70d","line":158,"range":{"start_line":158,"start_character":52,"end_line":158,"end_character":53},"in_reply_to":"3a71b18c_81cad29f","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                          % (command, status, out, err)))"},{"line_number":157,"context_line":"                if raise_exec is True:"},{"line_number":158,"context_line":"                    raise exception.Error(self._msg(\u0027`%s` failed.\u0027"},{"line_number":159,"context_line":"                                                    % (command, )))"},{"line_number":160,"context_line":"            return out, err, status"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def view_all(self, conf_ismview_path\u003dNone, delete_ismview\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e64f1cbc","line":159,"range":{"start_line":159,"start_character":52,"end_line":159,"end_character":53},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                          % (command, status, out, err)))"},{"line_number":157,"context_line":"                if raise_exec is True:"},{"line_number":158,"context_line":"                    raise exception.Error(self._msg(\u0027`%s` failed.\u0027"},{"line_number":159,"context_line":"                                                    % (command, )))"},{"line_number":160,"context_line":"            return out, err, status"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def view_all(self, conf_ismview_path\u003dNone, delete_ismview\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c9b83314","line":159,"range":{"start_line":159,"start_character":52,"end_line":159,"end_character":53},"in_reply_to":"3a71b18c_e64f1cbc","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            if delete_ismview:"},{"line_number":182,"context_line":"                if os.path.exists(conf_ismview_path):"},{"line_number":183,"context_line":"                    os.remove(conf_ismview_path)"},{"line_number":184,"context_line":"                    LOG.debug(self._msg(\u0027Remove clioutmsg xml to %s.\u0027 %"},{"line_number":185,"context_line":"                                        conf_ismview_path))"},{"line_number":186,"context_line":"            else:"},{"line_number":187,"context_line":"                with open(conf_ismview_path, \u0027w+\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_264af4ac","line":184,"range":{"start_line":184,"start_character":69,"end_line":184,"end_character":71},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            if delete_ismview:"},{"line_number":182,"context_line":"                if os.path.exists(conf_ismview_path):"},{"line_number":183,"context_line":"                    os.remove(conf_ismview_path)"},{"line_number":184,"context_line":"                    LOG.debug(self._msg(\u0027Remove clioutmsg xml to %s.\u0027 %"},{"line_number":185,"context_line":"                                        conf_ismview_path))"},{"line_number":186,"context_line":"            else:"},{"line_number":187,"context_line":"                with open(conf_ismview_path, \u0027w+\u0027) as f:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_093dcb8e","line":184,"range":{"start_line":184,"start_character":69,"end_line":184,"end_character":71},"in_reply_to":"3a71b18c_264af4ac","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            else:"},{"line_number":187,"context_line":"                with open(conf_ismview_path, \u0027w+\u0027) as f:"},{"line_number":188,"context_line":"                    f.write(out)"},{"line_number":189,"context_line":"                    LOG.debug(self._msg(\u0027Wrote clioutmsg xml to %s.\u0027 %"},{"line_number":190,"context_line":"                                        conf_ismview_path))"},{"line_number":191,"context_line":"        return out"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a6d444bd","line":189,"range":{"start_line":189,"start_character":68,"end_line":189,"end_character":70},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            else:"},{"line_number":187,"context_line":"                with open(conf_ismview_path, \u0027w+\u0027) as f:"},{"line_number":188,"context_line":"                    f.write(out)"},{"line_number":189,"context_line":"                    LOG.debug(self._msg(\u0027Wrote clioutmsg xml to %s.\u0027 %"},{"line_number":190,"context_line":"                                        conf_ismview_path))"},{"line_number":191,"context_line":"        return out"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_49434313","line":189,"range":{"start_line":189,"start_character":68,"end_line":189,"end_character":70},"in_reply_to":"3a71b18c_a6d444bd","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":203,"context_line":"                break"},{"line_number":204,"context_line":"        if ldn \u003e max_ld_count - 1:"},{"line_number":205,"context_line":"            LOG.debug(self._msg(\u0027All LDNs are used.\u0027))"},{"line_number":206,"context_line":"            raise exception.Error(self._msg(\u0027All LDNs are used.\u0027))"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        return selected_pool, ldn"},{"line_number":209,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c1c4ca93","line":206,"range":{"start_line":206,"start_character":44,"end_line":206,"end_character":45},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":203,"context_line":"                break"},{"line_number":204,"context_line":"        if ldn \u003e max_ld_count - 1:"},{"line_number":205,"context_line":"            LOG.debug(self._msg(\u0027All LDNs are used.\u0027))"},{"line_number":206,"context_line":"            raise exception.Error(self._msg(\u0027All LDNs are used.\u0027))"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        return selected_pool, ldn"},{"line_number":209,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c94f5332","line":206,"range":{"start_line":206,"start_character":44,"end_line":206,"end_character":45},"in_reply_to":"3a71b18c_c1c4ca93","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self._execute(\u0027iSMrc_pair -pair -mv %s -mvflg ld -rv %s -rvflg ld\u0027"},{"line_number":266,"context_line":"                      % (mvname, rvname))"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        LOG.debug(self._msg(\u0027Pair command completed. MV \u003d %s RV \u003d %s.\u0027 %"},{"line_number":269,"context_line":"                            (mvname, rvname)))"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def unpair(self, mvname, rvname, flag):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a6eb6477","line":268,"range":{"start_line":268,"start_character":70,"end_line":268,"end_character":72},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self._execute(\u0027iSMrc_pair -pair -mv %s -mvflg ld -rv %s -rvflg ld\u0027"},{"line_number":266,"context_line":"                      % (mvname, rvname))"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        LOG.debug(self._msg(\u0027Pair command completed. MV \u003d %s RV \u003d %s.\u0027 %"},{"line_number":269,"context_line":"                            (mvname, rvname)))"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def unpair(self, mvname, rvname, flag):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a969378e","line":268,"range":{"start_line":268,"start_character":70,"end_line":268,"end_character":72},"in_reply_to":"3a71b18c_a6eb6477","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                          \u0027 -rvflg ld -force all\u0027"},{"line_number":280,"context_line":"                          % (mvname, rvname))"},{"line_number":281,"context_line":"        else:"},{"line_number":282,"context_line":"            LOG.debug(self._msg(\u0027unpair flag ERROR. flag \u003d %s\u0027 % flag))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        LOG.debug(self._msg(\u0027Unpair command completed. MV \u003d %s, RV \u003d %s.\u0027 %"},{"line_number":285,"context_line":"                            (mvname, rvname)))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c602203e","line":282,"range":{"start_line":282,"start_character":62,"end_line":282,"end_character":64},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                          \u0027 -rvflg ld -force all\u0027"},{"line_number":280,"context_line":"                          % (mvname, rvname))"},{"line_number":281,"context_line":"        else:"},{"line_number":282,"context_line":"            LOG.debug(self._msg(\u0027unpair flag ERROR. flag \u003d %s\u0027 % flag))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        LOG.debug(self._msg(\u0027Unpair command completed. MV \u003d %s, RV \u003d %s.\u0027 %"},{"line_number":285,"context_line":"                            (mvname, rvname)))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e905efc1","line":282,"range":{"start_line":282,"start_character":62,"end_line":282,"end_character":64},"in_reply_to":"3a71b18c_c602203e","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        else:"},{"line_number":282,"context_line":"            LOG.debug(self._msg(\u0027unpair flag ERROR. flag \u003d %s\u0027 % flag))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        LOG.debug(self._msg(\u0027Unpair command completed. MV \u003d %s, RV \u003d %s.\u0027 %"},{"line_number":285,"context_line":"                            (mvname, rvname)))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    def replicate(self, mvname, rvname, flag):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_26f83449","line":284,"range":{"start_line":284,"start_character":73,"end_line":284,"end_character":75},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        else:"},{"line_number":282,"context_line":"            LOG.debug(self._msg(\u0027unpair flag ERROR. flag \u003d %s\u0027 % flag))"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        LOG.debug(self._msg(\u0027Unpair command completed. MV \u003d %s, RV \u003d %s.\u0027 %"},{"line_number":285,"context_line":"                            (mvname, rvname)))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    def replicate(self, mvname, rvname, flag):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_290c47eb","line":284,"range":{"start_line":284,"start_character":73,"end_line":284,"end_character":75},"in_reply_to":"3a71b18c_26f83449","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                          \u0027 -rvflg ld -nowait -cpmode bg\u0027"},{"line_number":295,"context_line":"                          % (mvname, rvname))"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        LOG.debug(self._msg(\u0027Replicate command completed. MV \u003d %s RV \u003d %s.\u0027 %"},{"line_number":298,"context_line":"                            (mvname, rvname)))"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    def separate(self, mvname, rvname, flag):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c68940cc","line":297,"range":{"start_line":297,"start_character":75,"end_line":297,"end_character":77},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                          \u0027 -rvflg ld -nowait -cpmode bg\u0027"},{"line_number":295,"context_line":"                          % (mvname, rvname))"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        LOG.debug(self._msg(\u0027Replicate command completed. MV \u003d %s RV \u003d %s.\u0027 %"},{"line_number":298,"context_line":"                            (mvname, rvname)))"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    def separate(self, mvname, rvname, flag):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_49118303","line":297,"range":{"start_line":297,"start_character":75,"end_line":297,"end_character":77},"in_reply_to":"3a71b18c_c68940cc","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":315,"context_line":"            LOG.debug(self._msg(\u0027separate flag ERROR. flag \u003d %s\u0027 % flag))"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        LOG.debug(self._msg(\u0027Separate command completed. MV \u003d %s RV \u003d %s.\u0027"},{"line_number":318,"context_line":"                            % (mvname, rvname)))"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def query_MV_RV_status(self, ldname, rpltype):"},{"line_number":321,"context_line":"        if (rpltype \u003d\u003d \u0027MV\u0027):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_268f54cd","line":318,"range":{"start_line":318,"start_character":28,"end_line":318,"end_character":29},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":315,"context_line":"            LOG.debug(self._msg(\u0027separate flag ERROR. flag \u003d %s\u0027 % flag))"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        LOG.debug(self._msg(\u0027Separate command completed. MV \u003d %s RV \u003d %s.\u0027"},{"line_number":318,"context_line":"                            % (mvname, rvname)))"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def query_MV_RV_status(self, ldname, rpltype):"},{"line_number":321,"context_line":"        if (rpltype \u003d\u003d \u0027MV\u0027):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_69fabfbe","line":318,"range":{"start_line":318,"start_character":28,"end_line":318,"end_character":29},"in_reply_to":"3a71b18c_268f54cd","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":335,"context_line":"                                             % ldname)"},{"line_number":336,"context_line":"        else:"},{"line_number":337,"context_line":"            LOG.debug(self._msg(\u0027rpltype flag ERROR. rpltype \u003d %s\u0027"},{"line_number":338,"context_line":"                                % rpltype))"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        query_status \u003d out.strip()"},{"line_number":341,"context_line":"        return query_status"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_66bf8c60","line":338,"range":{"start_line":338,"start_character":32,"end_line":338,"end_character":33},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":335,"context_line":"                                             % ldname)"},{"line_number":336,"context_line":"        else:"},{"line_number":337,"context_line":"            LOG.debug(self._msg(\u0027rpltype flag ERROR. rpltype \u003d %s\u0027"},{"line_number":338,"context_line":"                                % rpltype))"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        query_status \u003d out.strip()"},{"line_number":341,"context_line":"        return query_status"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_89f71bd2","line":338,"range":{"start_line":338,"start_character":32,"end_line":338,"end_character":33},"in_reply_to":"3a71b18c_66bf8c60","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":359,"context_line":"            out \u003d out.replace(ldname, \"\")"},{"line_number":360,"context_line":"        else:"},{"line_number":361,"context_line":"            LOG.debug(self._msg(\u0027rpltype flag ERROR. rpltype \u003d %s\u0027"},{"line_number":362,"context_line":"                                % rpltype))"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"        query_name \u003d out.strip()"},{"line_number":365,"context_line":"        return query_name"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_86b66888","line":362,"range":{"start_line":362,"start_character":32,"end_line":362,"end_character":33},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":359,"context_line":"            out \u003d out.replace(ldname, \"\")"},{"line_number":360,"context_line":"        else:"},{"line_number":361,"context_line":"            LOG.debug(self._msg(\u0027rpltype flag ERROR. rpltype \u003d %s\u0027"},{"line_number":362,"context_line":"                                % rpltype))"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"        query_name \u003d out.strip()"},{"line_number":365,"context_line":"        return query_name"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a90057ac","line":362,"range":{"start_line":362,"start_character":32,"end_line":362,"end_character":33},"in_reply_to":"3a71b18c_86b66888","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                                             % ldname)"},{"line_number":382,"context_line":"        else:"},{"line_number":383,"context_line":"            LOG.debug(self._msg(\u0027rpltype flag ERROR. rpltype \u003d %s\u0027"},{"line_number":384,"context_line":"                                % rpltype))"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"        query_status \u003d out.strip()"},{"line_number":387,"context_line":"        return query_status"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c6b0608e","line":384,"range":{"start_line":384,"start_character":32,"end_line":384,"end_character":33},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                                             % ldname)"},{"line_number":382,"context_line":"        else:"},{"line_number":383,"context_line":"            LOG.debug(self._msg(\u0027rpltype flag ERROR. rpltype \u003d %s\u0027"},{"line_number":384,"context_line":"                                % rpltype))"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"        query_status \u003d out.strip()"},{"line_number":387,"context_line":"        return query_status"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_891e3b0a","line":384,"range":{"start_line":384,"start_character":32,"end_line":384,"end_character":33},"in_reply_to":"3a71b18c_c6b0608e","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        else:"},{"line_number":397,"context_line":"            rv_diff \u003d self.query_MV_RV_diff(volume_properties[\u0027rvname\u0027][3:],"},{"line_number":398,"context_line":"                                            \u0027RV\u0027)"},{"line_number":399,"context_line":"            rv_diff \u003d int(rv_diff.replace(\u0027KB\u0027, \u0027\u0027), 10) // 1024"},{"line_number":400,"context_line":"            if rv_diff !\u003d volume_properties[\u0027capacity\u0027]:"},{"line_number":401,"context_line":"                flag \u003d None"},{"line_number":402,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_26a67453","line":399,"range":{"start_line":399,"start_character":60,"end_line":399,"end_character":64},"updated":"2016-12-09 15:52:57.000000000","message":"Please use the units module.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        else:"},{"line_number":397,"context_line":"            rv_diff \u003d self.query_MV_RV_diff(volume_properties[\u0027rvname\u0027][3:],"},{"line_number":398,"context_line":"                                            \u0027RV\u0027)"},{"line_number":399,"context_line":"            rv_diff \u003d int(rv_diff.replace(\u0027KB\u0027, \u0027\u0027), 10) // 1024"},{"line_number":400,"context_line":"            if rv_diff !\u003d volume_properties[\u0027capacity\u0027]:"},{"line_number":401,"context_line":"                flag \u003d None"},{"line_number":402,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c914b3ea","line":399,"range":{"start_line":399,"start_character":60,"end_line":399,"end_character":64},"in_reply_to":"3a71b18c_26a67453","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":418,"context_line":"            if (flag \u003d\u003d \u0027backup\u0027):"},{"line_number":419,"context_line":"                LOG.debug(self._msg(\u0027Volume Id not found. LD name \u003d %s\u0027"},{"line_number":420,"context_line":"                                    \u0027 volume_id \u003d %s.\u0027"},{"line_number":421,"context_line":"                                    % (ldname, snapshot[\u0027volume_id\u0027])))"},{"line_number":422,"context_line":"                raise exception.Error(self._msg(\u0027LD not existed.\u0027),)"},{"line_number":423,"context_line":"            elif (flag \u003d\u003d \u0027restore\u0027):"},{"line_number":424,"context_line":"                LOG.debug(self._msg(\u0027Snapshot Id not found. LD name \u003d %s\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a647e475","line":421,"range":{"start_line":421,"start_character":36,"end_line":421,"end_character":37},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":418,"context_line":"            if (flag \u003d\u003d \u0027backup\u0027):"},{"line_number":419,"context_line":"                LOG.debug(self._msg(\u0027Volume Id not found. LD name \u003d %s\u0027"},{"line_number":420,"context_line":"                                    \u0027 volume_id \u003d %s.\u0027"},{"line_number":421,"context_line":"                                    % (ldname, snapshot[\u0027volume_id\u0027])))"},{"line_number":422,"context_line":"                raise exception.Error(self._msg(\u0027LD not existed.\u0027),)"},{"line_number":423,"context_line":"            elif (flag \u003d\u003d \u0027restore\u0027):"},{"line_number":424,"context_line":"                LOG.debug(self._msg(\u0027Snapshot Id not found. LD name \u003d %s\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_09d94b57","line":421,"range":{"start_line":421,"start_character":36,"end_line":421,"end_character":37},"in_reply_to":"3a71b18c_a647e475","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":423,"context_line":"            elif (flag \u003d\u003d \u0027restore\u0027):"},{"line_number":424,"context_line":"                LOG.debug(self._msg(\u0027Snapshot Id not found. LD name \u003d %s\u0027"},{"line_number":425,"context_line":"                                    \u0027 snapshot_id \u003d %s.\u0027"},{"line_number":426,"context_line":"                                    % (ldname, snapshot[\u0027id\u0027])))"},{"line_number":427,"context_line":"                raise exception.Error(self._msg(\u0027LD not existed.\u0027),)"},{"line_number":428,"context_line":"            elif (flag \u003d\u003d \u0027delete\u0027):"},{"line_number":429,"context_line":"                LOG.debug(self._msg(\u0027LD `%s` already unbound?\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e659dc5c","line":426,"range":{"start_line":426,"start_character":36,"end_line":426,"end_character":37},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":423,"context_line":"            elif (flag \u003d\u003d \u0027restore\u0027):"},{"line_number":424,"context_line":"                LOG.debug(self._msg(\u0027Snapshot Id not found. LD name \u003d %s\u0027"},{"line_number":425,"context_line":"                                    \u0027 snapshot_id \u003d %s.\u0027"},{"line_number":426,"context_line":"                                    % (ldname, snapshot[\u0027id\u0027])))"},{"line_number":427,"context_line":"                raise exception.Error(self._msg(\u0027LD not existed.\u0027),)"},{"line_number":428,"context_line":"            elif (flag \u003d\u003d \u0027delete\u0027):"},{"line_number":429,"context_line":"                LOG.debug(self._msg(\u0027LD `%s` already unbound?\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_29da874b","line":426,"range":{"start_line":426,"start_character":36,"end_line":426,"end_character":37},"in_reply_to":"3a71b18c_e659dc5c","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":428,"context_line":"            elif (flag \u003d\u003d \u0027delete\u0027):"},{"line_number":429,"context_line":"                LOG.debug(self._msg(\u0027LD `%s` already unbound?\u0027"},{"line_number":430,"context_line":"                                    \u0027 snapshot_id \u003d %s.\u0027"},{"line_number":431,"context_line":"                                    % (ldname, snapshot[\u0027id\u0027])))"},{"line_number":432,"context_line":"                return None"},{"line_number":433,"context_line":"            else:"},{"line_number":434,"context_line":"                LOG.debug(self._msg(\u0027check_ld_existed_rplstatus\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_0659785a","line":431,"range":{"start_line":431,"start_character":36,"end_line":431,"end_character":37},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":428,"context_line":"            elif (flag \u003d\u003d \u0027delete\u0027):"},{"line_number":429,"context_line":"                LOG.debug(self._msg(\u0027LD `%s` already unbound?\u0027"},{"line_number":430,"context_line":"                                    \u0027 snapshot_id \u003d %s.\u0027"},{"line_number":431,"context_line":"                                    % (ldname, snapshot[\u0027id\u0027])))"},{"line_number":432,"context_line":"                return None"},{"line_number":433,"context_line":"            else:"},{"line_number":434,"context_line":"                LOG.debug(self._msg(\u0027check_ld_existed_rplstatus\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_49dfc339","line":431,"range":{"start_line":431,"start_character":36,"end_line":431,"end_character":37},"in_reply_to":"3a71b18c_0659785a","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":432,"context_line":"                return None"},{"line_number":433,"context_line":"            else:"},{"line_number":434,"context_line":"                LOG.debug(self._msg(\u0027check_ld_existed_rplstatus\u0027"},{"line_number":435,"context_line":"                                    \u0027 flag error flag \u003d %s.\u0027 % flag))"},{"line_number":436,"context_line":"                raise exception.Error(self._msg(\u0027LD not existed.\u0027),)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        ld \u003d lds[ldname]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_6634ecfa","line":435,"range":{"start_line":435,"start_character":61,"end_line":435,"end_character":62},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":432,"context_line":"                return None"},{"line_number":433,"context_line":"            else:"},{"line_number":434,"context_line":"                LOG.debug(self._msg(\u0027check_ld_existed_rplstatus\u0027"},{"line_number":435,"context_line":"                                    \u0027 flag error flag \u003d %s.\u0027 % flag))"},{"line_number":436,"context_line":"                raise exception.Error(self._msg(\u0027LD not existed.\u0027),)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        ld \u003d lds[ldname]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_69e8ffe2","line":435,"range":{"start_line":435,"start_character":61,"end_line":435,"end_character":62},"in_reply_to":"3a71b18c_6634ecfa","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":441,"context_line":"            \"\"\"Do Nothing\"\"\""},{"line_number":442,"context_line":"        elif (ld[\u0027RPL Attribute\u0027] \u003d\u003d \u0027MV\u0027):"},{"line_number":443,"context_line":"            query_status \u003d self.query_MV_RV_status(ldname[3:], \u0027MV\u0027)"},{"line_number":444,"context_line":"            LOG.debug(self._msg(\u0027query_status : %s.\u0027 % query_status))"},{"line_number":445,"context_line":"            if(query_status \u003d\u003d \u0027separated\u0027):"},{"line_number":446,"context_line":"                \"\"\"unpair\"\"\""},{"line_number":447,"context_line":"                rvname \u003d self.query_MV_RV_name(ldname[3:], \u0027MV\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_863bc8ea","line":444,"range":{"start_line":444,"start_character":53,"end_line":444,"end_character":54},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":441,"context_line":"            \"\"\"Do Nothing\"\"\""},{"line_number":442,"context_line":"        elif (ld[\u0027RPL Attribute\u0027] \u003d\u003d \u0027MV\u0027):"},{"line_number":443,"context_line":"            query_status \u003d self.query_MV_RV_status(ldname[3:], \u0027MV\u0027)"},{"line_number":444,"context_line":"            LOG.debug(self._msg(\u0027query_status : %s.\u0027 % query_status))"},{"line_number":445,"context_line":"            if(query_status \u003d\u003d \u0027separated\u0027):"},{"line_number":446,"context_line":"                \"\"\"unpair\"\"\""},{"line_number":447,"context_line":"                rvname \u003d self.query_MV_RV_name(ldname[3:], \u0027MV\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a9ee97ea","line":444,"range":{"start_line":444,"start_character":53,"end_line":444,"end_character":54},"in_reply_to":"3a71b18c_863bc8ea","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                self.unpair(ldname[3:], rvname, \u0027force\u0027)"},{"line_number":449,"context_line":"            else:"},{"line_number":450,"context_line":"                LOG.debug(self._msg(\u0027Specified ld %s has been copied.\u0027"},{"line_number":451,"context_line":"                                    % (ldname, )))"},{"line_number":452,"context_line":"                raise exception.Error(self._msg(\u0027Specified ld %s\u0027"},{"line_number":453,"context_line":"                                                \u0027 has been copied.\u0027"},{"line_number":454,"context_line":"                                                % (ldname, )))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c625c0c2","line":451,"range":{"start_line":451,"start_character":36,"end_line":451,"end_character":37},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                self.unpair(ldname[3:], rvname, \u0027force\u0027)"},{"line_number":449,"context_line":"            else:"},{"line_number":450,"context_line":"                LOG.debug(self._msg(\u0027Specified ld %s has been copied.\u0027"},{"line_number":451,"context_line":"                                    % (ldname, )))"},{"line_number":452,"context_line":"                raise exception.Error(self._msg(\u0027Specified ld %s\u0027"},{"line_number":453,"context_line":"                                                \u0027 has been copied.\u0027"},{"line_number":454,"context_line":"                                                % (ldname, )))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e9ba4fe0","line":451,"range":{"start_line":451,"start_character":36,"end_line":451,"end_character":37},"in_reply_to":"3a71b18c_c625c0c2","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":449,"context_line":"            else:"},{"line_number":450,"context_line":"                LOG.debug(self._msg(\u0027Specified ld %s has been copied.\u0027"},{"line_number":451,"context_line":"                                    % (ldname, )))"},{"line_number":452,"context_line":"                raise exception.Error(self._msg(\u0027Specified ld %s\u0027"},{"line_number":453,"context_line":"                                                \u0027 has been copied.\u0027"},{"line_number":454,"context_line":"                                                % (ldname, )))"},{"line_number":455,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c14bea29","line":452,"range":{"start_line":452,"start_character":48,"end_line":452,"end_character":49},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":449,"context_line":"            else:"},{"line_number":450,"context_line":"                LOG.debug(self._msg(\u0027Specified ld %s has been copied.\u0027"},{"line_number":451,"context_line":"                                    % (ldname, )))"},{"line_number":452,"context_line":"                raise exception.Error(self._msg(\u0027Specified ld %s\u0027"},{"line_number":453,"context_line":"                                                \u0027 has been copied.\u0027"},{"line_number":454,"context_line":"                                                % (ldname, )))"},{"line_number":455,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_09c06b4f","line":452,"range":{"start_line":452,"start_character":48,"end_line":452,"end_character":49},"in_reply_to":"3a71b18c_c14bea29","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":461,"context_line":"                self.unpair(mvname, ldname[3:], \u0027force\u0027)"},{"line_number":462,"context_line":"            else:"},{"line_number":463,"context_line":"                LOG.debug(self._msg(\u0027Specified ld %s has been copied.\u0027"},{"line_number":464,"context_line":"                                    % (ldname, )))"},{"line_number":465,"context_line":"                raise exception.Error(self._msg(\u0027Specified ld %s\u0027"},{"line_number":466,"context_line":"                                                \u0027 has been copied.\u0027"},{"line_number":467,"context_line":"                                                % (ldname, )))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e620fcb2","line":464,"range":{"start_line":464,"start_character":36,"end_line":464,"end_character":37},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":461,"context_line":"                self.unpair(mvname, ldname[3:], \u0027force\u0027)"},{"line_number":462,"context_line":"            else:"},{"line_number":463,"context_line":"                LOG.debug(self._msg(\u0027Specified ld %s has been copied.\u0027"},{"line_number":464,"context_line":"                                    % (ldname, )))"},{"line_number":465,"context_line":"                raise exception.Error(self._msg(\u0027Specified ld %s\u0027"},{"line_number":466,"context_line":"                                                \u0027 has been copied.\u0027"},{"line_number":467,"context_line":"                                                % (ldname, )))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_29b1a701","line":464,"range":{"start_line":464,"start_character":36,"end_line":464,"end_character":37},"in_reply_to":"3a71b18c_e620fcb2","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":462,"context_line":"            else:"},{"line_number":463,"context_line":"                LOG.debug(self._msg(\u0027Specified ld %s has been copied.\u0027"},{"line_number":464,"context_line":"                                    % (ldname, )))"},{"line_number":465,"context_line":"                raise exception.Error(self._msg(\u0027Specified ld %s\u0027"},{"line_number":466,"context_line":"                                                \u0027 has been copied.\u0027"},{"line_number":467,"context_line":"                                                % (ldname, )))"},{"line_number":468,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e1462620","line":465,"range":{"start_line":465,"start_character":48,"end_line":465,"end_character":49},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":462,"context_line":"            else:"},{"line_number":463,"context_line":"                LOG.debug(self._msg(\u0027Specified ld %s has been copied.\u0027"},{"line_number":464,"context_line":"                                    % (ldname, )))"},{"line_number":465,"context_line":"                raise exception.Error(self._msg(\u0027Specified ld %s\u0027"},{"line_number":466,"context_line":"                                                \u0027 has been copied.\u0027"},{"line_number":467,"context_line":"                                                % (ldname, )))"},{"line_number":468,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_49b6e3f9","line":465,"range":{"start_line":465,"start_character":48,"end_line":465,"end_character":49},"in_reply_to":"3a71b18c_e1462620","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        query_status \u003d self.query_MV_RV_name(ldname[3:], \u0027MV\u0027)"},{"line_number":473,"context_line":"        query_status \u003d query_status.split(\u0027\\n\u0027)"},{"line_number":474,"context_line":"        query_status \u003d [query for query in query_status if query !\u003d \u0027\u0027]"},{"line_number":475,"context_line":"        LOG.debug(self._msg(\u0027query_status\u003d%s.\u0027 % query_status, ))"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        pair_lds \u003d {}"},{"line_number":478,"context_line":"        for rvname in query_status:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_8612e860","line":475,"range":{"start_line":475,"start_character":47,"end_line":475,"end_character":48},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        query_status \u003d self.query_MV_RV_name(ldname[3:], \u0027MV\u0027)"},{"line_number":473,"context_line":"        query_status \u003d query_status.split(\u0027\\n\u0027)"},{"line_number":474,"context_line":"        query_status \u003d [query for query in query_status if query !\u003d \u0027\u0027]"},{"line_number":475,"context_line":"        LOG.debug(self._msg(\u0027query_status\u003d%s.\u0027 % query_status, ))"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        pair_lds \u003d {}"},{"line_number":478,"context_line":"        for rvname in query_status:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_69cf1f7f","line":475,"range":{"start_line":475,"start_character":47,"end_line":475,"end_character":48},"in_reply_to":"3a71b18c_8612e860","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":479,"context_line":"            rvname \u003d self._properties[\u0027ld_backupname_format\u0027] % rvname"},{"line_number":480,"context_line":"            if rvname not in lds:"},{"line_number":481,"context_line":"                LOG.debug(self._msg(\u0027LD `%s` is RDR pair?\u0027"},{"line_number":482,"context_line":"                          % (rvname, )))"},{"line_number":483,"context_line":"            else:"},{"line_number":484,"context_line":"                ld \u003d lds[rvname]"},{"line_number":485,"context_line":"                ldn \u003d ld[\u0027ldn\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c60ce044","line":482,"range":{"start_line":482,"start_character":26,"end_line":482,"end_character":27},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":479,"context_line":"            rvname \u003d self._properties[\u0027ld_backupname_format\u0027] % rvname"},{"line_number":480,"context_line":"            if rvname not in lds:"},{"line_number":481,"context_line":"                LOG.debug(self._msg(\u0027LD `%s` is RDR pair?\u0027"},{"line_number":482,"context_line":"                          % (rvname, )))"},{"line_number":483,"context_line":"            else:"},{"line_number":484,"context_line":"                ld \u003d lds[rvname]"},{"line_number":485,"context_line":"                ldn \u003d ld[\u0027ldn\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_89cc7b8a","line":482,"range":{"start_line":482,"start_character":26,"end_line":482,"end_character":27},"in_reply_to":"3a71b18c_c60ce044","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":485,"context_line":"                ldn \u003d ld[\u0027ldn\u0027]"},{"line_number":486,"context_line":"                pair_lds[ldn] \u003d ld"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        LOG.debug(self._msg(\u0027pair_lds\u003d%s.\u0027 % pair_lds, ))"},{"line_number":489,"context_line":"        return pair_lds"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"    def snapshot_create(self, bvname, svname, poolnumber):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_2602f40b","line":488,"range":{"start_line":488,"start_character":43,"end_line":488,"end_character":44},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":485,"context_line":"                ldn \u003d ld[\u0027ldn\u0027]"},{"line_number":486,"context_line":"                pair_lds[ldn] \u003d ld"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        LOG.debug(self._msg(\u0027pair_lds\u003d%s.\u0027 % pair_lds, ))"},{"line_number":489,"context_line":"        return pair_lds"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"    def snapshot_create(self, bvname, svname, poolnumber):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_297fe717","line":488,"range":{"start_line":488,"start_character":43,"end_line":488,"end_character":44},"in_reply_to":"3a71b18c_2602f40b","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        else:"},{"line_number":515,"context_line":"            LOG.debug(self._msg(\u0027The snapshot data does not exist,\u0027"},{"line_number":516,"context_line":"                                \u0027 because already forced deletion.\u0027"},{"line_number":517,"context_line":"                                \u0027 bvname\u003d%s, svname\u003d%s\u0027 % (bvname, svname)))"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        self._execute(\u0027iSMcfg generationdel -bvname %s -count 1\u0027"},{"line_number":520,"context_line":"                      % (bvname))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_6102160b","line":517,"range":{"start_line":517,"start_character":56,"end_line":517,"end_character":57},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        else:"},{"line_number":515,"context_line":"            LOG.debug(self._msg(\u0027The snapshot data does not exist,\u0027"},{"line_number":516,"context_line":"                                \u0027 because already forced deletion.\u0027"},{"line_number":517,"context_line":"                                \u0027 bvname\u003d%s, svname\u003d%s\u0027 % (bvname, svname)))"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        self._execute(\u0027iSMcfg generationdel -bvname %s -count 1\u0027"},{"line_number":520,"context_line":"                      % (bvname))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_697d5f1b","line":517,"range":{"start_line":517,"start_character":56,"end_line":517,"end_character":57},"in_reply_to":"3a71b18c_6102160b","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        out, err, status \u003d self._execute(command)"},{"line_number":531,"context_line":"        query_status \u003d out[34:48].strip()"},{"line_number":532,"context_line":"        LOG.debug(self._msg(\u0027snap/state:%s.\u0027 % query_status,))"},{"line_number":533,"context_line":"        return query_status"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def set_io_limit(self, ldname, specs, force_delete\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c113ea5a","line":532,"range":{"start_line":532,"start_character":45,"end_line":532,"end_character":46},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        out, err, status \u003d self._execute(command)"},{"line_number":531,"context_line":"        query_status \u003d out[34:48].strip()"},{"line_number":532,"context_line":"        LOG.debug(self._msg(\u0027snap/state:%s.\u0027 % query_status,))"},{"line_number":533,"context_line":"        return query_status"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def set_io_limit(self, ldname, specs, force_delete\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_897abb22","line":532,"range":{"start_line":532,"start_character":45,"end_line":532,"end_character":46},"in_reply_to":"3a71b18c_c113ea5a","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                LOG.debug(self._cli._msg(\u0027iSMrc_query command result\u0027"},{"line_number":603,"context_line":"                                         \u0027 abnormal.Query status \u003d %s,\u0027"},{"line_number":604,"context_line":"                                         \u0027 RV \u003d %s.\u0027"},{"line_number":605,"context_line":"                                         % (query_status, self._rvname)))"},{"line_number":606,"context_line":"                self._update_mv_status(UnpairWait.error_updates)"},{"line_number":607,"context_line":"                self._update_rv_status(UnpairWait.error_updates)"},{"line_number":608,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c13a0acd","line":605,"range":{"start_line":605,"start_character":41,"end_line":605,"end_character":42},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                LOG.debug(self._cli._msg(\u0027iSMrc_query command result\u0027"},{"line_number":603,"context_line":"                                         \u0027 abnormal.Query status \u003d %s,\u0027"},{"line_number":604,"context_line":"                                         \u0027 RV \u003d %s.\u0027"},{"line_number":605,"context_line":"                                         % (query_status, self._rvname)))"},{"line_number":606,"context_line":"                self._update_mv_status(UnpairWait.error_updates)"},{"line_number":607,"context_line":"                self._update_rv_status(UnpairWait.error_updates)"},{"line_number":608,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a973f74c","line":605,"range":{"start_line":605,"start_character":41,"end_line":605,"end_character":42},"in_reply_to":"3a71b18c_c13a0acd","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":613,"context_line":"        except Exception:"},{"line_number":614,"context_line":"            LOG.debug(self._cli._msg(\u0027UnpairWait Unexpected error.\u0027"},{"line_number":615,"context_line":"                                     \u0027 exception\u003d%s, MV \u003d %s, RV \u003d %s.\u0027"},{"line_number":616,"context_line":"                                     % (traceback.format_exc(),"},{"line_number":617,"context_line":"                                        self._mvname, self._rvname)))"},{"line_number":618,"context_line":"            raise"},{"line_number":619,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_0135e2d8","line":616,"range":{"start_line":616,"start_character":37,"end_line":616,"end_character":38},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":613,"context_line":"        except Exception:"},{"line_number":614,"context_line":"            LOG.debug(self._cli._msg(\u0027UnpairWait Unexpected error.\u0027"},{"line_number":615,"context_line":"                                     \u0027 exception\u003d%s, MV \u003d %s, RV \u003d %s.\u0027"},{"line_number":616,"context_line":"                                     % (traceback.format_exc(),"},{"line_number":617,"context_line":"                                        self._mvname, self._rvname)))"},{"line_number":618,"context_line":"            raise"},{"line_number":619,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c9703343","line":616,"range":{"start_line":616,"start_character":37,"end_line":616,"end_character":38},"in_reply_to":"3a71b18c_0135e2d8","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":655,"context_line":"        super(UnpairWaitForRestore, self).__init__(volume_properties, cli)"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":"        self._rvldn \u003d None"},{"line_number":658,"context_line":"        if \u0027rvldn\u0027 in volume_properties \\"},{"line_number":659,"context_line":"           and volume_properties[\u0027rvldn\u0027] is not None:"},{"line_number":660,"context_line":"            self._rvldn \u003d volume_properties[\u0027rvldn\u0027]"},{"line_number":661,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_6150560b","line":658,"range":{"start_line":658,"start_character":40,"end_line":658,"end_character":41},"updated":"2016-12-09 15:52:57.000000000","message":"Wrap in () to get rid of \\","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":655,"context_line":"        super(UnpairWaitForRestore, self).__init__(volume_properties, cli)"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":"        self._rvldn \u003d None"},{"line_number":658,"context_line":"        if \u0027rvldn\u0027 in volume_properties \\"},{"line_number":659,"context_line":"           and volume_properties[\u0027rvldn\u0027] is not None:"},{"line_number":660,"context_line":"            self._rvldn \u003d volume_properties[\u0027rvldn\u0027]"},{"line_number":661,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_499b4366","line":658,"range":{"start_line":658,"start_character":40,"end_line":658,"end_character":41},"in_reply_to":"3a71b18c_6150560b","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":660,"context_line":"            self._rvldn \u003d volume_properties[\u0027rvldn\u0027]"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        self._rvcapacity \u003d None"},{"line_number":663,"context_line":"        if \u0027rvcapacity\u0027 in volume_properties \\"},{"line_number":664,"context_line":"           and volume_properties[\u0027rvcapacity\u0027] is not None:"},{"line_number":665,"context_line":"            self._rvcapacity \u003d volume_properties[\u0027rvcapacity\u0027]"},{"line_number":666,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_81573201","line":663,"range":{"start_line":663,"start_character":45,"end_line":663,"end_character":46},"updated":"2016-12-09 15:52:57.000000000","message":"Same","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":660,"context_line":"            self._rvldn \u003d volume_properties[\u0027rvldn\u0027]"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        self._rvcapacity \u003d None"},{"line_number":663,"context_line":"        if \u0027rvcapacity\u0027 in volume_properties \\"},{"line_number":664,"context_line":"           and volume_properties[\u0027rvcapacity\u0027] is not None:"},{"line_number":665,"context_line":"            self._rvcapacity \u003d volume_properties[\u0027rvcapacity\u0027]"},{"line_number":666,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_69a47fa5","line":663,"range":{"start_line":663,"start_character":45,"end_line":663,"end_character":46},"in_reply_to":"3a71b18c_81573201","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":676,"context_line":"                LOG.debug(self._cli._msg(\u0027UnpairWaitForDDRRestore\u0027"},{"line_number":677,"context_line":"                                         \u0027 expand error. \u0027"},{"line_number":678,"context_line":"                                         \u0027exception\u003d%s, MV \u003d %s, RV \u003d %s.\u0027"},{"line_number":679,"context_line":"                                         % (traceback.format_exc(),"},{"line_number":680,"context_line":"                                            self._mvname, self._rvname)))"},{"line_number":681,"context_line":"                raise"},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_014c026f","line":679,"range":{"start_line":679,"start_character":41,"end_line":679,"end_character":43},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":676,"context_line":"                LOG.debug(self._cli._msg(\u0027UnpairWaitForDDRRestore\u0027"},{"line_number":677,"context_line":"                                         \u0027 expand error. \u0027"},{"line_number":678,"context_line":"                                         \u0027exception\u003d%s, MV \u003d %s, RV \u003d %s.\u0027"},{"line_number":679,"context_line":"                                         % (traceback.format_exc(),"},{"line_number":680,"context_line":"                                            self._mvname, self._rvname)))"},{"line_number":681,"context_line":"                raise"},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a9aa176f","line":679,"range":{"start_line":679,"start_character":41,"end_line":679,"end_character":43},"in_reply_to":"3a71b18c_014c026f","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        super(UnpairWaitForClone, self).__init__(volume_properties, cli)"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"        self._rvldn \u003d None"},{"line_number":703,"context_line":"        if \u0027rvldn\u0027 in volume_properties \\"},{"line_number":704,"context_line":"           and volume_properties[\u0027rvldn\u0027] is not None:"},{"line_number":705,"context_line":"            self._rvldn \u003d volume_properties[\u0027rvldn\u0027]"},{"line_number":706,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_6177769f","line":703,"range":{"start_line":703,"start_character":40,"end_line":703,"end_character":41},"updated":"2016-12-09 15:52:57.000000000","message":"()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        super(UnpairWaitForClone, self).__init__(volume_properties, cli)"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"        self._rvldn \u003d None"},{"line_number":703,"context_line":"        if \u0027rvldn\u0027 in volume_properties \\"},{"line_number":704,"context_line":"           and volume_properties[\u0027rvldn\u0027] is not None:"},{"line_number":705,"context_line":"            self._rvldn \u003d volume_properties[\u0027rvldn\u0027]"},{"line_number":706,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_29ad2784","line":703,"range":{"start_line":703,"start_character":40,"end_line":703,"end_character":41},"in_reply_to":"3a71b18c_6177769f","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":705,"context_line":"            self._rvldn \u003d volume_properties[\u0027rvldn\u0027]"},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"        self._rvcapacity \u003d None"},{"line_number":708,"context_line":"        if \u0027rvcapacity\u0027 in volume_properties \\"},{"line_number":709,"context_line":"           and volume_properties[\u0027rvcapacity\u0027] is not None:"},{"line_number":710,"context_line":"            self._rvcapacity \u003d volume_properties[\u0027rvcapacity\u0027]"},{"line_number":711,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a1718eaa","line":708,"range":{"start_line":708,"start_character":45,"end_line":708,"end_character":46},"updated":"2016-12-09 15:52:57.000000000","message":"()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":705,"context_line":"            self._rvldn \u003d volume_properties[\u0027rvldn\u0027]"},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"        self._rvcapacity \u003d None"},{"line_number":708,"context_line":"        if \u0027rvcapacity\u0027 in volume_properties \\"},{"line_number":709,"context_line":"           and volume_properties[\u0027rvcapacity\u0027] is not None:"},{"line_number":710,"context_line":"            self._rvcapacity \u003d volume_properties[\u0027rvcapacity\u0027]"},{"line_number":711,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_49b263e6","line":708,"range":{"start_line":708,"start_character":45,"end_line":708,"end_character":46},"in_reply_to":"3a71b18c_a1718eaa","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":721,"context_line":"                LOG.debug(self._cli._msg(\u0027UnpairWaitForClone\u0027"},{"line_number":722,"context_line":"                                         \u0027 expand error. \u0027"},{"line_number":723,"context_line":"                                         \u0027exception\u003d%s, MV \u003d %s, RV \u003d %s.\u0027"},{"line_number":724,"context_line":"                                         % (traceback.format_exc(),"},{"line_number":725,"context_line":"                                            self._mvname, self._rvname)))"},{"line_number":726,"context_line":"                raise"},{"line_number":727,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c1684abd","line":724,"range":{"start_line":724,"start_character":41,"end_line":724,"end_character":42},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":721,"context_line":"                LOG.debug(self._cli._msg(\u0027UnpairWaitForClone\u0027"},{"line_number":722,"context_line":"                                         \u0027 expand error. \u0027"},{"line_number":723,"context_line":"                                         \u0027exception\u003d%s, MV \u003d %s, RV \u003d %s.\u0027"},{"line_number":724,"context_line":"                                         % (traceback.format_exc(),"},{"line_number":725,"context_line":"                                            self._mvname, self._rvname)))"},{"line_number":726,"context_line":"                raise"},{"line_number":727,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_89c8fb56","line":724,"range":{"start_line":724,"start_character":41,"end_line":724,"end_character":42},"in_reply_to":"3a71b18c_c1684abd","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":778,"context_line":"        super(UnpairWaitForDDRRestore, self).__init__(volume_properties, cli)"},{"line_number":779,"context_line":""},{"line_number":780,"context_line":"        self._prev_mvname \u003d None"},{"line_number":781,"context_line":"        if \u0027prev_mvname\u0027 in volume_properties \\"},{"line_number":782,"context_line":"           and volume_properties[\u0027prev_mvname\u0027] is not None:"},{"line_number":783,"context_line":"            self._prev_mvname \u003d volume_properties[\u0027prev_mvname\u0027][3:]"},{"line_number":784,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_419b5ac9","line":781,"range":{"start_line":781,"start_character":46,"end_line":781,"end_character":47},"updated":"2016-12-09 15:52:57.000000000","message":"()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":778,"context_line":"        super(UnpairWaitForDDRRestore, self).__init__(volume_properties, cli)"},{"line_number":779,"context_line":""},{"line_number":780,"context_line":"        self._prev_mvname \u003d None"},{"line_number":781,"context_line":"        if \u0027prev_mvname\u0027 in volume_properties \\"},{"line_number":782,"context_line":"           and volume_properties[\u0027prev_mvname\u0027] is not None:"},{"line_number":783,"context_line":"            self._prev_mvname \u003d volume_properties[\u0027prev_mvname\u0027][3:]"},{"line_number":784,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c9be73ad","line":781,"range":{"start_line":781,"start_character":46,"end_line":781,"end_character":47},"in_reply_to":"3a71b18c_419b5ac9","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":794,"context_line":"                LOG.debug(self._cli._msg(\u0027UnpairWaitForDDRRestore\u0027"},{"line_number":795,"context_line":"                                         \u0027 expand error.\u0027"},{"line_number":796,"context_line":"                                         \u0027 exception\u003d%s, MV \u003d %s, RV \u003d %s.\u0027"},{"line_number":797,"context_line":"                                         % (traceback.format_exc(),"},{"line_number":798,"context_line":"                                            self._mvname, self._rvname)))"},{"line_number":799,"context_line":"                raise"},{"line_number":800,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_81a57205","line":797,"range":{"start_line":797,"start_character":41,"end_line":797,"end_character":42},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":794,"context_line":"                LOG.debug(self._cli._msg(\u0027UnpairWaitForDDRRestore\u0027"},{"line_number":795,"context_line":"                                         \u0027 expand error.\u0027"},{"line_number":796,"context_line":"                                         \u0027 exception\u003d%s, MV \u003d %s, RV \u003d %s.\u0027"},{"line_number":797,"context_line":"                                         % (traceback.format_exc(),"},{"line_number":798,"context_line":"                                            self._mvname, self._rvname)))"},{"line_number":799,"context_line":"                raise"},{"line_number":800,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_29e447de","line":797,"range":{"start_line":797,"start_character":41,"end_line":797,"end_character":42},"in_reply_to":"3a71b18c_81a57205","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"834aa091bd1750354a36c2605f0bb9b08aaf8c34","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                if status !\u003d 0:"},{"line_number":59,"context_line":"                    errflg \u003d 0"},{"line_number":60,"context_line":"                    errnum \u003d out + err"},{"line_number":61,"context_line":"                    LOG.debug(\u0027errnum\u003d%s\u0027, errnum)"},{"line_number":62,"context_line":"                    for retry_msgid in retry_msgids:"},{"line_number":63,"context_line":"                        if errnum.find(retry_msgid) \u003e\u003d 0:"},{"line_number":64,"context_line":"                            LOG.debug(\u0027`%(command)s` failed. \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_84687dbc","line":61,"updated":"2016-12-13 03:00:50.000000000","message":"Might be good to expand on this message to make it a little easier to debug. At least by giving a little context.","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"fc9c2bbde16604e73cf1bfab9b06efbea1ded684","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                if status !\u003d 0:"},{"line_number":59,"context_line":"                    errflg \u003d 0"},{"line_number":60,"context_line":"                    errnum \u003d out + err"},{"line_number":61,"context_line":"                    LOG.debug(\u0027errnum\u003d%s\u0027, errnum)"},{"line_number":62,"context_line":"                    for retry_msgid in retry_msgids:"},{"line_number":63,"context_line":"                        if errnum.find(retry_msgid) \u003e\u003d 0:"},{"line_number":64,"context_line":"                            LOG.debug(\u0027`%(command)s` failed. \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_b32059f9","line":61,"in_reply_to":"1a6eadb0_84687dbc","updated":"2016-12-13 06:46:39.000000000","message":"Done","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"07b7211cb507886657e950011f02e03864599013","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                                    \u0027out\u0027: out,"},{"line_number":84,"context_line":"                                    \u0027err\u0027: err})"},{"line_number":85,"context_line":"                            raise exception.APITimeout(msg)"},{"line_number":86,"context_line":"                        time.sleep(5)"},{"line_number":87,"context_line":"                        continue"},{"line_number":88,"context_line":"                    else:"},{"line_number":89,"context_line":"                        if raise_exec is True:"}],"source_content_type":"text/x-python","patch_set":19,"id":"1a6eadb0_9f96a04a","line":86,"updated":"2016-12-14 18:35:12.000000000","message":"I suggest using eventlet.sleep instead, but I\u0027m not blocking this patch because of this comment. Something you could consider in the future.","commit_id":"cb668cb656f596f0a39de2673cfb9ce7d6aff626"}],"cinder/volume/drivers/nec/lock.py":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"4462dda709b1bdae413970ee9339c9c562b7f1c9","unresolved":false,"context_lines":[{"line_number":22,"context_line":"CONF \u003d cfg.CONF"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def synchronized_mstorage(name, prefix, external\u003dFalse, lockpath\u003dNone):"},{"line_number":26,"context_line":"    def wrap(f):"},{"line_number":27,"context_line":"        def inner(self, *args, **kwargs):"},{"line_number":28,"context_line":"            lockname \u003d name + self._properties[\u0027diskarray_name\u0027]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"            external_valid \u003d external"},{"line_number":31,"context_line":"            if CONF.oslo_concurrency.lock_path is None:"},{"line_number":32,"context_line":"                external_valid \u003d False"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"            @synchronized(lockname, prefix, external_valid, lockpath)"},{"line_number":35,"context_line":"            @functools.wraps(f)"},{"line_number":36,"context_line":"            def methodcall():"},{"line_number":37,"context_line":"                return f(self, *args, **kwargs)"},{"line_number":38,"context_line":"            return methodcall()"},{"line_number":39,"context_line":"        return inner"},{"line_number":40,"context_line":"    return wrap"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_579b4dc9","line":40,"range":{"start_line":25,"start_character":0,"end_line":40,"end_character":15},"updated":"2016-10-28 11:24:06.000000000","message":"Some commentary on why this is needed would be useful. We\u0027re looking at moving all locks to tooz locks as part of our active/active HA work","commit_id":"581cd19f6dedb78be48376f09157b0b908ae30f6"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"ed10e5e1d479c9b640b8c2e3a6a1c0e3248b77f5","unresolved":false,"context_lines":[{"line_number":22,"context_line":"CONF \u003d cfg.CONF"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def synchronized_mstorage(name, prefix, external\u003dFalse, lockpath\u003dNone):"},{"line_number":26,"context_line":"    def wrap(f):"},{"line_number":27,"context_line":"        def inner(self, *args, **kwargs):"},{"line_number":28,"context_line":"            lockname \u003d name + self._properties[\u0027diskarray_name\u0027]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"            external_valid \u003d external"},{"line_number":31,"context_line":"            if CONF.oslo_concurrency.lock_path is None:"},{"line_number":32,"context_line":"                external_valid \u003d False"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"            @synchronized(lockname, prefix, external_valid, lockpath)"},{"line_number":35,"context_line":"            @functools.wraps(f)"},{"line_number":36,"context_line":"            def methodcall():"},{"line_number":37,"context_line":"                return f(self, *args, **kwargs)"},{"line_number":38,"context_line":"            return methodcall()"},{"line_number":39,"context_line":"        return inner"},{"line_number":40,"context_line":"    return wrap"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_aef426f2","line":40,"range":{"start_line":25,"start_character":0,"end_line":40,"end_character":15},"in_reply_to":"ba5da102_579b4dc9","updated":"2016-11-09 09:40:16.000000000","message":"Done.\nWe use cinder.coordination and deleted this file.","commit_id":"581cd19f6dedb78be48376f09157b0b908ae30f6"}],"cinder/volume/drivers/nec/volume.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":108,"context_line":"        super(MStorageDDRISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":109,"context_line":"        self._helper \u003d MStorageDDRDriverHelper(self.configuration,"},{"line_number":110,"context_line":"                                               self.db,"},{"line_number":111,"context_line":"                                               self.host,"},{"line_number":112,"context_line":"                                               self.__class__.__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_0a65b9b3","line":109,"updated":"2016-11-02 15:27:09.000000000","message":"Why don\u0027t you inherit from MStorageDDRDriverHelpe class? It will make code cleaner","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":108,"context_line":"        super(MStorageDDRISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":109,"context_line":"        self._helper \u003d MStorageDDRDriverHelper(self.configuration,"},{"line_number":110,"context_line":"                                               self.db,"},{"line_number":111,"context_line":"                                               self.host,"},{"line_number":112,"context_line":"                                               self.__class__.__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_7000c466","line":109,"in_reply_to":"ba5da102_0a65b9b3","updated":"2016-11-11 09:18:30.000000000","message":"Done","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":179,"context_line":"        super(MStorageDDRFCDriver, self).__init__(*args, **kwargs)"},{"line_number":180,"context_line":"        self._helper \u003d MStorageDDRDriverHelper(self.configuration,"},{"line_number":181,"context_line":"                                               self.db,"},{"line_number":182,"context_line":"                                               self.host,"},{"line_number":183,"context_line":"                                               self.__class__.__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_8a71c978","line":180,"updated":"2016-11-02 15:27:09.000000000","message":"The same, as above","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":179,"context_line":"        super(MStorageDDRFCDriver, self).__init__(*args, **kwargs)"},{"line_number":180,"context_line":"        self._helper \u003d MStorageDDRDriverHelper(self.configuration,"},{"line_number":181,"context_line":"                                               self.db,"},{"line_number":182,"context_line":"                                               self.host,"},{"line_number":183,"context_line":"                                               self.__class__.__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_f0ecd4bc","line":180,"in_reply_to":"ba5da102_8a71c978","updated":"2016-11-11 09:18:30.000000000","message":"Done","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":249,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":250,"context_line":"        super(MStorageISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":251,"context_line":"        self._helper \u003d MStorageSnapshotDriverHelper(self.configuration,"},{"line_number":252,"context_line":"                                                    self.db,"},{"line_number":253,"context_line":"                                                    self.host,"},{"line_number":254,"context_line":"                                                    self.__class__.__name__)"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_aa6a0d7f","line":252,"updated":"2016-11-02 15:27:09.000000000","message":"The same","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":249,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":250,"context_line":"        super(MStorageISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":251,"context_line":"        self._helper \u003d MStorageSnapshotDriverHelper(self.configuration,"},{"line_number":252,"context_line":"                                                    self.db,"},{"line_number":253,"context_line":"                                                    self.host,"},{"line_number":254,"context_line":"                                                    self.__class__.__name__)"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_102ea8fa","line":252,"in_reply_to":"ba5da102_aa6a0d7f","updated":"2016-11-11 09:18:30.000000000","message":"Done","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        pass"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"class MStorageFCDriver(FibreChannelDriver):"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    \"\"\"M-Series Storage Snapshot FC volume driver.\"\"\""},{"line_number":317,"context_line":"    VERSION \u003d driver_version"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_4a12510a","line":314,"updated":"2016-11-02 15:27:09.000000000","message":"The same","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        pass"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"class MStorageFCDriver(FibreChannelDriver):"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    \"\"\"M-Series Storage Snapshot FC volume driver.\"\"\""},{"line_number":317,"context_line":"    VERSION \u003d driver_version"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_7037e44c","line":314,"in_reply_to":"ba5da102_4a12510a","updated":"2016-11-11 09:18:30.000000000","message":"Done","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_af75c998","line":2,"updated":"2016-11-27 20:26:50.000000000","message":"2016","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_2e0b327e","line":2,"in_reply_to":"5a74a57a_af75c998","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from cinder.volume.driver import ISCSIDriver"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from cinder.volume.drivers.nec.volume_helper import MStorageDDRDriver"},{"line_number":22,"context_line":"from cinder.volume.drivers.nec.volume_helper import MStorageDSVDriver"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"driver_version \u003d \u00271.8.1\u0027"},{"line_number":25,"context_line":"wiki_name \u003d \u0027nec_cinder_ci\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_2fb1b947","line":22,"updated":"2016-11-27 20:26:50.000000000","message":"Import modules not objects.","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from cinder.volume.driver import ISCSIDriver"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from cinder.volume.drivers.nec.volume_helper import MStorageDDRDriver"},{"line_number":22,"context_line":"from cinder.volume.drivers.nec.volume_helper import MStorageDSVDriver"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"driver_version \u003d \u00271.8.1\u0027"},{"line_number":25,"context_line":"wiki_name \u003d \u0027nec_cinder_ci\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_4e0eae8c","line":22,"in_reply_to":"5a74a57a_2fb1b947","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    \"\"\"M-Series Storage DDR iSCSI volume driver.\"\"\""},{"line_number":31,"context_line":"    VERSION \u003d driver_version"},{"line_number":32,"context_line":"    CI_WIKI_NAME \u003d wiki_name"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":35,"context_line":"        super(MStorageDDRISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_af830955","line":32,"updated":"2016-11-27 20:26:50.000000000","message":"This needs to be the wiki name of your own CI.","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    \"\"\"M-Series Storage DDR iSCSI volume driver.\"\"\""},{"line_number":31,"context_line":"    VERSION \u003d driver_version"},{"line_number":32,"context_line":"    CI_WIKI_NAME \u003d wiki_name"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":35,"context_line":"        super(MStorageDDRISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_ae1f42b5","line":32,"in_reply_to":"5a74a57a_af830955","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":79,"context_line":"        return self.fc_get_volume_stats(refresh)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":82,"context_line":"        return self.fc_initialize_connection(volume, connector)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_0f7f9d66","line":81,"updated":"2016-11-27 20:26:50.000000000","message":"Need @fczm_utils.AddFCZone decorater.","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":79,"context_line":"        return self.fc_get_volume_stats(refresh)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":82,"context_line":"        return self.fc_initialize_connection(volume, connector)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_ee7bfaf2","line":81,"in_reply_to":"5a74a57a_0f7f9d66","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":82,"context_line":"        return self.fc_initialize_connection(volume, connector)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":85,"context_line":"        return self.fc_terminate_connection(volume, connector)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def get_pool(self, volume):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_2f98d9bf","line":84,"updated":"2016-11-27 20:26:50.000000000","message":"@fczm_utils.RemoveFCZone","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":82,"context_line":"        return self.fc_initialize_connection(volume, connector)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":85,"context_line":"        return self.fc_terminate_connection(volume, connector)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def get_pool(self, volume):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_0e7f56e0","line":84,"in_reply_to":"5a74a57a_2f98d9bf","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":145,"context_line":"        return self.fc_get_volume_stats(refresh)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":148,"context_line":"        return self.fc_initialize_connection(volume, connector)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_4f951585","line":147,"updated":"2016-11-27 20:26:50.000000000","message":"@fczm_utils.AddFCZone","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":145,"context_line":"        return self.fc_get_volume_stats(refresh)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":148,"context_line":"        return self.fc_initialize_connection(volume, connector)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_ae766203","line":147,"in_reply_to":"5a74a57a_4f951585","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":148,"context_line":"        return self.fc_initialize_connection(volume, connector)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":151,"context_line":"        return self.fc_terminate_connection(volume, connector)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def get_pool(self, volume):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_8f8bad67","line":150,"updated":"2016-11-27 20:26:50.000000000","message":"@fczm_utils.RemoveFCZone","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":148,"context_line":"        return self.fc_initialize_connection(volume, connector)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":151,"context_line":"        return self.fc_terminate_connection(volume, connector)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def get_pool(self, volume):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_ce71de0d","line":150,"in_reply_to":"5a74a57a_8f8bad67","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from cinder.zonemanager import utils as fczm_utils"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"driver_version \u003d \u00271.8.1\u0027"},{"line_number":24,"context_line":"wiki_name \u003d \u0027NEC_Cinder_CI\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class MStorageDDRISCSIDriver(volume_helper.MStorageDDRDriver,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c1f92aca","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":10},"updated":"2016-12-09 15:52:57.000000000","message":"These are constants, so they should be all caps.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from cinder.zonemanager import utils as fczm_utils"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"driver_version \u003d \u00271.8.1\u0027"},{"line_number":24,"context_line":"wiki_name \u003d \u0027NEC_Cinder_CI\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class MStorageDDRISCSIDriver(volume_helper.MStorageDDRDriver,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e9040f7f","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":10},"in_reply_to":"3a71b18c_c1f92aca","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"driver_version \u003d \u00271.8.1\u0027"},{"line_number":24,"context_line":"wiki_name \u003d \u0027NEC_Cinder_CI\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class MStorageDDRISCSIDriver(volume_helper.MStorageDDRDriver,"},{"line_number":28,"context_line":"                             driver.ISCSIDriver):"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_81b492f2","line":26,"updated":"2016-12-09 15:52:57.000000000","message":"All concrete driver classes need to have cinder.interface.volumedriver decorators.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":23,"context_line":"driver_version \u003d \u00271.8.1\u0027"},{"line_number":24,"context_line":"wiki_name \u003d \u0027NEC_Cinder_CI\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class MStorageDDRISCSIDriver(volume_helper.MStorageDDRDriver,"},{"line_number":28,"context_line":"                             driver.ISCSIDriver):"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_090a2b8a","line":26,"in_reply_to":"3a71b18c_81b492f2","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from cinder.zonemanager import utils as fczm_utils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"DRIVER_VERSION \u003d \u00271.8.1\u0027"},{"line_number":26,"context_line":"WIKI_NAME \u003d \u0027NEC_Cinder_CI\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_a1446774","line":25,"updated":"2016-12-13 17:01:39.000000000","message":"Why don\u0027t you use the same VERSION defined in volume_helper.py which is used in get_volume_stats?  Otherwise you could end up having different versions here and what is reported in stats.","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from cinder.zonemanager import utils as fczm_utils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"DRIVER_VERSION \u003d \u00271.8.1\u0027"},{"line_number":26,"context_line":"WIKI_NAME \u003d \u0027NEC_Cinder_CI\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_27e850e2","line":25,"in_reply_to":"1a6eadb0_a1446774","updated":"2016-12-14 04:13:19.000000000","message":"Deleted version definition in volume_helper.py.","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":56,"context_line":"        return self.iscsi_terminate_connection(volume, connector)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def unmanage(self, volume):"},{"line_number":59,"context_line":"        pass"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_07d514b8","line":58,"updated":"2016-12-14 04:52:19.000000000","message":"This should be removed because you have not implemented manage volume function.","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":56,"context_line":"        return self.iscsi_terminate_connection(volume, connector)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def unmanage(self, volume):"},{"line_number":59,"context_line":"        pass"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_b62baf93","line":58,"in_reply_to":"1a6eadb0_07d514b8","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":91,"context_line":"        return self.fc_terminate_connection(volume, connector)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def unmanage(self, volume):"},{"line_number":94,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_47d70cbf","line":93,"updated":"2016-12-14 04:52:19.000000000","message":"This should be removed.","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":91,"context_line":"        return self.fc_terminate_connection(volume, connector)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def unmanage(self, volume):"},{"line_number":94,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_d6182b87","line":93,"in_reply_to":"1a6eadb0_47d70cbf","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"}],"cinder/volume/drivers/nec/volume_common.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    cfg.IntOpt(\u0027nec_iscsi_portals_per_cont\u0027,"},{"line_number":109,"context_line":"               default\u003d1,"},{"line_number":110,"context_line":"               help\u003d\u0027The number of portals.\u0027),"},{"line_number":111,"context_line":"]"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class MStorageVolumeCommon(object):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_4a297136","line":111,"updated":"2016-11-02 15:27:09.000000000","message":"You forgot to add:\nCONF.register_opts(mstorage_opts)","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    cfg.IntOpt(\u0027nec_iscsi_portals_per_cont\u0027,"},{"line_number":109,"context_line":"               default\u003d1,"},{"line_number":110,"context_line":"               help\u003d\u0027The number of portals.\u0027),"},{"line_number":111,"context_line":"]"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"class MStorageVolumeCommon(object):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_b03dfc2c","line":111,"in_reply_to":"ba5da102_4a297136","updated":"2016-11-11 09:18:30.000000000","message":"Done","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_8f464d4d","line":2,"updated":"2016-11-27 20:26:50.000000000","message":"2016","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_cef63e5c","line":2,"in_reply_to":"5a74a57a_8f464d4d","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from lxml import etree"},{"line_number":32,"context_line":"from oslo_config import cfg"},{"line_number":33,"context_line":"from oslo_log import log as logging"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_4faef5e6","line":33,"updated":"2016-11-27 20:26:50.000000000","message":"http://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from lxml import etree"},{"line_number":32,"context_line":"from oslo_config import cfg"},{"line_number":33,"context_line":"from oslo_log import log as logging"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_0e9bd618","line":33,"in_reply_to":"5a74a57a_4faef5e6","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"FLAGS \u003d cfg.CONF"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"mstorage_opts \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_fip\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027FIP address for M-Series Storage iSMCLI\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_user\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e19e2653","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":14},"updated":"2016-12-09 15:52:57.000000000","message":"I think this should be URLOpt.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":36,"context_line":"FLAGS \u003d cfg.CONF"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"mstorage_opts \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_fip\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027FIP address for M-Series Storage iSMCLI\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_user\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_2932875e","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":14},"in_reply_to":"3a71b18c_e19e2653","updated":"2016-12-12 13:23:28.000000000","message":"This is an IP address.\nWe replaced it with IPOpt.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"mstorage_opts \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_fip\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027FIP address for M-Series Storage iSMCLI\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_user\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027User name for M-Series Storage iSMCLI\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e190e650","line":41,"range":{"start_line":41,"start_character":60,"end_line":41,"end_character":61},"updated":"2016-12-09 15:52:57.000000000","message":"It\u0027s preferred to have all help strings end with a period.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":38,"context_line":"mstorage_opts \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_fip\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027FIP address for M-Series Storage iSMCLI\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_user\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027User name for M-Series Storage iSMCLI\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_4937c34c","line":41,"range":{"start_line":41,"start_character":60,"end_line":41,"end_character":61},"in_reply_to":"3a71b18c_e190e650","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_user\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027User name for M-Series Storage iSMCLI\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_password\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Password for M-Series Storage iSMCLI\u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_privkey\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_41127ab5","line":45,"range":{"start_line":45,"start_character":16,"end_line":45,"end_character":35},"updated":"2016-12-09 15:52:57.000000000","message":"Should have:\n\nsecret\u003dTrue,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_user\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027User name for M-Series Storage iSMCLI\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_password\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Password for M-Series Storage iSMCLI\u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027nec_ismcli_privkey\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_6940ffa5","line":45,"range":{"start_line":45,"start_character":16,"end_line":45,"end_character":35},"in_reply_to":"3a71b18c_41127ab5","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        self._properties \u003d self._set_properties()"},{"line_number":179,"context_line":"        self._cli \u003d self._properties[\u0027cli\u0027]"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def msg(self, msgstr):"},{"line_number":182,"context_line":"        return getattr(self, \u0027_fmt\u0027, \u0027%s\u0027) % (msgstr, )"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def set_context(self, context):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c154ca55","line":181,"range":{"start_line":181,"start_character":8,"end_line":181,"end_character":11},"updated":"2016-12-09 15:52:57.000000000","message":"Is this really needed?","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        self._properties \u003d self._set_properties()"},{"line_number":179,"context_line":"        self._cli \u003d self._properties[\u0027cli\u0027]"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def msg(self, msgstr):"},{"line_number":182,"context_line":"        return getattr(self, \u0027_fmt\u0027, \u0027%s\u0027) % (msgstr, )"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def set_context(self, context):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c943d3ad","line":181,"range":{"start_line":181,"start_character":8,"end_line":181,"end_character":11},"in_reply_to":"3a71b18c_c154ca55","updated":"2016-12-12 13:23:28.000000000","message":"Deleted","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        for flag in [\u0027nec_ismcli_fip\u0027, \u0027nec_ismcli_user\u0027]:"},{"line_number":189,"context_line":"            if getattr(self._local_conf, flag, \u0027\u0027) \u003d\u003d \u0027\u0027:"},{"line_number":190,"context_line":"                raise exception.Error(self.msg(\u0027%s is not set.\u0027 % (flag, )))"},{"line_number":191,"context_line":"        if getattr(self._local_conf, \u0027nec_ismcli_password\u0027, \u0027\u0027) \u003d\u003d \u0027\u0027 and \\"},{"line_number":192,"context_line":"           getattr(self._local_conf, \u0027nec_ismcli_privkey\u0027, \u0027\u0027) \u003d\u003d \u0027\u0027:"},{"line_number":193,"context_line":"            raise exception.Error("},{"line_number":194,"context_line":"                self.msg(\u0027nec_ismcli_password or \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_41c7da11","line":191,"range":{"start_line":191,"start_character":74,"end_line":191,"end_character":75},"updated":"2016-12-09 15:52:57.000000000","message":"Wrap in () to get rid of \\","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        for flag in [\u0027nec_ismcli_fip\u0027, \u0027nec_ismcli_user\u0027]:"},{"line_number":189,"context_line":"            if getattr(self._local_conf, flag, \u0027\u0027) \u003d\u003d \u0027\u0027:"},{"line_number":190,"context_line":"                raise exception.Error(self.msg(\u0027%s is not set.\u0027 % (flag, )))"},{"line_number":191,"context_line":"        if getattr(self._local_conf, \u0027nec_ismcli_password\u0027, \u0027\u0027) \u003d\u003d \u0027\u0027 and \\"},{"line_number":192,"context_line":"           getattr(self._local_conf, \u0027nec_ismcli_privkey\u0027, \u0027\u0027) \u003d\u003d \u0027\u0027:"},{"line_number":193,"context_line":"            raise exception.Error("},{"line_number":194,"context_line":"                self.msg(\u0027nec_ismcli_password or \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e9124fb3","line":191,"range":{"start_line":191,"start_character":74,"end_line":191,"end_character":75},"in_reply_to":"3a71b18c_41c7da11","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        if getattr(self._local_conf, \u0027nec_ismcli_password\u0027, \u0027\u0027) \u003d\u003d \u0027\u0027 and \\"},{"line_number":192,"context_line":"           getattr(self._local_conf, \u0027nec_ismcli_privkey\u0027, \u0027\u0027) \u003d\u003d \u0027\u0027:"},{"line_number":193,"context_line":"            raise exception.Error("},{"line_number":194,"context_line":"                self.msg(\u0027nec_ismcli_password or \u0027"},{"line_number":195,"context_line":"                         \u0027nec_ismcli_privkey must be set.\u0027))"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def _create_ismview_dir(self,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a1d42ebd","line":194,"range":{"start_line":194,"start_character":25,"end_line":194,"end_character":26},"updated":"2016-12-09 15:52:57.000000000","message":"Needs _()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        if getattr(self._local_conf, \u0027nec_ismcli_password\u0027, \u0027\u0027) \u003d\u003d \u0027\u0027 and \\"},{"line_number":192,"context_line":"           getattr(self._local_conf, \u0027nec_ismcli_privkey\u0027, \u0027\u0027) \u003d\u003d \u0027\u0027:"},{"line_number":193,"context_line":"            raise exception.Error("},{"line_number":194,"context_line":"                self.msg(\u0027nec_ismcli_password or \u0027"},{"line_number":195,"context_line":"                         \u0027nec_ismcli_privkey must be set.\u0027))"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def _create_ismview_dir(self,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_2909a784","line":194,"range":{"start_line":194,"start_character":25,"end_line":194,"end_character":26},"in_reply_to":"3a71b18c_a1d42ebd","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            filename \u003d driver_name + \u0027_\u0027 + host"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        ismview_path \u003d os.path.join(ismview_dir, filename)"},{"line_number":208,"context_line":"        LOG.debug(self.msg(\u0027ismview_path\u003d%s.\u0027 % ismview_path, ))"},{"line_number":209,"context_line":"        try:"},{"line_number":210,"context_line":"            if os.path.exists(ismview_path):"},{"line_number":211,"context_line":"                os.remove(ismview_path)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_21e1fe9a","line":208,"range":{"start_line":208,"start_character":45,"end_line":208,"end_character":47},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            filename \u003d driver_name + \u0027_\u0027 + host"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        ismview_path \u003d os.path.join(ismview_dir, filename)"},{"line_number":208,"context_line":"        LOG.debug(self.msg(\u0027ismview_path\u003d%s.\u0027 % ismview_path, ))"},{"line_number":209,"context_line":"        try:"},{"line_number":210,"context_line":"            if os.path.exists(ismview_path):"},{"line_number":211,"context_line":"                os.remove(ismview_path)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_69271f12","line":208,"range":{"start_line":208,"start_character":45,"end_line":208,"end_character":47},"in_reply_to":"3a71b18c_21e1fe9a","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                    product_dict[s.attrib[\u0027Name\u0027]] \u003d int(s.text, 10)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"                return vendor_name, product_dict"},{"line_number":321,"context_line":"        except Exception:"},{"line_number":322,"context_line":"            raise exception.Error(self.msg(\u0027%s not found.\u0027 % product))"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_41bc3a6c","line":321,"range":{"start_line":321,"start_character":15,"end_line":321,"end_character":24},"updated":"2016-12-09 15:52:57.000000000","message":"Can we catch something more specific than Exception?","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                    product_dict[s.attrib[\u0027Name\u0027]] \u003d int(s.text, 10)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"                return vendor_name, product_dict"},{"line_number":321,"context_line":"        except Exception:"},{"line_number":322,"context_line":"            raise exception.Error(self.msg(\u0027%s not found.\u0027 % product))"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_2980c7be","line":321,"range":{"start_line":321,"start_character":15,"end_line":321,"end_character":24},"in_reply_to":"3a71b18c_41bc3a6c","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"                return vendor_name, product_dict"},{"line_number":321,"context_line":"        except Exception:"},{"line_number":322,"context_line":"            raise exception.Error(self.msg(\u0027%s not found.\u0027 % product))"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    @staticmethod"},{"line_number":325,"context_line":"    def get_ldname(id, format):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c1b04a8e","line":322,"range":{"start_line":322,"start_character":43,"end_line":322,"end_character":44},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"                return vendor_name, product_dict"},{"line_number":321,"context_line":"        except Exception:"},{"line_number":322,"context_line":"            raise exception.Error(self.msg(\u0027%s not found.\u0027 % product))"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    @staticmethod"},{"line_number":325,"context_line":"    def get_ldname(id, format):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_896b9b1d","line":322,"range":{"start_line":322,"start_character":43,"end_line":322,"end_character":44},"in_reply_to":"3a71b18c_c1b04a8e","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        ldset \u003d None"},{"line_number":339,"context_line":"        if metadata is not None and \u0027ldset\u0027 in metadata:"},{"line_number":340,"context_line":"            ldset_meta \u003d metadata[\u0027ldset\u0027]"},{"line_number":341,"context_line":"            LOG.debug(self.msg(\u0027ldset(metadata)\u003d%s.\u0027 % ldset_meta,))"},{"line_number":342,"context_line":"            for tldset in six.itervalues(ldsets):"},{"line_number":343,"context_line":"                if tldset[\u0027ldsetname\u0027] \u003d\u003d ldset_meta:"},{"line_number":344,"context_line":"                    ldset \u003d ldsets[ldset_meta]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c1776ad2","line":341,"range":{"start_line":341,"start_character":52,"end_line":341,"end_character":54},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        ldset \u003d None"},{"line_number":339,"context_line":"        if metadata is not None and \u0027ldset\u0027 in metadata:"},{"line_number":340,"context_line":"            ldset_meta \u003d metadata[\u0027ldset\u0027]"},{"line_number":341,"context_line":"            LOG.debug(self.msg(\u0027ldset(metadata)\u003d%s.\u0027 % ldset_meta,))"},{"line_number":342,"context_line":"            for tldset in six.itervalues(ldsets):"},{"line_number":343,"context_line":"                if tldset[\u0027ldsetname\u0027] \u003d\u003d ldset_meta:"},{"line_number":344,"context_line":"                    ldset \u003d ldsets[ldset_meta]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_8952bb65","line":341,"range":{"start_line":341,"start_character":52,"end_line":341,"end_character":54},"in_reply_to":"3a71b18c_c1776ad2","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                if tldset[\u0027ldsetname\u0027] \u003d\u003d ldset_meta:"},{"line_number":344,"context_line":"                    ldset \u003d ldsets[ldset_meta]"},{"line_number":345,"context_line":"                    LOG.debug(self.msg(\u0027ldset information(metadata \u0027"},{"line_number":346,"context_line":"                                       \u0027specified)\u003d%s.\u0027 % ldset, ))"},{"line_number":347,"context_line":"                    break"},{"line_number":348,"context_line":"            if ldset is None:"},{"line_number":349,"context_line":"                LOG.debug(self.msg(\u0027No LD Sets found(metadata specified).\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e172a6e2","line":346,"range":{"start_line":346,"start_character":54,"end_line":346,"end_character":57},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                if tldset[\u0027ldsetname\u0027] \u003d\u003d ldset_meta:"},{"line_number":344,"context_line":"                    ldset \u003d ldsets[ldset_meta]"},{"line_number":345,"context_line":"                    LOG.debug(self.msg(\u0027ldset information(metadata \u0027"},{"line_number":346,"context_line":"                                       \u0027specified)\u003d%s.\u0027 % ldset, ))"},{"line_number":347,"context_line":"                    break"},{"line_number":348,"context_line":"            if ldset is None:"},{"line_number":349,"context_line":"                LOG.debug(self.msg(\u0027No LD Sets found(metadata specified).\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_69dc7fe4","line":346,"range":{"start_line":346,"start_character":54,"end_line":346,"end_character":57},"in_reply_to":"3a71b18c_e172a6e2","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                    break"},{"line_number":348,"context_line":"            if ldset is None:"},{"line_number":349,"context_line":"                LOG.debug(self.msg(\u0027No LD Sets found(metadata specified).\u0027))"},{"line_number":350,"context_line":"                raise exception.Error(self.msg(\u0027No LD Sets found.\u0027))"},{"line_number":351,"context_line":"        elif self._properties[\u0027ldset_name\u0027] \u003d\u003d \u0027\u0027:"},{"line_number":352,"context_line":"            nldset \u003d len(ldsets)"},{"line_number":353,"context_line":"            if nldset \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_01824294","line":350,"range":{"start_line":350,"start_character":47,"end_line":350,"end_character":48},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                    break"},{"line_number":348,"context_line":"            if ldset is None:"},{"line_number":349,"context_line":"                LOG.debug(self.msg(\u0027No LD Sets found(metadata specified).\u0027))"},{"line_number":350,"context_line":"                raise exception.Error(self.msg(\u0027No LD Sets found.\u0027))"},{"line_number":351,"context_line":"        elif self._properties[\u0027ldset_name\u0027] \u003d\u003d \u0027\u0027:"},{"line_number":352,"context_line":"            nldset \u003d len(ldsets)"},{"line_number":353,"context_line":"            if nldset \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_09f4eb58","line":350,"range":{"start_line":350,"start_character":47,"end_line":350,"end_character":48},"in_reply_to":"3a71b18c_01824294","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        elif self._properties[\u0027ldset_name\u0027] \u003d\u003d \u0027\u0027:"},{"line_number":352,"context_line":"            nldset \u003d len(ldsets)"},{"line_number":353,"context_line":"            if nldset \u003d\u003d 0:"},{"line_number":354,"context_line":"                raise exception.Error(self.msg(\u0027No LD Set found.\u0027))"},{"line_number":355,"context_line":"            else:"},{"line_number":356,"context_line":"                ldset \u003d None"},{"line_number":357,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_414a7a84","line":354,"range":{"start_line":354,"start_character":47,"end_line":354,"end_character":48},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        elif self._properties[\u0027ldset_name\u0027] \u003d\u003d \u0027\u0027:"},{"line_number":352,"context_line":"            nldset \u003d len(ldsets)"},{"line_number":353,"context_line":"            if nldset \u003d\u003d 0:"},{"line_number":354,"context_line":"                raise exception.Error(self.msg(\u0027No LD Set found.\u0027))"},{"line_number":355,"context_line":"            else:"},{"line_number":356,"context_line":"                ldset \u003d None"},{"line_number":357,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_29e527a3","line":354,"range":{"start_line":354,"start_character":47,"end_line":354,"end_character":48},"in_reply_to":"3a71b18c_414a7a84","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        else:"},{"line_number":358,"context_line":"            if self._properties[\u0027ldset_name\u0027] not in ldsets:"},{"line_number":359,"context_line":"                raise exception.Error("},{"line_number":360,"context_line":"                    self.msg(\u0027LD Set `%s` not found.\u0027"},{"line_number":361,"context_line":"                             % (self._properties[\u0027ldset_name\u0027], )))"},{"line_number":362,"context_line":"            ldset \u003d ldsets[self._properties[\u0027ldset_name\u0027]]"},{"line_number":363,"context_line":"        return ldset"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_41319a0a","line":360,"range":{"start_line":360,"start_character":29,"end_line":360,"end_character":30},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        else:"},{"line_number":358,"context_line":"            if self._properties[\u0027ldset_name\u0027] not in ldsets:"},{"line_number":359,"context_line":"                raise exception.Error("},{"line_number":360,"context_line":"                    self.msg(\u0027LD Set `%s` not found.\u0027"},{"line_number":361,"context_line":"                             % (self._properties[\u0027ldset_name\u0027], )))"},{"line_number":362,"context_line":"            ldset \u003d ldsets[self._properties[\u0027ldset_name\u0027]]"},{"line_number":363,"context_line":"        return ldset"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_69039f42","line":360,"range":{"start_line":360,"start_character":29,"end_line":360,"end_character":30},"in_reply_to":"3a71b18c_41319a0a","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        for pool in pools:"},{"line_number":373,"context_line":"            \"\"\"Convert to GB.\"\"\""},{"line_number":374,"context_line":"            tmp_total \u003d int(pool[\u0027total\u0027] // 1024 ** 3)"},{"line_number":375,"context_line":"            tmp_free \u003d int(pool[\u0027free\u0027] // 1024 ** 3)"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"            if free_capacity_gb \u003c tmp_free:"},{"line_number":378,"context_line":"                total_capacity_gb \u003d tmp_total"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_4118ba84","line":375,"range":{"start_line":375,"start_character":43,"end_line":375,"end_character":52},"updated":"2016-12-09 15:52:57.000000000","message":"Use the units module.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        for pool in pools:"},{"line_number":373,"context_line":"            \"\"\"Convert to GB.\"\"\""},{"line_number":374,"context_line":"            tmp_total \u003d int(pool[\u0027total\u0027] // 1024 ** 3)"},{"line_number":375,"context_line":"            tmp_free \u003d int(pool[\u0027free\u0027] // 1024 ** 3)"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"            if free_capacity_gb \u003c tmp_free:"},{"line_number":378,"context_line":"                total_capacity_gb \u003d tmp_total"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e9c7af0f","line":375,"range":{"start_line":375,"start_character":43,"end_line":375,"end_character":52},"in_reply_to":"3a71b18c_4118ba84","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                free_capacity_gb \u003d tmp_free"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"        volumes \u003d self._db.volume_get_all_by_host(self._context, self._host)"},{"line_number":382,"context_line":"        LOG.debug(self.msg(\u0027number of created volume in host:%d/%d\u0027) %"},{"line_number":383,"context_line":"                  (len(volumes),"},{"line_number":384,"context_line":"                      self._properties[\u0027ld_backend_max_count\u0027]))"},{"line_number":385,"context_line":"        if self._properties[\u0027ld_backend_max_count\u0027] !\u003d 0 and \\"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e107061b","line":382,"range":{"start_line":382,"start_character":68,"end_line":382,"end_character":70},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                free_capacity_gb \u003d tmp_free"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"        volumes \u003d self._db.volume_get_all_by_host(self._context, self._host)"},{"line_number":382,"context_line":"        LOG.debug(self.msg(\u0027number of created volume in host:%d/%d\u0027) %"},{"line_number":383,"context_line":"                  (len(volumes),"},{"line_number":384,"context_line":"                      self._properties[\u0027ld_backend_max_count\u0027]))"},{"line_number":385,"context_line":"        if self._properties[\u0027ld_backend_max_count\u0027] !\u003d 0 and \\"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_09cdcb30","line":382,"range":{"start_line":382,"start_character":68,"end_line":382,"end_character":70},"in_reply_to":"3a71b18c_e107061b","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        LOG.debug(self.msg(\u0027number of created volume in host:%d/%d\u0027) %"},{"line_number":383,"context_line":"                  (len(volumes),"},{"line_number":384,"context_line":"                      self._properties[\u0027ld_backend_max_count\u0027]))"},{"line_number":385,"context_line":"        if self._properties[\u0027ld_backend_max_count\u0027] !\u003d 0 and \\"},{"line_number":386,"context_line":"           len(volumes) \u003e\u003d self._properties[\u0027ld_backend_max_count\u0027]:"},{"line_number":387,"context_line":"            free_capacity_gb \u003d 0"},{"line_number":388,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_4cff1101","line":385,"range":{"start_line":385,"start_character":60,"end_line":385,"end_character":62},"updated":"2016-12-09 15:52:57.000000000","message":"()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        LOG.debug(self.msg(\u0027number of created volume in host:%d/%d\u0027) %"},{"line_number":383,"context_line":"                  (len(volumes),"},{"line_number":384,"context_line":"                      self._properties[\u0027ld_backend_max_count\u0027]))"},{"line_number":385,"context_line":"        if self._properties[\u0027ld_backend_max_count\u0027] !\u003d 0 and \\"},{"line_number":386,"context_line":"           len(volumes) \u003e\u003d self._properties[\u0027ld_backend_max_count\u0027]:"},{"line_number":387,"context_line":"            free_capacity_gb \u003d 0"},{"line_number":388,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_49d343d5","line":385,"range":{"start_line":385,"start_character":60,"end_line":385,"end_character":62},"in_reply_to":"3a71b18c_4cff1101","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                LOG.debug(self.msg(\u0027UNIT[@name\u003d\"Product ID\"] not found.\u0027"},{"line_number":414,"context_line":"                                   \u0027 line\u003d%d out\u003d\"%s\"\u0027"},{"line_number":415,"context_line":"                                   % (section.sourceline, xml)))"},{"line_number":416,"context_line":"                raise exception.Error(self.msg(\u0027Unexpected iSMview output.\u0027))"},{"line_number":417,"context_line":"            else:"},{"line_number":418,"context_line":"                product_id \u003d unit.text"},{"line_number":419,"context_line":"                if product_id in self._properties[\u0027products\u0027]:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_6c292d89","line":416,"range":{"start_line":416,"start_character":47,"end_line":416,"end_character":48},"updated":"2016-12-09 15:52:57.000000000","message":"_()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                LOG.debug(self.msg(\u0027UNIT[@name\u003d\"Product ID\"] not found.\u0027"},{"line_number":414,"context_line":"                                   \u0027 line\u003d%d out\u003d\"%s\"\u0027"},{"line_number":415,"context_line":"                                   % (section.sourceline, xml)))"},{"line_number":416,"context_line":"                raise exception.Error(self.msg(\u0027Unexpected iSMview output.\u0027))"},{"line_number":417,"context_line":"            else:"},{"line_number":418,"context_line":"                product_id \u003d unit.text"},{"line_number":419,"context_line":"                if product_id in self._properties[\u0027products\u0027]:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_29b3679b","line":416,"range":{"start_line":416,"start_character":47,"end_line":416,"end_character":48},"in_reply_to":"3a71b18c_6c292d89","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":536,"context_line":"                raise exception.Error(self.msg(\u0027Unexpected iSMview output.\u0027))"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"            \"\"\"byte capacity transform GB capacity\"\"\""},{"line_number":539,"context_line":"            ld_capacity \u003d (int(unit.text, 10) // 1024 //"},{"line_number":540,"context_line":"                           1024 // 1024)"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"            unit \u003d section.find(\u0027./UNIT[@name\u003d\"RPL Attribute\"]\u0027)"},{"line_number":543,"context_line":"            if unit is None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_0c6359dd","line":540,"range":{"start_line":539,"start_character":45,"end_line":540,"end_character":39},"updated":"2016-12-09 15:52:57.000000000","message":"units","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":536,"context_line":"                raise exception.Error(self.msg(\u0027Unexpected iSMview output.\u0027))"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"            \"\"\"byte capacity transform GB capacity\"\"\""},{"line_number":539,"context_line":"            ld_capacity \u003d (int(unit.text, 10) // 1024 //"},{"line_number":540,"context_line":"                           1024 // 1024)"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"            unit \u003d section.find(\u0027./UNIT[@name\u003d\"RPL Attribute\"]\u0027)"},{"line_number":543,"context_line":"            if unit is None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c9a4b34c","line":540,"range":{"start_line":539,"start_character":45,"end_line":540,"end_character":39},"in_reply_to":"3a71b18c_0c6359dd","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":888,"context_line":"        return specs"},{"line_number":889,"context_line":""},{"line_number":890,"context_line":"    def check_io_parameter(self, specs):"},{"line_number":891,"context_line":"        if \u0027upperlimit\u0027 not in specs and \\"},{"line_number":892,"context_line":"           \u0027lowerlimit\u0027 not in specs and \\"},{"line_number":893,"context_line":"           \u0027upperreport\u0027 not in specs:"},{"line_number":894,"context_line":"            specs[\u0027upperlimit\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_6c85ad57","line":891,"range":{"start_line":891,"start_character":41,"end_line":891,"end_character":42},"updated":"2016-12-09 15:52:57.000000000","message":"()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":888,"context_line":"        return specs"},{"line_number":889,"context_line":""},{"line_number":890,"context_line":"    def check_io_parameter(self, specs):"},{"line_number":891,"context_line":"        if \u0027upperlimit\u0027 not in specs and \\"},{"line_number":892,"context_line":"           \u0027lowerlimit\u0027 not in specs and \\"},{"line_number":893,"context_line":"           \u0027upperreport\u0027 not in specs:"},{"line_number":894,"context_line":"            specs[\u0027upperlimit\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_09694bf9","line":891,"range":{"start_line":891,"start_character":41,"end_line":891,"end_character":42},"in_reply_to":"3a71b18c_6c85ad57","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":886,"context_line":"                    if ((upper_limit !\u003d 0) and"},{"line_number":887,"context_line":"                            ((upper_limit \u003c 10) or (upper_limit \u003e 1000000))):"},{"line_number":888,"context_line":"                        raise exception.InvalidConfigurationValue("},{"line_number":889,"context_line":"                            _(\u0027upperlimit exceeds the range. upperlimit\u003d%d\u0027)"},{"line_number":890,"context_line":"                            % upper_limit)"},{"line_number":891,"context_line":"                else:"},{"line_number":892,"context_line":"                    raise exception.InvalidConfigurationValue("}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_f73e1db7","line":889,"updated":"2016-12-13 17:01:39.000000000","message":"InvalidConfigurationValue takes two parameters: value and option\n\nclass InvalidConfigurationValue(Invalid):\n    message \u003d _(\u0027Value \"%(value)s\" is not valid for \u0027\n                \u0027configuration option \"%(option)s\"\u0027)\n\nPlease fix all places.","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":886,"context_line":"                    if ((upper_limit !\u003d 0) and"},{"line_number":887,"context_line":"                            ((upper_limit \u003c 10) or (upper_limit \u003e 1000000))):"},{"line_number":888,"context_line":"                        raise exception.InvalidConfigurationValue("},{"line_number":889,"context_line":"                            _(\u0027upperlimit exceeds the range. upperlimit\u003d%d\u0027)"},{"line_number":890,"context_line":"                            % upper_limit)"},{"line_number":891,"context_line":"                else:"},{"line_number":892,"context_line":"                    raise exception.InvalidConfigurationValue("}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_a7baa0df","line":889,"in_reply_to":"1a6eadb0_f73e1db7","updated":"2016-12-14 04:13:19.000000000","message":"Done","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":340,"context_line":"                    break"},{"line_number":341,"context_line":"            if ldset is None:"},{"line_number":342,"context_line":"                msg \u003d _(\u0027Logical Disk Set could not be found.\u0027)"},{"line_number":343,"context_line":"                LOG.debug(\u0027%s (metadata specified)\u0027 % msg)"},{"line_number":344,"context_line":"                raise exception.NotFound(msg)"},{"line_number":345,"context_line":"        elif self._properties[\u0027ldset_name\u0027] \u003d\u003d \u0027\u0027:"},{"line_number":346,"context_line":"            nldset \u003d len(ldsets)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_c2a4eaba","line":343,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error()","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":340,"context_line":"                    break"},{"line_number":341,"context_line":"            if ldset is None:"},{"line_number":342,"context_line":"                msg \u003d _(\u0027Logical Disk Set could not be found.\u0027)"},{"line_number":343,"context_line":"                LOG.debug(\u0027%s (metadata specified)\u0027 % msg)"},{"line_number":344,"context_line":"                raise exception.NotFound(msg)"},{"line_number":345,"context_line":"        elif self._properties[\u0027ldset_name\u0027] \u003d\u003d \u0027\u0027:"},{"line_number":346,"context_line":"            nldset \u003d len(ldsets)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_f61b677e","line":343,"in_reply_to":"1a6eadb0_c2a4eaba","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":400,"context_line":"                msg \u003d (_(\u0027UNIT[@name\u003d\"Product ID\"] not found. \u0027"},{"line_number":401,"context_line":"                         \u0027line\u003d%(line)d out\u003d\"%(out)s\"\u0027) %"},{"line_number":402,"context_line":"                       {\u0027line\u0027: section.sourceline, \u0027out\u0027: xml})"},{"line_number":403,"context_line":"                LOG.debug(msg)"},{"line_number":404,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":405,"context_line":"            else:"},{"line_number":406,"context_line":"                product_id \u003d unit.text"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_22967e4c","line":403,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error()","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":400,"context_line":"                msg \u003d (_(\u0027UNIT[@name\u003d\"Product ID\"] not found. \u0027"},{"line_number":401,"context_line":"                         \u0027line\u003d%(line)d out\u003d\"%(out)s\"\u0027) %"},{"line_number":402,"context_line":"                       {\u0027line\u0027: section.sourceline, \u0027out\u0027: xml})"},{"line_number":403,"context_line":"                LOG.debug(msg)"},{"line_number":404,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":405,"context_line":"            else:"},{"line_number":406,"context_line":"                product_id \u003d unit.text"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_16138367","line":403,"in_reply_to":"1a6eadb0_22967e4c","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                msg \u003d (_(\u0027SECTION[@name\u003d\"Pool Detail Information\"] \u0027"},{"line_number":426,"context_line":"                         \u0027not found. line\u003d%(line)d out\u003d\"%(out)s\"\u0027) %"},{"line_number":427,"context_line":"                       {\u0027line\u0027: xmlobj.sourceline, \u0027out\u0027: xml})"},{"line_number":428,"context_line":"                LOG.debug(msg)"},{"line_number":429,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":430,"context_line":"            unit \u003d section.find(\u0027./UNIT[@name\u003d\"Pool No.(h)\"]\u0027)"},{"line_number":431,"context_line":"            if unit is None:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_829bd271","line":428,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error()","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                msg \u003d (_(\u0027SECTION[@name\u003d\"Pool Detail Information\"] \u0027"},{"line_number":426,"context_line":"                         \u0027not found. line\u003d%(line)d out\u003d\"%(out)s\"\u0027) %"},{"line_number":427,"context_line":"                       {\u0027line\u0027: xmlobj.sourceline, \u0027out\u0027: xml})"},{"line_number":428,"context_line":"                LOG.debug(msg)"},{"line_number":429,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":430,"context_line":"            unit \u003d section.find(\u0027./UNIT[@name\u003d\"Pool No.(h)\"]\u0027)"},{"line_number":431,"context_line":"            if unit is None:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_560dfb3c","line":428,"in_reply_to":"1a6eadb0_829bd271","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":432,"context_line":"                msg \u003d (_(\u0027UNIT[@name\u003d\"Pool No.(h)\"] not found. \u0027"},{"line_number":433,"context_line":"                         \u0027line\u003d%(line)d out\u003d\"%(out)s\"\u0027) %"},{"line_number":434,"context_line":"                       {\u0027line\u0027: section.sourceline, \u0027out\u0027: xml})"},{"line_number":435,"context_line":"                LOG.debug(msg)"},{"line_number":436,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":437,"context_line":"            pool_num \u003d int(unit.text, 16)"},{"line_number":438,"context_line":"            unit \u003d section.find(\u0027UNIT[@name\u003d\"Pool Capacity\"]\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_0286e212","line":435,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error()","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":432,"context_line":"                msg \u003d (_(\u0027UNIT[@name\u003d\"Pool No.(h)\"] not found. \u0027"},{"line_number":433,"context_line":"                         \u0027line\u003d%(line)d out\u003d\"%(out)s\"\u0027) %"},{"line_number":434,"context_line":"                       {\u0027line\u0027: section.sourceline, \u0027out\u0027: xml})"},{"line_number":435,"context_line":"                LOG.debug(msg)"},{"line_number":436,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":437,"context_line":"            pool_num \u003d int(unit.text, 16)"},{"line_number":438,"context_line":"            unit \u003d section.find(\u0027UNIT[@name\u003d\"Pool Capacity\"]\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_7608372e","line":435,"in_reply_to":"1a6eadb0_0286e212","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":440,"context_line":"                msg \u003d (_(\u0027UNIT[@name\u003d\"Pool Capacity\"] not found. \u0027"},{"line_number":441,"context_line":"                         \u0027line\u003d%(line)d out\u003d\"%(out)s\"\u0027) %"},{"line_number":442,"context_line":"                       {\u0027line\u0027: section.sourceline, \u0027out\u0027: xml})"},{"line_number":443,"context_line":"                LOG.debug(msg)"},{"line_number":444,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":445,"context_line":"            total \u003d int(unit.text, 10)"},{"line_number":446,"context_line":"            unit \u003d section.find(\u0027UNIT[@name\u003d\"Free Pool Capacity\"]\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_a28fee21","line":443,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)\n\nPlease change LOG.debug to LOG.error in all places where you are using the same message in the logging (line 443) and the exception (line 444).","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":440,"context_line":"                msg \u003d (_(\u0027UNIT[@name\u003d\"Pool Capacity\"] not found. \u0027"},{"line_number":441,"context_line":"                         \u0027line\u003d%(line)d out\u003d\"%(out)s\"\u0027) %"},{"line_number":442,"context_line":"                       {\u0027line\u0027: section.sourceline, \u0027out\u0027: xml})"},{"line_number":443,"context_line":"                LOG.debug(msg)"},{"line_number":444,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":445,"context_line":"            total \u003d int(unit.text, 10)"},{"line_number":446,"context_line":"            unit \u003d section.find(\u0027UNIT[@name\u003d\"Free Pool Capacity\"]\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_9607931b","line":443,"in_reply_to":"1a6eadb0_a28fee21","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"}],"cinder/volume/drivers/nec/volume_helper.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_6f49f15f","line":2,"updated":"2016-11-27 20:26:50.000000000","message":"2016","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_6e8c4ada","line":2,"in_reply_to":"5a74a57a_6f49f15f","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":30,"context_line":"import six"},{"line_number":31,"context_line":"import traceback"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from oslo_log import log as logging"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_6fb7313a","line":33,"updated":"2016-11-27 20:26:50.000000000","message":"http://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":30,"context_line":"import six"},{"line_number":31,"context_line":"import traceback"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from oslo_log import log as logging"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_eebe9a63","line":33,"in_reply_to":"5a74a57a_6fb7313a","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":1171,"context_line":"                                       self._driver_name)"},{"line_number":1172,"context_line":"        data[\u0027vendor_name\u0027] \u003d self._properties[\u0027vendor_name\u0027]"},{"line_number":1173,"context_line":"        data[\u0027driver_version\u0027] \u003d self._VERSION"},{"line_number":1174,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":1175,"context_line":"        data[\u0027QoS_support\u0027] \u003d True"},{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"        \"\"\"Get xml data from file and parse.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_ef798183","line":1174,"updated":"2016-11-27 20:26:50.000000000","message":"reserved_percentage should be read from cinder.conf.","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":1171,"context_line":"                                       self._driver_name)"},{"line_number":1172,"context_line":"        data[\u0027vendor_name\u0027] \u003d self._properties[\u0027vendor_name\u0027]"},{"line_number":1173,"context_line":"        data[\u0027driver_version\u0027] \u003d self._VERSION"},{"line_number":1174,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":1175,"context_line":"        data[\u0027QoS_support\u0027] \u003d True"},{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"        \"\"\"Get xml data from file and parse.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_4eb86e75","line":1174,"in_reply_to":"5a74a57a_ef798183","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def _convert_id2name_in_migrate(self, volume):"},{"line_number":79,"context_line":"        \"\"\"if LD has migrate_status, get LD name from source LD UUID.\"\"\""},{"line_number":80,"context_line":"        LOG.debug(self.msg(\u0027migration_status:%s\u0027) % volume[\u0027migration_status\u0027])"},{"line_number":81,"context_line":"        migstat \u003d volume[\u0027migration_status\u0027]"},{"line_number":82,"context_line":"        if migstat is not None and \u0027target:\u0027 in migstat:"},{"line_number":83,"context_line":"            index \u003d migstat.find(\u0027target:\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_2c8c957e","line":80,"range":{"start_line":80,"start_character":50,"end_line":80,"end_character":51},"updated":"2016-12-09 15:52:57.000000000","message":"% \u003e ,","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def _convert_id2name_in_migrate(self, volume):"},{"line_number":79,"context_line":"        \"\"\"if LD has migrate_status, get LD name from source LD UUID.\"\"\""},{"line_number":80,"context_line":"        LOG.debug(self.msg(\u0027migration_status:%s\u0027) % volume[\u0027migration_status\u0027])"},{"line_number":81,"context_line":"        migstat \u003d volume[\u0027migration_status\u0027]"},{"line_number":82,"context_line":"        if migstat is not None and \u0027target:\u0027 in migstat:"},{"line_number":83,"context_line":"            index \u003d migstat.find(\u0027target:\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_496fc3fb","line":80,"range":{"start_line":80,"start_character":50,"end_line":80,"end_character":51},"in_reply_to":"3a71b18c_2c8c957e","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        min \u003d 0"},{"line_number":112,"context_line":"        for pool in nominated_pools:"},{"line_number":113,"context_line":"            nld \u003d len(pool[\u0027ld_list\u0027])"},{"line_number":114,"context_line":"            if nld \u003c self._numofld_per_pool \\"},{"line_number":115,"context_line":"                    and (selected_pool \u003d\u003d -1 or min \u003e nld):"},{"line_number":116,"context_line":"                selected_pool \u003d pool[\u0027pool_num\u0027]"},{"line_number":117,"context_line":"                min \u003d nld"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_8cf3e909","line":114,"range":{"start_line":114,"start_character":44,"end_line":114,"end_character":45},"updated":"2016-12-09 15:52:57.000000000","message":"()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        min \u003d 0"},{"line_number":112,"context_line":"        for pool in nominated_pools:"},{"line_number":113,"context_line":"            nld \u003d len(pool[\u0027ld_list\u0027])"},{"line_number":114,"context_line":"            if nld \u003c self._numofld_per_pool \\"},{"line_number":115,"context_line":"                    and (selected_pool \u003d\u003d -1 or min \u003e nld):"},{"line_number":116,"context_line":"                selected_pool \u003d pool[\u0027pool_num\u0027]"},{"line_number":117,"context_line":"                min \u003d nld"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_a97e97ac","line":114,"range":{"start_line":114,"start_character":44,"end_line":114,"end_character":45},"in_reply_to":"3a71b18c_8cf3e909","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def _select_volddr_poolnumber(self, volume, pools, xml, option):"},{"line_number":173,"context_line":"        \"\"\"pick up backup pool for DDR\"\"\""},{"line_number":174,"context_line":"        size \u003d option * 1024 * 1024 * 1024"},{"line_number":175,"context_line":"        pools \u003d [pool for (pn, pool) in six.iteritems(pools)"},{"line_number":176,"context_line":"                 if pool[\u0027free\u0027] \u003e\u003d size and"},{"line_number":177,"context_line":"                 (pn in self._properties[\u0027pool_pools\u0027])]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_2ce3b534","line":174,"range":{"start_line":174,"start_character":23,"end_line":174,"end_character":42},"updated":"2016-12-09 15:52:57.000000000","message":"units","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def _select_volddr_poolnumber(self, volume, pools, xml, option):"},{"line_number":173,"context_line":"        \"\"\"pick up backup pool for DDR\"\"\""},{"line_number":174,"context_line":"        size \u003d option * 1024 * 1024 * 1024"},{"line_number":175,"context_line":"        pools \u003d [pool for (pn, pool) in six.iteritems(pools)"},{"line_number":176,"context_line":"                 if pool[\u0027free\u0027] \u003e\u003d size and"},{"line_number":177,"context_line":"                 (pn in self._properties[\u0027pool_pools\u0027])]"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_69263fcf","line":174,"range":{"start_line":174,"start_character":23,"end_line":174,"end_character":42},"in_reply_to":"3a71b18c_2ce3b534","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                                  selected_ldn, selected_pool)))"},{"line_number":222,"context_line":"            return ldname, selected_ldn, selected_pool"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        \"\"\"bind LD\"\"\""},{"line_number":225,"context_line":"        retnum, errnum \u003d (self._cli.ldbind(ldname,"},{"line_number":226,"context_line":"                                           selected_pool,"},{"line_number":227,"context_line":"                                           selected_ldn,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_ccc40194","line":224,"range":{"start_line":224,"start_character":8,"end_line":224,"end_character":21},"updated":"2016-12-09 15:52:57.000000000","message":"Don\u0027t use docstring format for regular comments.","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                                  selected_ldn, selected_pool)))"},{"line_number":222,"context_line":"            return ldname, selected_ldn, selected_pool"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        \"\"\"bind LD\"\"\""},{"line_number":225,"context_line":"        retnum, errnum \u003d (self._cli.ldbind(ldname,"},{"line_number":226,"context_line":"                                           selected_pool,"},{"line_number":227,"context_line":"                                           selected_ldn,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_c97bd3bc","line":224,"range":{"start_line":224,"start_character":8,"end_line":224,"end_character":21},"in_reply_to":"3a71b18c_ccc40194","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":243,"context_line":"                  % (volume[\u0027id\u0027], volume[\u0027size\u0027])"},{"line_number":244,"context_line":"        try:"},{"line_number":245,"context_line":"            self._create_volume(volume)"},{"line_number":246,"context_line":"            LOG.info(self.msg(\u0027Created Volume (%s)\u0027 % (msgparm, )))"},{"line_number":247,"context_line":"        except Exception as e:"},{"line_number":248,"context_line":"            LOG.warning(self.msg(\u0027Failed to Create Volume (%s) (%s)\u0027"},{"line_number":249,"context_line":"                                 % (msgparm, e)))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_0cbfd9fb","line":246,"range":{"start_line":246,"start_character":30,"end_line":246,"end_character":31},"updated":"2016-12-09 15:52:57.000000000","message":"_LI()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":243,"context_line":"                  % (volume[\u0027id\u0027], volume[\u0027size\u0027])"},{"line_number":244,"context_line":"        try:"},{"line_number":245,"context_line":"            self._create_volume(volume)"},{"line_number":246,"context_line":"            LOG.info(self.msg(\u0027Created Volume (%s)\u0027 % (msgparm, )))"},{"line_number":247,"context_line":"        except Exception as e:"},{"line_number":248,"context_line":"            LOG.warning(self.msg(\u0027Failed to Create Volume (%s) (%s)\u0027"},{"line_number":249,"context_line":"                                 % (msgparm, e)))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_e94a4f82","line":246,"range":{"start_line":246,"start_character":30,"end_line":246,"end_character":31},"in_reply_to":"3a71b18c_0cbfd9fb","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            self._create_volume(volume)"},{"line_number":246,"context_line":"            LOG.info(self.msg(\u0027Created Volume (%s)\u0027 % (msgparm, )))"},{"line_number":247,"context_line":"        except Exception as e:"},{"line_number":248,"context_line":"            LOG.warning(self.msg(\u0027Failed to Create Volume (%s) (%s)\u0027"},{"line_number":249,"context_line":"                                 % (msgparm, e)))"},{"line_number":250,"context_line":"            raise"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_4c3711b0","line":248,"range":{"start_line":248,"start_character":33,"end_line":248,"end_character":34},"updated":"2016-12-09 15:52:57.000000000","message":"_LW()","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            self._create_volume(volume)"},{"line_number":246,"context_line":"            LOG.info(self.msg(\u0027Created Volume (%s)\u0027 % (msgparm, )))"},{"line_number":247,"context_line":"        except Exception as e:"},{"line_number":248,"context_line":"            LOG.warning(self.msg(\u0027Failed to Create Volume (%s) (%s)\u0027"},{"line_number":249,"context_line":"                                 % (msgparm, e)))"},{"line_number":250,"context_line":"            raise"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a71b18c_2941a763","line":248,"range":{"start_line":248,"start_character":33,"end_line":248,"end_character":34},"in_reply_to":"3a71b18c_4c3711b0","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"21ec6260e037601f9824b398d6c9c3214fb88364","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def _set_config(self, configuration, db, host, driver_name):"},{"line_number":41,"context_line":"        self._configuration \u003d configuration"},{"line_number":42,"context_line":"        self._db \u003d db"},{"line_number":43,"context_line":"        self._host \u003d host"},{"line_number":44,"context_line":"        self._driver_name \u003d driver_name"},{"line_number":45,"context_line":"        self._common \u003d volume_common.MStorageVolumeCommon(configuration,"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_228dd931","line":42,"updated":"2016-12-13 04:28:23.000000000","message":"Driver should not be accessing database directly.","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"571ad0bd3c86ac82f4c7ea907dfbdb3f0789b938","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def _set_config(self, configuration, db, host, driver_name):"},{"line_number":41,"context_line":"        self._configuration \u003d configuration"},{"line_number":42,"context_line":"        self._db \u003d db"},{"line_number":43,"context_line":"        self._host \u003d host"},{"line_number":44,"context_line":"        self._driver_name \u003d driver_name"},{"line_number":45,"context_line":"        self._common \u003d volume_common.MStorageVolumeCommon(configuration,"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_a002b73c","line":42,"in_reply_to":"1a6eadb0_228dd931","updated":"2016-12-13 10:01:51.000000000","message":"Deleted DB access.\nThese are our old code which are no longer needed.","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"21ec6260e037601f9824b398d6c9c3214fb88364","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if ldn \u003e max_ld_count - 1:"},{"line_number":102,"context_line":"            LOG.error(_LE(\u0027All LDNs are used. \u0027"},{"line_number":103,"context_line":"                          \u0027No more volumes can be created.\u0027))"},{"line_number":104,"context_line":"            raise exception.OverQuota(_(\u0027All LDNs are used.\u0027))"},{"line_number":105,"context_line":"        return ldn"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def _return_poolnumber(self, nominated_pools):"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_02ba9de1","line":104,"updated":"2016-12-13 04:28:23.000000000","message":"exception.OverQuota(overs\u003d_(\u0027xxxx\u0027))","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"571ad0bd3c86ac82f4c7ea907dfbdb3f0789b938","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if ldn \u003e max_ld_count - 1:"},{"line_number":102,"context_line":"            LOG.error(_LE(\u0027All LDNs are used. \u0027"},{"line_number":103,"context_line":"                          \u0027No more volumes can be created.\u0027))"},{"line_number":104,"context_line":"            raise exception.OverQuota(_(\u0027All LDNs are used.\u0027))"},{"line_number":105,"context_line":"        return ldn"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def _return_poolnumber(self, nominated_pools):"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_c086d3b8","line":104,"in_reply_to":"1a6eadb0_02ba9de1","updated":"2016-12-13 10:01:51.000000000","message":"Done","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"21ec6260e037601f9824b398d6c9c3214fb88364","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            selected_pool \u003d self._return_poolnumber(pools)"},{"line_number":147,"context_line":"        except exception.CinderException:"},{"line_number":148,"context_line":"            updates \u003d {\u0027migration_status\u0027: None}"},{"line_number":149,"context_line":"            self._db.volume_update(self._context, volume[\u0027id\u0027], updates)"},{"line_number":150,"context_line":"            raise"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        if selected_pool \u003d\u003d ld[\u0027pool_num\u0027]:"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_e273e14b","line":149,"updated":"2016-12-13 04:28:23.000000000","message":"Driver should not be directly updating the database.","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"571ad0bd3c86ac82f4c7ea907dfbdb3f0789b938","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            selected_pool \u003d self._return_poolnumber(pools)"},{"line_number":147,"context_line":"        except exception.CinderException:"},{"line_number":148,"context_line":"            updates \u003d {\u0027migration_status\u0027: None}"},{"line_number":149,"context_line":"            self._db.volume_update(self._context, volume[\u0027id\u0027], updates)"},{"line_number":150,"context_line":"            raise"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        if selected_pool \u003d\u003d ld[\u0027pool_num\u0027]:"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_609fbf03","line":149,"in_reply_to":"1a6eadb0_e273e14b","updated":"2016-12-13 10:01:51.000000000","message":"Done","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"21ec6260e037601f9824b398d6c9c3214fb88364","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                          \u0027pool_number\u003d%(pool)d, size_increase\u003d%(sizeinc)d\u0027,"},{"line_number":320,"context_line":"                          {\u0027pool\u0027: pool_number,"},{"line_number":321,"context_line":"                           \u0027sizeinc\u0027: size_increase * ld_count})"},{"line_number":322,"context_line":"                raise exception.OverQuota(_(\u0027No enough pool capacity.\u0027))"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        return rvs"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_82cead81","line":322,"updated":"2016-12-13 04:28:23.000000000","message":"Same","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"571ad0bd3c86ac82f4c7ea907dfbdb3f0789b938","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                          \u0027pool_number\u003d%(pool)d, size_increase\u003d%(sizeinc)d\u0027,"},{"line_number":320,"context_line":"                          {\u0027pool\u0027: pool_number,"},{"line_number":321,"context_line":"                           \u0027sizeinc\u0027: size_increase * ld_count})"},{"line_number":322,"context_line":"                raise exception.OverQuota(_(\u0027No enough pool capacity.\u0027))"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        return rvs"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_c0adf332","line":322,"in_reply_to":"1a6eadb0_82cead81","updated":"2016-12-13 10:01:51.000000000","message":"Done","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"21ec6260e037601f9824b398d6c9c3214fb88364","unresolved":false,"context_lines":[{"line_number":432,"context_line":"                          source_name)"},{"line_number":433,"context_line":"                msg \u003d _(\u0027Cannot create clone volume. \u0027"},{"line_number":434,"context_line":"                        \u0027number of pairs reached 3.\u0027)"},{"line_number":435,"context_line":"                raise exception.OverQuota(msg)"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        # Creating Cloned Volume."},{"line_number":438,"context_line":"        (volume_name,"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_c2c8a577","line":435,"updated":"2016-12-13 04:28:23.000000000","message":"Same","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"571ad0bd3c86ac82f4c7ea907dfbdb3f0789b938","unresolved":false,"context_lines":[{"line_number":432,"context_line":"                          source_name)"},{"line_number":433,"context_line":"                msg \u003d _(\u0027Cannot create clone volume. \u0027"},{"line_number":434,"context_line":"                        \u0027number of pairs reached 3.\u0027)"},{"line_number":435,"context_line":"                raise exception.OverQuota(msg)"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        # Creating Cloned Volume."},{"line_number":438,"context_line":"        (volume_name,"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_80bbfb71","line":435,"in_reply_to":"1a6eadb0_c2c8a577","updated":"2016-12-13 10:01:51.000000000","message":"Done","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"21ec6260e037601f9824b398d6c9c3214fb88364","unresolved":false,"context_lines":[{"line_number":1719,"context_line":"                          \u0027number of pairs reached 3. ldname\u003d%s\u0027,"},{"line_number":1720,"context_line":"                          ldname)"},{"line_number":1721,"context_line":"                msg \u003d _(\u0027Cannot create snapshot. number of pairs reached 3.\u0027)"},{"line_number":1722,"context_line":"                raise exception.OverQuota(msg)"},{"line_number":1723,"context_line":"            elif len(delete_pairs) !\u003d 0:"},{"line_number":1724,"context_line":"                save_diff \u003d 0"},{"line_number":1725,"context_line":"                for delete_pair in delete_pairs:"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_22a6b9c1","line":1722,"updated":"2016-12-13 04:28:23.000000000","message":"Same\n\nPlease fix all the OverQuota.","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"571ad0bd3c86ac82f4c7ea907dfbdb3f0789b938","unresolved":false,"context_lines":[{"line_number":1719,"context_line":"                          \u0027number of pairs reached 3. ldname\u003d%s\u0027,"},{"line_number":1720,"context_line":"                          ldname)"},{"line_number":1721,"context_line":"                msg \u003d _(\u0027Cannot create snapshot. number of pairs reached 3.\u0027)"},{"line_number":1722,"context_line":"                raise exception.OverQuota(msg)"},{"line_number":1723,"context_line":"            elif len(delete_pairs) !\u003d 0:"},{"line_number":1724,"context_line":"                save_diff \u003d 0"},{"line_number":1725,"context_line":"                for delete_pair in delete_pairs:"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a6eadb0_406803f6","line":1722,"in_reply_to":"1a6eadb0_22a6b9c1","updated":"2016-12-13 10:01:51.000000000","message":"Done","commit_id":"19cf540a28d46304b8099a4458a00a0baddfca4b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self._common.set_context(self._context)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def check_for_setup_error(self):"},{"line_number":59,"context_line":"        LOG.debug(\u0027Driver loaded.\u0027)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _convert_id2name(self, volume):"},{"line_number":62,"context_line":"        ldname \u003d (self._common.get_ldname(volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_0b77113b","line":59,"updated":"2016-12-13 08:44:21.000000000","message":"Do we heed any checks here?","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self._common.set_context(self._context)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def check_for_setup_error(self):"},{"line_number":59,"context_line":"        LOG.debug(\u0027Driver loaded.\u0027)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _convert_id2name(self, volume):"},{"line_number":62,"context_line":"        ldname \u003d (self._common.get_ldname(volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_5d91bdef","line":59,"in_reply_to":"1a6eadb0_0b77113b","updated":"2016-12-13 14:02:09.000000000","message":"Added mandatory parameter check.","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if ldn \u003e max_ld_count - 1:"},{"line_number":102,"context_line":"            LOG.error(_LE(\u0027All LDNs are used. \u0027"},{"line_number":103,"context_line":"                          \u0027No more volumes can be created.\u0027))"},{"line_number":104,"context_line":"            raise exception.OverQuota(_(\u0027All LDNs are used.\u0027))"},{"line_number":105,"context_line":"        return ldn"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def _return_poolnumber(self, nominated_pools):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_8bb081df","line":104,"updated":"2016-12-13 08:44:21.000000000","message":"I\u0027m not sure that OverQuota exception is correct here","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if ldn \u003e max_ld_count - 1:"},{"line_number":102,"context_line":"            LOG.error(_LE(\u0027All LDNs are used. \u0027"},{"line_number":103,"context_line":"                          \u0027No more volumes can be created.\u0027))"},{"line_number":104,"context_line":"            raise exception.OverQuota(_(\u0027All LDNs are used.\u0027))"},{"line_number":105,"context_line":"        return ldn"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def _return_poolnumber(self, nominated_pools):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_bdb65188","line":104,"in_reply_to":"1a6eadb0_8bb081df","updated":"2016-12-13 14:02:09.000000000","message":"Changed","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        try:"},{"line_number":249,"context_line":"            self._create_volume(volume)"},{"line_number":250,"context_line":"            LOG.info(_LI(\u0027Created Volume (%s)\u0027), msgparm)"},{"line_number":251,"context_line":"        except exception.CinderException as e:"},{"line_number":252,"context_line":"            LOG.warning(_LW(\u0027Failed to Create Volume (%(msgparm)s) \u0027"},{"line_number":253,"context_line":"                            \u0027(%(exception)s)\u0027),"},{"line_number":254,"context_line":"                        {\u0027msgparm\u0027: msgparm, \u0027exception\u0027: e})"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_0bdc7111","line":251,"updated":"2016-12-13 08:44:21.000000000","message":"Please, use save_and_rerise_exception context manager","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        try:"},{"line_number":249,"context_line":"            self._create_volume(volume)"},{"line_number":250,"context_line":"            LOG.info(_LI(\u0027Created Volume (%s)\u0027), msgparm)"},{"line_number":251,"context_line":"        except exception.CinderException as e:"},{"line_number":252,"context_line":"            LOG.warning(_LW(\u0027Failed to Create Volume (%(msgparm)s) \u0027"},{"line_number":253,"context_line":"                            \u0027(%(exception)s)\u0027),"},{"line_number":254,"context_line":"                        {\u0027msgparm\u0027: msgparm, \u0027exception\u0027: e})"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_1dae652e","line":251,"in_reply_to":"1a6eadb0_0bdc7111","updated":"2016-12-13 14:02:09.000000000","message":"Done","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b978e762760e8a0f202cf75a174691a510ac359","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"                  \u0027(Volume ID \u003d %(id)s, connector \u003d %(connector)s).\u0027,"},{"line_number":1046,"context_line":"                  {\u0027id\u0027: volume[\u0027id\u0027], \u0027connector\u0027: connector})"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"    def fc_initialize_connection(self, volume, connector):"},{"line_number":1049,"context_line":"        msgparm \u003d (\u0027Volume ID \u003d %(id)s, Connector \u003d %(connector)s\u0027"},{"line_number":1050,"context_line":"                   % {\u0027id\u0027: volume[\u0027id\u0027], \u0027connector\u0027: connector})"},{"line_number":1051,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_ab11bdae","line":1048,"updated":"2016-12-13 08:44:21.000000000","message":"IMO, it would be got to have different helpers for iSCSI and FC drivers","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f0299b632973a56e5e0a86c3f4d8c7f33f81604e","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"                  \u0027(Volume ID \u003d %(id)s, connector \u003d %(connector)s).\u0027,"},{"line_number":1046,"context_line":"                  {\u0027id\u0027: volume[\u0027id\u0027], \u0027connector\u0027: connector})"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"    def fc_initialize_connection(self, volume, connector):"},{"line_number":1049,"context_line":"        msgparm \u003d (\u0027Volume ID \u003d %(id)s, Connector \u003d %(connector)s\u0027"},{"line_number":1050,"context_line":"                   % {\u0027id\u0027: volume[\u0027id\u0027], \u0027connector\u0027: connector})"},{"line_number":1051,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_5d7ffda9","line":1048,"in_reply_to":"1a6eadb0_ab11bdae","updated":"2016-12-13 14:02:09.000000000","message":"I understand we should have different helpers for iSCSI and FC in general.\nHowever, in our case, the code will be hard to read due to complex inheritance relationship.\nWe have different helpers for two types of snapshot already.\nActually we had tried once and gave up to divide.","commit_id":"e11417163359f7015682fa231c6d6d4bc72bbd50"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"class MStorageDriver(object):"},{"line_number":37,"context_line":"    \"\"\"M-Series Storage helper class.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    _VERSION \u003d \u00271.8.1\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def _set_config(self, configuration, host, driver_name):"},{"line_number":42,"context_line":"        self._configuration \u003d configuration"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_7c2bd282","line":39,"range":{"start_line":39,"start_character":22,"end_line":39,"end_character":22},"updated":"2016-12-13 17:01:39.000000000","message":"See my comments regarding VERSION in volume.py.  Please don\u0027t define it in two places.","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":36,"context_line":"class MStorageDriver(object):"},{"line_number":37,"context_line":"    \"\"\"M-Series Storage helper class.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    _VERSION \u003d \u00271.8.1\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def _set_config(self, configuration, host, driver_name):"},{"line_number":42,"context_line":"        self._configuration \u003d configuration"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_47caac6f","line":39,"range":{"start_line":39,"start_character":22,"end_line":39,"end_character":22},"in_reply_to":"1a6eadb0_7c2bd282","updated":"2016-12-14 04:13:19.000000000","message":"Deleted","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        return ldname"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _convert_id2name_in_migrate(self, volume):"},{"line_number":78,"context_line":"        \"\"\"If LD has migrate_status, get LD name from source LD UUID.\"\"\""},{"line_number":79,"context_line":"        LOG.debug(\u0027migration_status:%s\u0027, volume[\u0027migration_status\u0027])"},{"line_number":80,"context_line":"        migstat \u003d volume[\u0027migration_status\u0027]"},{"line_number":81,"context_line":"        if migstat is not None and \u0027target:\u0027 in migstat:"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_9ca50e06","line":78,"updated":"2016-12-13 17:01:39.000000000","message":"What does \"LD\" mean?","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        return ldname"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _convert_id2name_in_migrate(self, volume):"},{"line_number":78,"context_line":"        \"\"\"If LD has migrate_status, get LD name from source LD UUID.\"\"\""},{"line_number":79,"context_line":"        LOG.debug(\u0027migration_status:%s\u0027, volume[\u0027migration_status\u0027])"},{"line_number":80,"context_line":"        migstat \u003d volume[\u0027migration_status\u0027]"},{"line_number":81,"context_line":"        if migstat is not None and \u0027target:\u0027 in migstat:"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_c7a4fcba","line":78,"in_reply_to":"1a6eadb0_9ca50e06","updated":"2016-12-14 04:13:19.000000000","message":"LD means Logical Disk.\nI did s/LD/Logical Disk/g.","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if ldn \u003e max_ld_count - 1:"},{"line_number":102,"context_line":"            LOG.error(_LE(\u0027All LDNs are used. \u0027"},{"line_number":103,"context_line":"                          \u0027No more volumes can be created.\u0027))"},{"line_number":104,"context_line":"            msg \u003d _(\u0027All LDNs are used.\u0027)"},{"line_number":105,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":106,"context_line":"        return ldn"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_9c418e0e","line":104,"updated":"2016-12-13 17:01:39.000000000","message":"This message can be used in both logging and exception.\n\nmsg \u003d (_(\u0027All LDNs are used. \u0027\n                \u0027No more volumes can be created.\u0027))\nLOG.error(msg)","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if ldn \u003e max_ld_count - 1:"},{"line_number":102,"context_line":"            LOG.error(_LE(\u0027All LDNs are used. \u0027"},{"line_number":103,"context_line":"                          \u0027No more volumes can be created.\u0027))"},{"line_number":104,"context_line":"            msg \u003d _(\u0027All LDNs are used.\u0027)"},{"line_number":105,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":106,"context_line":"        return ldn"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_e7abb887","line":104,"in_reply_to":"1a6eadb0_9c418e0e","updated":"2016-12-14 04:13:19.000000000","message":"Done","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        volume: ld information"},{"line_number":189,"context_line":"        validator: validate method(volume, xml)"},{"line_number":190,"context_line":"        nameselector: select ld name method(volume)"},{"line_number":191,"context_line":"        poolselector: select ld location method(volume, pools)"},{"line_number":192,"context_line":"        option: optional info"},{"line_number":193,"context_line":"        \"\"\""},{"line_number":194,"context_line":"        LOG.debug(\u0027_bind_ld Start.\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_1c049ebe","line":191,"updated":"2016-12-13 17:01:39.000000000","message":"missing diskarray_name","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        volume: ld information"},{"line_number":189,"context_line":"        validator: validate method(volume, xml)"},{"line_number":190,"context_line":"        nameselector: select ld name method(volume)"},{"line_number":191,"context_line":"        poolselector: select ld location method(volume, pools)"},{"line_number":192,"context_line":"        option: optional info"},{"line_number":193,"context_line":"        \"\"\""},{"line_number":194,"context_line":"        LOG.debug(\u0027_bind_ld Start.\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_2796904c","line":191,"in_reply_to":"1a6eadb0_1c049ebe","updated":"2016-12-14 04:13:19.000000000","message":"Also missed capacity argument.\nBoth added.","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            result \u003d validator(volume, xml)"},{"line_number":202,"context_line":"            if result is False:"},{"line_number":203,"context_line":"                msg \u003d _(\u0027Bind LD info invalid.\u0027)"},{"line_number":204,"context_line":"                raise exception.VolumeBackendAPIException(msg)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # generate new ld name."},{"line_number":207,"context_line":"        ldname \u003d nameselector(volume)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_3c187a1d","line":204,"range":{"start_line":204,"start_character":22,"end_line":204,"end_character":62},"updated":"2016-12-13 17:01:39.000000000","message":"exception.VolumeBackendAPIException(data\u003dmsg)","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            result \u003d validator(volume, xml)"},{"line_number":202,"context_line":"            if result is False:"},{"line_number":203,"context_line":"                msg \u003d _(\u0027Bind LD info invalid.\u0027)"},{"line_number":204,"context_line":"                raise exception.VolumeBackendAPIException(msg)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # generate new ld name."},{"line_number":207,"context_line":"        ldname \u003d nameselector(volume)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_67a088a0","line":204,"range":{"start_line":204,"start_character":22,"end_line":204,"end_character":62},"in_reply_to":"1a6eadb0_3c187a1d","updated":"2016-12-14 04:13:19.000000000","message":"Done","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        if retnum is False:"},{"line_number":229,"context_line":"            if \u0027iSM31077\u0027 in errnum:"},{"line_number":230,"context_line":"                msg \u003d _(\u0027LD number duplicate error. %s\u0027) % errnum"},{"line_number":231,"context_line":"                raise exception.VolumeBackendAPIException(msg)"},{"line_number":232,"context_line":"            else:"},{"line_number":233,"context_line":"                msg \u003d _(\u0027LD bind failed. %s\u0027) % errnum"},{"line_number":234,"context_line":"                raise exception.VolumeBackendAPIException(msg)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_1cf2ded2","line":231,"updated":"2016-12-13 17:01:39.000000000","message":"exception.VolumeBackendAPIException(data\u003dmsg)\n\nPlease fix all VolumeBackendAPIException.","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        if retnum is False:"},{"line_number":229,"context_line":"            if \u0027iSM31077\u0027 in errnum:"},{"line_number":230,"context_line":"                msg \u003d _(\u0027LD number duplicate error. %s\u0027) % errnum"},{"line_number":231,"context_line":"                raise exception.VolumeBackendAPIException(msg)"},{"line_number":232,"context_line":"            else:"},{"line_number":233,"context_line":"                msg \u003d _(\u0027LD bind failed. %s\u0027) % errnum"},{"line_number":234,"context_line":"                raise exception.VolumeBackendAPIException(msg)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_879be471","line":231,"in_reply_to":"1a6eadb0_1cf2ded2","updated":"2016-12-14 04:13:19.000000000","message":"Done","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        if ldname not in lds:"},{"line_number":352,"context_line":"            LOG.debug(\u0027LD `%(name)s` already unbound? volume_id \u003d %(id)s.\u0027,"},{"line_number":353,"context_line":"                      {\u0027name\u0027: ldname, \u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":354,"context_line":"            msg \u003d _(\u0027LD already unbound?\u0027)"},{"line_number":355,"context_line":"            raise exception.VolumeBackendAPIException(msg)"},{"line_number":356,"context_line":"        ld \u003d lds[ldname]"},{"line_number":357,"context_line":"        ldn \u003d ld[\u0027ldn\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_bc03aa72","line":354,"updated":"2016-12-13 17:01:39.000000000","message":"It\u0027s better to also include the info in 352-353 to the exception message.  Format one message and log an Error.","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        if ldname not in lds:"},{"line_number":352,"context_line":"            LOG.debug(\u0027LD `%(name)s` already unbound? volume_id \u003d %(id)s.\u0027,"},{"line_number":353,"context_line":"                      {\u0027name\u0027: ldname, \u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":354,"context_line":"            msg \u003d _(\u0027LD already unbound?\u0027)"},{"line_number":355,"context_line":"            raise exception.VolumeBackendAPIException(msg)"},{"line_number":356,"context_line":"        ld \u003d lds[ldname]"},{"line_number":357,"context_line":"        ldn \u003d ld[\u0027ldn\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_a788e023","line":354,"in_reply_to":"1a6eadb0_bc03aa72","updated":"2016-12-14 04:13:19.000000000","message":"Done","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e55f7efadd3114015e6e76475a8b9df717c9fc2d","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                          \u0027number of pairs reached 3. ldname\u003d%s\u0027,"},{"line_number":424,"context_line":"                          source_name)"},{"line_number":425,"context_line":"                msg \u003d _(\u0027Cannot create clone volume. \u0027"},{"line_number":426,"context_line":"                        \u0027number of pairs reached 3.\u0027)"},{"line_number":427,"context_line":"                raise exception.OverQuota(overs\u003dmsg)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"        # Creating Cloned Volume."}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_5c79b6fb","line":426,"updated":"2016-12-13 17:01:39.000000000","message":"Please see my comments on line 104.  It\u0027s better to format one message and then log an error msg and also use the same msg in the exception.\n\nSame comments go to other similar places.","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"f22f439669c7ee6b455ff8d3f2364b7b28905b04","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                          \u0027number of pairs reached 3. ldname\u003d%s\u0027,"},{"line_number":424,"context_line":"                          source_name)"},{"line_number":425,"context_line":"                msg \u003d _(\u0027Cannot create clone volume. \u0027"},{"line_number":426,"context_line":"                        \u0027number of pairs reached 3.\u0027)"},{"line_number":427,"context_line":"                raise exception.OverQuota(overs\u003dmsg)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"        # Creating Cloned Volume."}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_e782d8ff","line":426,"in_reply_to":"1a6eadb0_5c79b6fb","updated":"2016-12-14 04:13:19.000000000","message":"Done","commit_id":"f2ad3ef4c2c580e3d538063ddac3c9662de23a8c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                if query_status !\u003d \u0027separated\u0027:"},{"line_number":296,"context_line":"                    msg \u003d (_(\u0027Specified Logical Disk %s has been copied.\u0027) %"},{"line_number":297,"context_line":"                           rv_name)"},{"line_number":298,"context_line":"                    LOG.debug(msg)"},{"line_number":299,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":300,"context_line":"                # get pool number."},{"line_number":301,"context_line":"                if pool_number in ld_count_in_pool:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_62e87611","line":298,"updated":"2016-12-14 04:52:19.000000000","message":"Change to LOG.error(msg).\n\nDebug msg cannot take _(\u0027xxxx\u0027).","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                if query_status !\u003d \u0027separated\u0027:"},{"line_number":296,"context_line":"                    msg \u003d (_(\u0027Specified Logical Disk %s has been copied.\u0027) %"},{"line_number":297,"context_line":"                           rv_name)"},{"line_number":298,"context_line":"                    LOG.debug(msg)"},{"line_number":299,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":300,"context_line":"                # get pool number."},{"line_number":301,"context_line":"                if pool_number in ld_count_in_pool:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_b602cf09","line":298,"in_reply_to":"1a6eadb0_62e87611","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                         \u0027pool_number\u003d%(pool)d, size_increase\u003d%(sizeinc)d\u0027) %"},{"line_number":317,"context_line":"                       {\u0027pool\u0027: pool_number,"},{"line_number":318,"context_line":"                        \u0027sizeinc\u0027: size_increase * ld_count})"},{"line_number":319,"context_line":"                LOG.debug(msg)"},{"line_number":320,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        return rvs"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_626dd697","line":319,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                         \u0027pool_number\u003d%(pool)d, size_increase\u003d%(sizeinc)d\u0027) %"},{"line_number":317,"context_line":"                       {\u0027pool\u0027: pool_number,"},{"line_number":318,"context_line":"                        \u0027sizeinc\u0027: size_increase * ld_count})"},{"line_number":319,"context_line":"                LOG.debug(msg)"},{"line_number":320,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        return rvs"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_d9ff7cff","line":319,"in_reply_to":"1a6eadb0_626dd697","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":352,"context_line":"            msg \u003d (_(\u0027Logical Disk has unbound already \u0027"},{"line_number":353,"context_line":"                     \u0027(name\u003d%(name)s, id\u003d%(id)s).\u0027) %"},{"line_number":354,"context_line":"                   {\u0027name\u0027: ldname, \u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":355,"context_line":"            LOG.debug(msg)"},{"line_number":356,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":357,"context_line":"        ld \u003d lds[ldname]"},{"line_number":358,"context_line":"        ldn \u003d ld[\u0027ldn\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_22b03e43","line":355,"updated":"2016-12-14 04:52:19.000000000","message":"debug message cannot take _(\u0027xxxx\u0027) because it is not supposed to be translated.  Please change this to LOG.error(msg).\n\nPlease make this change in all similar places.","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":352,"context_line":"            msg \u003d (_(\u0027Logical Disk has unbound already \u0027"},{"line_number":353,"context_line":"                     \u0027(name\u003d%(name)s, id\u003d%(id)s).\u0027) %"},{"line_number":354,"context_line":"                   {\u0027name\u0027: ldname, \u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":355,"context_line":"            LOG.debug(msg)"},{"line_number":356,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":357,"context_line":"        ld \u003d lds[ldname]"},{"line_number":358,"context_line":"        ldn \u003d ld[\u0027ldn\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_f9027808","line":355,"in_reply_to":"1a6eadb0_22b03e43","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        elif ld[\u0027RPL Attribute\u0027] !\u003d \u0027IV\u0027:"},{"line_number":372,"context_line":"            msg \u003d (_(\u0027RPL Attribute Error. RPL Attribute \u003d %s.\u0027)"},{"line_number":373,"context_line":"                   % ld[\u0027RPL Attribute\u0027])"},{"line_number":374,"context_line":"            LOG.debug(msg)"},{"line_number":375,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        LOG.debug(\u0027_extend_volume(Volume ID \u003d %(id)s, \u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_c23a2a98","line":374,"updated":"2016-12-14 04:52:19.000000000","message":"same","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        elif ld[\u0027RPL Attribute\u0027] !\u003d \u0027IV\u0027:"},{"line_number":372,"context_line":"            msg \u003d (_(\u0027RPL Attribute Error. RPL Attribute \u003d %s.\u0027)"},{"line_number":373,"context_line":"                   % ld[\u0027RPL Attribute\u0027])"},{"line_number":374,"context_line":"            LOG.debug(msg)"},{"line_number":375,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        LOG.debug(\u0027_extend_volume(Volume ID \u003d %(id)s, \u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_190ad421","line":374,"in_reply_to":"1a6eadb0_c23a2a98","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":410,"context_line":"            msg \u003d (_(\u0027Logical Disk `%(name)s` has unbound already. \u0027"},{"line_number":411,"context_line":"                     \u0027volume_id \u003d %(id)s.\u0027) %"},{"line_number":412,"context_line":"                   {\u0027name\u0027: source_name, \u0027id\u0027: src_vref[\u0027id\u0027]})"},{"line_number":413,"context_line":"            LOG.debug(msg)"},{"line_number":414,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":415,"context_line":"        source_ld \u003d lds[source_name]"},{"line_number":416,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_825112db","line":413,"updated":"2016-12-14 04:52:19.000000000","message":"same","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":410,"context_line":"            msg \u003d (_(\u0027Logical Disk `%(name)s` has unbound already. \u0027"},{"line_number":411,"context_line":"                     \u0027volume_id \u003d %(id)s.\u0027) %"},{"line_number":412,"context_line":"                   {\u0027name\u0027: source_name, \u0027id\u0027: src_vref[\u0027id\u0027]})"},{"line_number":413,"context_line":"            LOG.debug(msg)"},{"line_number":414,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":415,"context_line":"        source_ld \u003d lds[source_name]"},{"line_number":416,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_390dd037","line":413,"in_reply_to":"1a6eadb0_825112db","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                         \u0027number of pairs reached 3. \u0027"},{"line_number":424,"context_line":"                         \u0027%(msg)s. ldname\u003d%(ldname)s\u0027) %"},{"line_number":425,"context_line":"                       {\u0027msg\u0027: msg, \u0027ldname\u0027: source_name})"},{"line_number":426,"context_line":"                LOG.debug(msg)"},{"line_number":427,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"        # Creating Cloned Volume."}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_02450216","line":426,"updated":"2016-12-14 04:52:19.000000000","message":"same","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                         \u0027number of pairs reached 3. \u0027"},{"line_number":424,"context_line":"                         \u0027%(msg)s. ldname\u003d%(ldname)s\u0027) %"},{"line_number":425,"context_line":"                       {\u0027msg\u0027: msg, \u0027ldname\u0027: source_name})"},{"line_number":426,"context_line":"                LOG.debug(msg)"},{"line_number":427,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"        # Creating Cloned Volume."}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_59144c43","line":426,"in_reply_to":"1a6eadb0_02450216","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":485,"context_line":"        # check volume status."},{"line_number":486,"context_line":"        if volume[\u0027status\u0027] !\u003d \u0027available\u0027:"},{"line_number":487,"context_line":"            msg \u003d _(\u0027Specified Logical Disk %s is not available.\u0027) % ldname"},{"line_number":488,"context_line":"            LOG.debug(msg)"},{"line_number":489,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"        # get ld object and check rpl attribute."}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_0213420e","line":488,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":485,"context_line":"        # check volume status."},{"line_number":486,"context_line":"        if volume[\u0027status\u0027] !\u003d \u0027available\u0027:"},{"line_number":487,"context_line":"            msg \u003d _(\u0027Specified Logical Disk %s is not available.\u0027) % ldname"},{"line_number":488,"context_line":"            LOG.debug(msg)"},{"line_number":489,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"        # get ld object and check rpl attribute."}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_790f482e","line":488,"in_reply_to":"1a6eadb0_0213420e","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":491,"context_line":"        # get ld object and check rpl attribute."},{"line_number":492,"context_line":"        if ldname not in lds:"},{"line_number":493,"context_line":"            msg \u003d _(\u0027Logical Disk `%s` does not exist.\u0027) % ldname"},{"line_number":494,"context_line":"            LOG.debug(msg)"},{"line_number":495,"context_line":"            raise exception.NotFound(msg)"},{"line_number":496,"context_line":"        ld \u003d lds[ldname]"},{"line_number":497,"context_line":"        if ld[\u0027Purpose\u0027] !\u003d \u0027---\u0027:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_22fafebd","line":494,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":491,"context_line":"        # get ld object and check rpl attribute."},{"line_number":492,"context_line":"        if ldname not in lds:"},{"line_number":493,"context_line":"            msg \u003d _(\u0027Logical Disk `%s` does not exist.\u0027) % ldname"},{"line_number":494,"context_line":"            LOG.debug(msg)"},{"line_number":495,"context_line":"            raise exception.NotFound(msg)"},{"line_number":496,"context_line":"        ld \u003d lds[ldname]"},{"line_number":497,"context_line":"        if ld[\u0027Purpose\u0027] !\u003d \u0027---\u0027:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_b919e07b","line":494,"in_reply_to":"1a6eadb0_22fafebd","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"            msg \u003d (_(\u0027Logical Disk %(ld)s has unbound already. \u0027"},{"line_number":1118,"context_line":"                     \u0027volume_id \u003d %(id)s.\u0027) %"},{"line_number":1119,"context_line":"                   {\u0027ld\u0027: ldname, \u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":1120,"context_line":"            LOG.debug(msg)"},{"line_number":1121,"context_line":"            raise exception.NotFound(msg)"},{"line_number":1122,"context_line":"        ldn \u003d lds[ldname][\u0027ldn\u0027]"},{"line_number":1123,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_e2264667","line":1120,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"            msg \u003d (_(\u0027Logical Disk %(ld)s has unbound already. \u0027"},{"line_number":1118,"context_line":"                     \u0027volume_id \u003d %(id)s.\u0027) %"},{"line_number":1119,"context_line":"                   {\u0027ld\u0027: ldname, \u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":1120,"context_line":"            LOG.debug(msg)"},{"line_number":1121,"context_line":"            raise exception.NotFound(msg)"},{"line_number":1122,"context_line":"        ldn \u003d lds[ldname][\u0027ldn\u0027]"},{"line_number":1123,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_d9269cb9","line":1120,"in_reply_to":"1a6eadb0_e2264667","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":1298,"context_line":"                self._cli.unpair(ldname[3:], rvname, \u0027force\u0027)"},{"line_number":1299,"context_line":"            else:"},{"line_number":1300,"context_line":"                msg \u003d _(\u0027Specified Logical Disk %s has been copied.\u0027) % ldname"},{"line_number":1301,"context_line":"                LOG.debug(msg)"},{"line_number":1302,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1303,"context_line":""},{"line_number":1304,"context_line":"        elif ld[\u0027RPL Attribute\u0027] \u003d\u003d \u0027RV\u0027:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_621b161c","line":1301,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":1298,"context_line":"                self._cli.unpair(ldname[3:], rvname, \u0027force\u0027)"},{"line_number":1299,"context_line":"            else:"},{"line_number":1300,"context_line":"                msg \u003d _(\u0027Specified Logical Disk %s has been copied.\u0027) % ldname"},{"line_number":1301,"context_line":"                LOG.debug(msg)"},{"line_number":1302,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1303,"context_line":""},{"line_number":1304,"context_line":"        elif ld[\u0027RPL Attribute\u0027] \u003d\u003d \u0027RV\u0027:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_f929988a","line":1301,"in_reply_to":"1a6eadb0_621b161c","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"                self._cli.unpair(mvname, ldname[3:], \u0027force\u0027)"},{"line_number":1310,"context_line":"            else:"},{"line_number":1311,"context_line":"                msg \u003d _(\u0027Specified Logical Disk %s has been copied.\u0027) % ldname"},{"line_number":1312,"context_line":"                LOG.debug(msg)"},{"line_number":1313,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_c2d6aa26","line":1312,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"                self._cli.unpair(mvname, ldname[3:], \u0027force\u0027)"},{"line_number":1310,"context_line":"            else:"},{"line_number":1311,"context_line":"                msg \u003d _(\u0027Specified Logical Disk %s has been copied.\u0027) % ldname"},{"line_number":1312,"context_line":"                LOG.debug(msg)"},{"line_number":1313,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_1921f49f","line":1312,"in_reply_to":"1a6eadb0_c2d6aa26","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":1315,"context_line":"        else:"},{"line_number":1316,"context_line":"            msg \u003d (_(\u0027RPL Attribute Error. RPL Attribute \u003d %s.\u0027)"},{"line_number":1317,"context_line":"                   % ld[\u0027RPL Attribute\u0027])"},{"line_number":1318,"context_line":"            LOG.debug(msg)"},{"line_number":1319,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"        # Check the LD is remaining on ldset_controller_node."}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_e2dd6643","line":1318,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":1315,"context_line":"        else:"},{"line_number":1316,"context_line":"            msg \u003d (_(\u0027RPL Attribute Error. RPL Attribute \u003d %s.\u0027)"},{"line_number":1317,"context_line":"                   % ld[\u0027RPL Attribute\u0027])"},{"line_number":1318,"context_line":"            LOG.debug(msg)"},{"line_number":1319,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"        # Check the LD is remaining on ldset_controller_node."}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_3924f0ad","line":1318,"in_reply_to":"1a6eadb0_e2dd6643","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":1543,"context_line":"                                         self._properties[\u0027ld_name_format\u0027])"},{"line_number":1544,"context_line":"        if ldname not in lds:"},{"line_number":1545,"context_line":"            msg \u003d _(\u0027Logical Disk `%s` has unbound already.\u0027) % ldname"},{"line_number":1546,"context_line":"            LOG.debug(msg)"},{"line_number":1547,"context_line":"            raise exception.NotFound(msg)"},{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        selected_pool \u003d self._select_dsv_poolnumber(snapshot, pools, None)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_a2ba8edf","line":1546,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":1543,"context_line":"                                         self._properties[\u0027ld_name_format\u0027])"},{"line_number":1544,"context_line":"        if ldname not in lds:"},{"line_number":1545,"context_line":"            msg \u003d _(\u0027Logical Disk `%s` has unbound already.\u0027) % ldname"},{"line_number":1546,"context_line":"            LOG.debug(msg)"},{"line_number":1547,"context_line":"            raise exception.NotFound(msg)"},{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        selected_pool \u003d self._select_dsv_poolnumber(snapshot, pools, None)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_593b6cd1","line":1546,"in_reply_to":"1a6eadb0_a2ba8edf","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"        if rvname not in lds:"},{"line_number":1636,"context_line":"            msg \u003d _(\u0027Logical Disk `%s` has unbound already.\u0027) % rvname"},{"line_number":1637,"context_line":"            LOG.debug(msg)"},{"line_number":1638,"context_line":"            raise exception.NotFound(msg)"},{"line_number":1639,"context_line":"        rv \u003d lds[rvname]"},{"line_number":1640,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_e2b486f3","line":1637,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"        if rvname not in lds:"},{"line_number":1636,"context_line":"            msg \u003d _(\u0027Logical Disk `%s` has unbound already.\u0027) % rvname"},{"line_number":1637,"context_line":"            LOG.debug(msg)"},{"line_number":1638,"context_line":"            raise exception.NotFound(msg)"},{"line_number":1639,"context_line":"        rv \u003d lds[rvname]"},{"line_number":1640,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_793668e8","line":1637,"in_reply_to":"1a6eadb0_e2b486f3","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8a21b21a2e3f40b597a929af36b1cc40e2d337e5","unresolved":false,"context_lines":[{"line_number":1645,"context_line":"                     \u0027because the snapshot data does not exist. \u0027"},{"line_number":1646,"context_line":"                     \u0027bvname\u003d%(bvname)s, svname\u003d%(svname)s\u0027) %"},{"line_number":1647,"context_line":"                   {\u0027bvname\u0027: mvname, \u0027svname\u0027: rvname})"},{"line_number":1648,"context_line":"            LOG.debug(msg)"},{"line_number":1649,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1650,"context_line":""},{"line_number":1651,"context_line":"        mv_capacity \u003d rv[\u0027ld_capacity\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_22cf5e80","line":1648,"updated":"2016-12-14 04:52:19.000000000","message":"LOG.error(msg)","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"3519e7843985ae2809924910ffb1dd07fb8c683c","unresolved":false,"context_lines":[{"line_number":1645,"context_line":"                     \u0027because the snapshot data does not exist. \u0027"},{"line_number":1646,"context_line":"                     \u0027bvname\u003d%(bvname)s, svname\u003d%(svname)s\u0027) %"},{"line_number":1647,"context_line":"                   {\u0027bvname\u0027: mvname, \u0027svname\u0027: rvname})"},{"line_number":1648,"context_line":"            LOG.debug(msg)"},{"line_number":1649,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1650,"context_line":""},{"line_number":1651,"context_line":"        mv_capacity \u003d rv[\u0027ld_capacity\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_993504dc","line":1648,"in_reply_to":"1a6eadb0_22cf5e80","updated":"2016-12-14 06:01:53.000000000","message":"Done","commit_id":"7fa81dfbc65fc35f252db08f9d8f6057d2e1df1d"}],"cinder/volume/drivers/nec/volume_list.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    alnum \u003d \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\""},{"line_number":45,"context_line":"    num \u003d int(uuid.replace((\"-\"), \"\"), 16)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    str \u003d \"\""},{"line_number":48,"context_line":"    while num !\u003d 0:"},{"line_number":49,"context_line":"        str \u003d alnum[num % len(alnum)] + str"},{"line_number":50,"context_line":"        num \u003d num - num % len(alnum)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_4ae091fa","line":47,"updated":"2016-11-02 15:27:09.000000000","message":"please, don\u0027t use \u0027str\u0027 as a variable name. It\u0027s python reserved keyword","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    alnum \u003d \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\""},{"line_number":45,"context_line":"    num \u003d int(uuid.replace((\"-\"), \"\"), 16)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    str \u003d \"\""},{"line_number":48,"context_line":"    while num !\u003d 0:"},{"line_number":49,"context_line":"        str \u003d alnum[num % len(alnum)] + str"},{"line_number":50,"context_line":"        num \u003d num - num % len(alnum)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_107ce8ea","line":47,"in_reply_to":"ba5da102_4ae091fa","updated":"2016-11-11 09:18:30.000000000","message":"Done","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    return uuid"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"def show_ldname_list(uuidList):"},{"line_number":87,"context_line":"    print (\"+--------------------------------------+\" +  # noqa: C303"},{"line_number":88,"context_line":"           \"------------------------+\")"},{"line_number":89,"context_line":"    print (\"|                  ID                  |\" +  # noqa: C303"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_2ab27d06","line":86,"updated":"2016-11-02 15:27:09.000000000","message":"Why do we need these methods with prints?","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    return uuid"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"def show_ldname_list(uuidList):"},{"line_number":87,"context_line":"    print (\"+--------------------------------------+\" +  # noqa: C303"},{"line_number":88,"context_line":"           \"------------------------+\")"},{"line_number":89,"context_line":"    print (\"|                  ID                  |\" +  # noqa: C303"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_b0aedc2b","line":86,"in_reply_to":"ba5da102_2ab27d06","updated":"2016-11-11 09:18:30.000000000","message":"This file is a stand-alone tool to show mappings of cinder volume/snapshot id and logical disk name in storage. This is intended to be used for troubleshooting.","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"72be3bdf1665271bba317babb868a602973a8fa6","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    print (\"        python volume_list.pyc [--help | -h]\")  # noqa: C303"},{"line_number":123,"context_line":"    print (\"        python volume_list.pyc [--version | -v]\")  # noqa: C303"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"if __name__ \u003d\u003d \"__main__\":"},{"line_number":126,"context_line":"    argc \u003d len(sys.argv)"},{"line_number":127,"context_line":"    if \"--version\" in sys.argv or \"-v\" in sys.argv:"},{"line_number":128,"context_line":"        show_version()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_8acd4987","line":125,"updated":"2016-11-02 15:27:09.000000000","message":"Why do we need it here?","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"437f9f1677d6c5230f897ece6f61afb802ee631e","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    print (\"        python volume_list.pyc [--help | -h]\")  # noqa: C303"},{"line_number":123,"context_line":"    print (\"        python volume_list.pyc [--version | -v]\")  # noqa: C303"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"if __name__ \u003d\u003d \"__main__\":"},{"line_number":126,"context_line":"    argc \u003d len(sys.argv)"},{"line_number":127,"context_line":"    if \"--version\" in sys.argv or \"-v\" in sys.argv:"},{"line_number":128,"context_line":"        show_version()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_9061d807","line":125,"in_reply_to":"ba5da102_8acd4987","updated":"2016-11-11 09:18:30.000000000","message":"The same as above.\nWe added more information in usage message.","commit_id":"6826d8b574c0ad5b8d3822a367cee320736e9f4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3d539c1e82f2bb716d322dca8a51c3d3b18e90c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_4f40b534","line":2,"updated":"2016-11-27 20:26:50.000000000","message":"2016","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"348438a9687e6b2f7ff57ca88fe4ce089cae61df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2015-2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_2e6c1207","line":2,"in_reply_to":"5a74a57a_4f40b534","updated":"2016-11-29 10:12:48.000000000","message":"Done","commit_id":"3bd4b5e2bd227bc5330901b70764ce55dbdf31a8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"cf388bc92c174c1957f4abdd5e719d27724cecb2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_a9549cc9","line":1,"updated":"2016-11-29 10:15:50.000000000","message":"I\u0027m not sure that we need it in cinder","commit_id":"cc6678af970ea623972ef04da3674dd071d91f94"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"a197922c315118e891c6105f8168a35b84b1e636","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2016 NEC Corporation."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_d30b102a","line":1,"in_reply_to":"5a74a57a_a9549cc9","updated":"2016-11-30 09:55:12.000000000","message":"Deleted","commit_id":"cc6678af970ea623972ef04da3674dd071d91f94"}],"releasenotes/notes/nec_storage_volume_driver-57663f9ecce1ae19.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"fd6228c792705cac53d8142b4d2eef19dc221f1a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added backend drivers for nec storage.(FC/iSCSI)"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3a71b18c_0c6d1998","line":3,"range":{"start_line":3,"start_character":30,"end_line":3,"end_character":33},"updated":"2016-12-09 15:52:57.000000000","message":"/nec/NEC/","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"},{"author":{"_account_id":23553,"name":"Shingo Takeda","email":"s-takeda-nes@nec.com","username":"s-takeda"},"change_message_id":"baff8582e23d497c93f171b80bf953275bb902de","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added backend drivers for nec storage.(FC/iSCSI)"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3a71b18c_c952f334","line":3,"range":{"start_line":3,"start_character":30,"end_line":3,"end_character":33},"in_reply_to":"3a71b18c_0c6d1998","updated":"2016-12-12 13:23:28.000000000","message":"Done","commit_id":"89d57d52b4ebe726840403e4378600432c2e86cd"}]}
