)]}'
{"cinder/tests/unit/volume/drivers/emc/scaleio/__init__.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":24,"context_line":"import requests"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder import test"},{"line_number":27,"context_line":"from cinder.tests.unit.volume.drivers.emc.scaleio.mocks \\"},{"line_number":28,"context_line":"    import MockHTTPSResponse"},{"line_number":29,"context_line":"from cinder.tests.unit.volume.drivers.emc.scaleio.mocks import ScaleIODriver"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_13ca1a50","line":27,"updated":"2015-05-26 17:29:42.000000000","message":"Do not import classes, import their module.\n\ni.e.:\n    from cinder.tests.unit.volume.drivers.emc.scaleio import mocks as scaleiomocks\n\nThen later:\n   scaleiomocks.MockHTTPSResponse","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"a8feb26f3210ec5ff2fd1299da5818f4633c460a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from cinder import test"},{"line_number":27,"context_line":"from cinder.tests.unit.volume.drivers.emc.scaleio.mocks \\"},{"line_number":28,"context_line":"    import MockHTTPSResponse"},{"line_number":29,"context_line":"from cinder.tests.unit.volume.drivers.emc.scaleio.mocks import ScaleIODriver"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class CustomResponseMode(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_79092fdd","line":29,"updated":"2015-05-26 17:57:54.000000000","message":"Same as Sean said...","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def __enter__(self):"},{"line_number":51,"context_line":"        self.current_responses \u003d self.test_instance.HTTPS_MOCK_RESPONSES"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        _ \u003d copy.deepcopy(self.test_instance.HTTPS_MOCK_RESPONSES)"},{"line_number":54,"context_line":"        current_mode \u003d self.test_instance.current_https_response_mode"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        for call, new_mode in self.custom_responses.items():"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_9303aa76","line":53,"updated":"2015-05-26 17:29:42.000000000","message":"Since this assignment isn\u0027t being ignored, it would be better to use a different variable name than _.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        super(TestScaleIODriver, self).setUp()"},{"line_number":114,"context_line":"        self.driver \u003d ScaleIODriver()"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        if self.log is None:"},{"line_number":117,"context_line":"            self.log \u003d logging.getLogger(self.__class__.__name__)"},{"line_number":118,"context_line":"            self.log.addHandler(logging.StreamHandler(sys.stdout))"},{"line_number":119,"context_line":"        self.log.setLevel(logging.WARN)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_b34a26ab","line":116,"updated":"2015-05-26 17:29:42.000000000","message":"I don\u0027t think we want unit tests setting up and configuring their own separate logging.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"a8feb26f3210ec5ff2fd1299da5818f4633c460a","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        try:"},{"line_number":184,"context_line":"            return self.driver.log_buffer.buffer[-1]"},{"line_number":185,"context_line":"        except IndexError:"},{"line_number":186,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_99a06ba7","line":186,"updated":"2015-05-26 17:57:54.000000000","message":"No need to return None, \"return\" statement will automatically returns None value.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"}],"cinder/tests/unit/volume/drivers/emc/scaleio/mocks.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"from __future__ import print_function"},{"line_number":16,"context_line":"from __future__ import unicode_literals"},{"line_number":17,"context_line":"from __future__ import absolute_import"},{"line_number":18,"context_line":"from __future__ import division"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_1389faca","line":15,"updated":"2015-05-26 17:29:42.000000000","message":"I don\u0027t think these __future__ imports are necessary. Maybe when we still supported 2.6 there was some need for it, but now on 2.7 with 3 support coming it seems unnecessary.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import os"},{"line_number":23,"context_line":"import tempfile"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from logging.handlers import MemoryHandler"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_93bbaa75","line":25,"updated":"2015-05-26 17:29:42.000000000","message":"Don\u0027t import classes.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from requests import Response"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from cinder.volume import configuration as conf"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_53b5327c","line":31,"updated":"2015-05-26 17:29:42.000000000","message":"Same.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"a8feb26f3210ec5ff2fd1299da5818f4633c460a","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        tmpcfg \u003d None"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        if config_file is None:"},{"line_number":64,"context_line":"            tmpcfg \u003d tempfile.mktemp()"},{"line_number":65,"context_line":"            with open(tmpcfg, \u0027w\u0027) as fp:"},{"line_number":66,"context_line":"                fp.write(MOCK_CONFIG)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_391057a8","line":63,"updated":"2015-05-26 17:57:54.000000000","message":"Simply we can use \"if not config_file:\"","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        else:"},{"line_number":70,"context_line":"            scaleio.opt.default \u003d config_file"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        self.log_buffer \u003d MemoryHandler(100)"},{"line_number":73,"context_line":"        self.log \u003d logging.getLogger(\u0027cinder.volume.drivers.emc.scaleio\u0027)"},{"line_number":74,"context_line":"        self.log.setLevel(logging.DEBUG)"},{"line_number":75,"context_line":"        self.log.addHandler(self.log_buffer)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_734eee97","line":72,"updated":"2015-05-26 17:29:42.000000000","message":"Should be able to stick with default logging and not have to set up this test specific logging.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"a8feb26f3210ec5ff2fd1299da5818f4633c460a","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"class MockHTTPSResponse(Response):"},{"line_number":130,"context_line":"    \"\"\"Mock HTTP Response for fake `requests.get/post` calls."},{"line_number":131,"context_line":"    \"\"\""},{"line_number":132,"context_line":"    def __init__(self, content, status_code\u003d200):"},{"line_number":133,"context_line":"        super(MockHTTPSResponse, self).__init__()"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_196d9b32","line":131,"updated":"2015-05-26 17:57:54.000000000","message":"A multi line docstring has a one-line summary, less than 80 characters.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"}],"cinder/tests/unit/volume/drivers/emc/scaleio/test_create_cloned_volume.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from cinder import context"},{"line_number":23,"context_line":"from cinder import exception"},{"line_number":24,"context_line":"from cinder.tests.unit.fake_volume import fake_volume_obj"},{"line_number":25,"context_line":"from cinder.tests.unit.volume.drivers.emc.scaleio import TestScaleIODriver"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestCreateClonedVolume(TestScaleIODriver):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_13257ac1","line":25,"updated":"2015-05-26 17:29:42.000000000","message":"Don\u0027t import classes.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"}],"cinder/tests/unit/volume/drivers/emc/scaleio/test_create_snapshot.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cinder.tests.unit.fake_snapshot import fake_snapshot_obj"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder.tests.unit.volume.drivers.emc.scaleio.mocks \\"},{"line_number":27,"context_line":"    import MockHTTPSResponse"},{"line_number":28,"context_line":"from cinder.tests.unit.volume.drivers.emc.scaleio import TestScaleIODriver"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_130c5a41","line":27,"updated":"2015-05-26 17:29:42.000000000","message":"Don\u0027t import classes.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        self.set_https_response_mode(self.RESPONSE_MODE.Valid)"},{"line_number":107,"context_line":"        self.driver.create_snapshot(self.snapshot)"},{"line_number":108,"context_line":"        self.assertEqual("},{"line_number":109,"context_line":"            \u0027snapshot volume response: {}.\u0027.format(self.snapshot.id),"},{"line_number":110,"context_line":"            self.last_log.getMessage()"},{"line_number":111,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_de1c896c","line":109,"updated":"2015-05-26 17:29:42.000000000","message":"Do not assert against specific logging text. It is good to verify that logging calls were made, but the specific text that was used could change and should not be something asserted against.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"9768f0e94bf05d263879f02222e60496feff67e6","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        self.set_https_response_mode(self.RESPONSE_MODE.Valid)"},{"line_number":107,"context_line":"        self.driver.create_snapshot(self.snapshot)"},{"line_number":108,"context_line":"        self.assertEqual("},{"line_number":109,"context_line":"            \u0027snapshot volume response: {}.\u0027.format(self.snapshot.id),"},{"line_number":110,"context_line":"            self.last_log.getMessage()"},{"line_number":111,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_e4b8d22c","line":109,"in_reply_to":"7a016987_d99ee362","updated":"2015-05-26 17:55:19.000000000","message":"I don\u0027t think we have a guideline documented anywhere, but through a few conversations in IRC and in other code reviews the general consensus is against doing this.\n\nPart of the problem is it isn\u0027t obvious to future maintainers that changing a log message in the source has any kind of testing implication. It\u0027s not until tests are run and fail that it becomes obvious.\n\nMy personal opinion is it\u0027s also not a good unit testing approach. The important thing being tested is that a given code path results in a warning log message. What that warning message specifically says isn\u0027t really a testing concern, IMO.\n\nWe do have a lot of instances where this is currently being done in unit tests. I would like to see those go away in the future. At least for now I\u0027m trying to keep any new instances from creeping in. :)","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"dcff37725bbf62faa1f792eeecb5a96700140dfc","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        self.set_https_response_mode(self.RESPONSE_MODE.Valid)"},{"line_number":107,"context_line":"        self.driver.create_snapshot(self.snapshot)"},{"line_number":108,"context_line":"        self.assertEqual("},{"line_number":109,"context_line":"            \u0027snapshot volume response: {}.\u0027.format(self.snapshot.id),"},{"line_number":110,"context_line":"            self.last_log.getMessage()"},{"line_number":111,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_d99ee362","line":109,"in_reply_to":"7a016987_de1c896c","updated":"2015-05-26 17:39:54.000000000","message":"Sean,\n\nIs there any guideline on not asserting a specific logging text?  This test will actually force us to change the unit test if there\u0027s any change in the message in the code and it also makes sure the message prints correctly.  Personally I\u0027d like to have this kind of test coverage, but will follow rules.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"93ed243450f61e813f3934ddd20e32dba5c4fe88","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        self.set_https_response_mode(self.RESPONSE_MODE.Valid)"},{"line_number":107,"context_line":"        self.driver.create_snapshot(self.snapshot)"},{"line_number":108,"context_line":"        self.assertEqual("},{"line_number":109,"context_line":"            \u0027snapshot volume response: {}.\u0027.format(self.snapshot.id),"},{"line_number":110,"context_line":"            self.last_log.getMessage()"},{"line_number":111,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_5faad386","line":109,"in_reply_to":"7a016987_e4b8d22c","updated":"2015-05-26 18:27:36.000000000","message":"I actually saw a completely opposite review comment on someone else\u0027s patching requesting to add a test to validate the message text. The reason was that there was a format error in the message itself so it will actually throw an exception when the message is printed in the log.  It may be some overhead for the driver maintainers to update the tests, but on the other hand, it prevents the exception from happening when the message is printed in the logs because we caught the format error early. So it can go either ways:).","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"}],"cinder/tests/unit/volume/drivers/emc/scaleio/test_create_volume.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from cinder import exception"},{"line_number":22,"context_line":"from cinder.tests.unit.fake_volume import fake_volume_obj"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from cinder.tests.unit.volume.drivers.emc.scaleio import TestScaleIODriver"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class TestCreateVolume(TestScaleIODriver):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_9e25f1af","line":24,"updated":"2015-05-26 17:29:42.000000000","message":"Don\u0027t import classes.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        self.driver.protection_domain_id \u003d self.PROT_DOMAIN_ID"},{"line_number":160,"context_line":"        self.driver.create_volume(self.volume)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        self.assertEqual("},{"line_number":163,"context_line":"            \u0027Created volume: {}.\u0027.format(volume_id),"},{"line_number":164,"context_line":"            self.last_log.getMessage()"},{"line_number":165,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_de3369f5","line":162,"updated":"2015-05-26 17:29:42.000000000","message":"Don\u0027t assert on log text.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"}],"cinder/tests/unit/volume/drivers/emc/scaleio/test_create_volume_from_snapshot.py":[{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"a8feb26f3210ec5ff2fd1299da5818f4633c460a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cinder.tests.unit.fake_snapshot import fake_snapshot_obj"},{"line_number":25,"context_line":"from cinder.tests.unit.fake_volume import fake_volume_obj"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from cinder.tests.unit.volume.drivers.emc.scaleio import TestScaleIODriver"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class TestCreateVolumeFromSnapShot(TestScaleIODriver):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_d980238e","line":27,"updated":"2015-05-26 17:57:54.000000000","message":"Same as Sean said, do not import classes.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def test_create_volume_from_snapshot(self):"},{"line_number":93,"context_line":"        self.set_https_response_mode(self.RESPONSE_MODE.Valid)"},{"line_number":94,"context_line":"        self.driver.create_volume_from_snapshot(self.volume, self.snapshot)"},{"line_number":95,"context_line":"        self.assertEqual("},{"line_number":96,"context_line":"            \u0027snapshot volume response: {}.\u0027.format(self.volume.id),"},{"line_number":97,"context_line":"            self.last_log.getMessage()"},{"line_number":98,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_5e565907","line":95,"updated":"2015-05-26 17:29:42.000000000","message":"Don\u0027t assert on log text.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"}],"cinder/tests/unit/volume/drivers/emc/scaleio/test_delete_snapshot.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    def test_delete_invalid_snapshot_force_delete(self):"},{"line_number":89,"context_line":"        self.driver.config.set(CONFIG_SECTION_NAME, \u0027force_delete\u0027, \u0027True\u0027)"},{"line_number":90,"context_line":"        self.set_https_response_mode(self.RESPONSE_MODE.Invalid)"},{"line_number":91,"context_line":"        self.driver.delete_snapshot(self.snapshot)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_delete_invalid_snapshot(self):"},{"line_number":94,"context_line":"        self.set_https_response_mode(self.RESPONSE_MODE.Invalid)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_1e68e1b9","line":91,"updated":"2015-05-26 17:29:42.000000000","message":"Should this test assert on any results from this call? Or is the intent that it doesn\u0027t throw an unexpected exception?","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                               \u0027True\u0027)"},{"line_number":103,"context_line":"        self.set_https_response_mode(self.RESPONSE_MODE.Valid)"},{"line_number":104,"context_line":"        self.driver.delete_snapshot(self.snapshot)"},{"line_number":105,"context_line":"        self.assertEqual(self.last_log.getMessage(),"},{"line_number":106,"context_line":"                         \u0027Unmap volume response: {}.\u0027.format("},{"line_number":107,"context_line":"                         self.snapshot.id))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_be478d4a","line":105,"updated":"2015-05-26 17:29:42.000000000","message":"Don\u0027t assert on text.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"a8feb26f3210ec5ff2fd1299da5818f4633c460a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        self.driver.delete_snapshot(self.snapshot)"},{"line_number":105,"context_line":"        self.assertEqual(self.last_log.getMessage(),"},{"line_number":106,"context_line":"                         \u0027Unmap volume response: {}.\u0027.format("},{"line_number":107,"context_line":"                         self.snapshot.id))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_04376ee4","line":107,"updated":"2015-05-26 17:57:54.000000000","message":"I think here the order of arguments is also wrong.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"}],"cinder/tests/unit/volume/drivers/emc/scaleio/test_delete_volume.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.driver.delete_volume(self.volume)"},{"line_number":90,"context_line":"        self.assertEqual("},{"line_number":91,"context_line":"            self.last_log.getMessage(),"},{"line_number":92,"context_line":"            \u0027Unmap volume response: {}.\u0027.format(self.volume.id)"},{"line_number":93,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_be5e6d10","line":92,"updated":"2015-05-26 17:29:42.000000000","message":"Don\u0027t assert on text.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"a8feb26f3210ec5ff2fd1299da5818f4633c460a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.assertEqual("},{"line_number":91,"context_line":"            self.last_log.getMessage(),"},{"line_number":92,"context_line":"            \u0027Unmap volume response: {}.\u0027.format(self.volume.id)"},{"line_number":93,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_c447164a","line":93,"updated":"2015-05-26 17:57:54.000000000","message":"Here also, check the order of arguments.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"}],"cinder/tests/unit/volume/drivers/emc/scaleio/test_misc.py":[{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"a8feb26f3210ec5ff2fd1299da5818f4633c460a","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        \"\"\"Set up the test case environment."},{"line_number":35,"context_line":"        Defines the mock HTTPS responses for the REST API calls."},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":"        super(TestMisc, self).setUp()"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_849fdeb3","line":35,"updated":"2015-05-26 17:57:54.000000000","message":"Multi line docstrings should start with a one line summary followed by an empty line.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"}],"cinder/volume/drivers/emc/scaleio.py":[{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"2b0cbc4291410d1841520ffc648be0161a2ac68b","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        self.server_password \u003d self._get_rest_server_password(self.config)"},{"line_number":93,"context_line":"        self.verify_server_certificate \u003d self._get_verify_server_certificate("},{"line_number":94,"context_line":"            self.config)"},{"line_number":95,"context_line":"        if (self.verify_server_certificate \u003d\u003d \u0027True\u0027):"},{"line_number":96,"context_line":"            self.server_certificate_path \u003d self._get_certificate_path("},{"line_number":97,"context_line":"                self.config)"},{"line_number":98,"context_line":"        LOG.info(_LI("}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_283798e4","line":95,"updated":"2015-05-18 07:59:16.000000000","message":"We can directly use:\n\nif self.verify_server_certificate:","commit_id":"09d283d63cf35dc4f8026ea4124d20740da2b7c4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9010d2c69bf9b48b309211caf8eb71721ec321cf","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        self.server_password \u003d self._get_rest_server_password(self.config)"},{"line_number":93,"context_line":"        self.verify_server_certificate \u003d self._get_verify_server_certificate("},{"line_number":94,"context_line":"            self.config)"},{"line_number":95,"context_line":"        if (self.verify_server_certificate \u003d\u003d \u0027True\u0027):"},{"line_number":96,"context_line":"            self.server_certificate_path \u003d self._get_certificate_path("},{"line_number":97,"context_line":"                self.config)"},{"line_number":98,"context_line":"        LOG.info(_LI("}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_5b3d67ba","line":95,"in_reply_to":"7a016987_283798e4","updated":"2015-05-25 20:35:00.000000000","message":"Done","commit_id":"09d283d63cf35dc4f8026ea4124d20740da2b7c4"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"2b0cbc4291410d1841520ffc648be0161a2ac68b","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    def _get_rest_server_ip(self, config):"},{"line_number":140,"context_line":"        try:"},{"line_number":141,"context_line":"            server_ip \u003d config.get(CONFIG_SECTION_NAME, \u0027rest_server_ip\u0027)"},{"line_number":142,"context_line":"            if server_ip \u003d\u003d \u0027\u0027 or server_ip is None:"},{"line_number":143,"context_line":"                LOG.debug(\"REST Server IP not found.\")"},{"line_number":144,"context_line":"            return server_ip"},{"line_number":145,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_e8474049","line":142,"updated":"2015-05-18 07:59:16.000000000","message":"We can simply test this condition by:\n\nif not server_ip:","commit_id":"09d283d63cf35dc4f8026ea4124d20740da2b7c4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9010d2c69bf9b48b309211caf8eb71721ec321cf","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    def _get_rest_server_ip(self, config):"},{"line_number":140,"context_line":"        try:"},{"line_number":141,"context_line":"            server_ip \u003d config.get(CONFIG_SECTION_NAME, \u0027rest_server_ip\u0027)"},{"line_number":142,"context_line":"            if server_ip \u003d\u003d \u0027\u0027 or server_ip is None:"},{"line_number":143,"context_line":"                LOG.debug(\"REST Server IP not found.\")"},{"line_number":144,"context_line":"            return server_ip"},{"line_number":145,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_3b4aab56","line":142,"in_reply_to":"7a016987_e8474049","updated":"2015-05-25 20:35:00.000000000","message":"Done","commit_id":"09d283d63cf35dc4f8026ea4124d20740da2b7c4"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"2b0cbc4291410d1841520ffc648be0161a2ac68b","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            verify_server_certificate \u003d config.get("},{"line_number":184,"context_line":"                CONFIG_SECTION_NAME, \u0027verify_server_certificate\u0027)"},{"line_number":185,"context_line":"            if (verify_server_certificate \u003d\u003d \u0027\u0027 or"},{"line_number":186,"context_line":"                    verify_server_certificate is None):"},{"line_number":187,"context_line":"                LOG.warning(warn_msg)"},{"line_number":188,"context_line":"                verify_server_certificate \u003d \u0027False\u0027"},{"line_number":189,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_4843f442","line":186,"updated":"2015-05-18 07:59:16.000000000","message":"We can simple test this condition by:\n\nif not verify_server_certificate:","commit_id":"09d283d63cf35dc4f8026ea4124d20740da2b7c4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9010d2c69bf9b48b309211caf8eb71721ec321cf","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            verify_server_certificate \u003d config.get("},{"line_number":184,"context_line":"                CONFIG_SECTION_NAME, \u0027verify_server_certificate\u0027)"},{"line_number":185,"context_line":"            if (verify_server_certificate \u003d\u003d \u0027\u0027 or"},{"line_number":186,"context_line":"                    verify_server_certificate is None):"},{"line_number":187,"context_line":"                LOG.warning(warn_msg)"},{"line_number":188,"context_line":"                verify_server_certificate \u003d \u0027False\u0027"},{"line_number":189,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_bb6c5bd1","line":186,"in_reply_to":"7a016987_4843f442","updated":"2015-05-25 20:35:00.000000000","message":"Done","commit_id":"09d283d63cf35dc4f8026ea4124d20740da2b7c4"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        filename \u003d self.configuration.cinder_scaleio_config_file"},{"line_number":84,"context_line":"        dataset \u003d self.config.read(filename)"},{"line_number":85,"context_line":"        # Throw exception in case the config file doesn\u0027t exist."},{"line_number":86,"context_line":"        if (len(dataset) \u003d\u003d 0):"},{"line_number":87,"context_line":"            raise RuntimeError(\"Failed to find configuration file\")"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        self.server_ip \u003d self._get_rest_server_ip(self.config)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_5ef2d907","line":86,"updated":"2015-05-26 17:29:42.000000000","message":"() not needed. Just change this to:\n\n    if not dataset:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        filename \u003d self.configuration.cinder_scaleio_config_file"},{"line_number":84,"context_line":"        dataset \u003d self.config.read(filename)"},{"line_number":85,"context_line":"        # Throw exception in case the config file doesn\u0027t exist."},{"line_number":86,"context_line":"        if (len(dataset) \u003d\u003d 0):"},{"line_number":87,"context_line":"            raise RuntimeError(\"Failed to find configuration file\")"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        self.server_ip \u003d self._get_rest_server_ip(self.config)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_19d6224f","line":86,"in_reply_to":"7a016987_5ef2d907","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        dataset \u003d self.config.read(filename)"},{"line_number":85,"context_line":"        # Throw exception in case the config file doesn\u0027t exist."},{"line_number":86,"context_line":"        if (len(dataset) \u003d\u003d 0):"},{"line_number":87,"context_line":"            raise RuntimeError(\"Failed to find configuration file\")"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        self.server_ip \u003d self._get_rest_server_ip(self.config)"},{"line_number":90,"context_line":"        self.server_port \u003d self._get_rest_server_port(self.config)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_bee30d33","line":87,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _() translation marker.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        dataset \u003d self.config.read(filename)"},{"line_number":85,"context_line":"        # Throw exception in case the config file doesn\u0027t exist."},{"line_number":86,"context_line":"        if (len(dataset) \u003d\u003d 0):"},{"line_number":87,"context_line":"            raise RuntimeError(\"Failed to find configuration file\")"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        self.server_ip \u003d self._get_rest_server_ip(self.config)"},{"line_number":90,"context_line":"        self.server_port \u003d self._get_rest_server_port(self.config)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f9c6a69a","line":87,"in_reply_to":"7a016987_bee30d33","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        if (self.protection_domain_name is not None and"},{"line_number":134,"context_line":"                self.protection_domain_id is not None):"},{"line_number":135,"context_line":"            raise RuntimeError("},{"line_number":136,"context_line":"                \"Cannot specify both protection domain name \\"},{"line_number":137,"context_line":"                 and protection domain id\")"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def _get_rest_server_ip(self, config):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_9e3611b3","line":136,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _(). Get rid of \\ in the string.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        if (self.protection_domain_name is not None and"},{"line_number":134,"context_line":"                self.protection_domain_id is not None):"},{"line_number":135,"context_line":"            raise RuntimeError("},{"line_number":136,"context_line":"                \"Cannot specify both protection domain name \\"},{"line_number":137,"context_line":"                 and protection domain id\")"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def _get_rest_server_ip(self, config):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_b94cae42","line":136,"in_reply_to":"7a016987_9e3611b3","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                LOG.debug(\"REST Server IP not found.\")"},{"line_number":144,"context_line":"            return server_ip"},{"line_number":145,"context_line":"        except Exception:"},{"line_number":146,"context_line":"            raise RuntimeError(\"REST Server ip must by specified\")"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _get_rest_server_port(self, config):"},{"line_number":149,"context_line":"        warn_msg \u003d _LW(\"REST port is not set, using default 443.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_be51cdda","line":146,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _().","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        warn_msg \u003d _LW(\"REST port is not set, using default 443.\")"},{"line_number":150,"context_line":"        try:"},{"line_number":151,"context_line":"            server_port \u003d config.get(CONFIG_SECTION_NAME, \u0027rest_server_port\u0027)"},{"line_number":152,"context_line":"            if server_port \u003d\u003d \u0027\u0027 or server_port is None:"},{"line_number":153,"context_line":"                LOG.warning(warn_msg)"},{"line_number":154,"context_line":"                server_port \u003d \u0027443\u0027"},{"line_number":155,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_de0249b4","line":152,"updated":"2015-05-26 17:29:42.000000000","message":"Change to:\n\n    if not server_port:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        warn_msg \u003d _LW(\"REST port is not set, using default 443.\")"},{"line_number":150,"context_line":"        try:"},{"line_number":151,"context_line":"            server_port \u003d config.get(CONFIG_SECTION_NAME, \u0027rest_server_port\u0027)"},{"line_number":152,"context_line":"            if server_port \u003d\u003d \u0027\u0027 or server_port is None:"},{"line_number":153,"context_line":"                LOG.warning(warn_msg)"},{"line_number":154,"context_line":"                server_port \u003d \u0027443\u0027"},{"line_number":155,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_1964e2b6","line":152,"in_reply_to":"7a016987_de0249b4","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        try:"},{"line_number":162,"context_line":"            server_username \u003d config.get("},{"line_number":163,"context_line":"                CONFIG_SECTION_NAME, \u0027rest_server_username\u0027)"},{"line_number":164,"context_line":"            if server_username \u003d\u003d \u0027\u0027 or server_username is None:"},{"line_number":165,"context_line":"                raise RuntimeError("},{"line_number":166,"context_line":"                    \"REST Server username not found in conf file\")"},{"line_number":167,"context_line":"            return server_username"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_9e2bb133","line":164,"updated":"2015-05-26 17:29:42.000000000","message":"if not server_username:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        try:"},{"line_number":162,"context_line":"            server_username \u003d config.get("},{"line_number":163,"context_line":"                CONFIG_SECTION_NAME, \u0027rest_server_username\u0027)"},{"line_number":164,"context_line":"            if server_username \u003d\u003d \u0027\u0027 or server_username is None:"},{"line_number":165,"context_line":"                raise RuntimeError("},{"line_number":166,"context_line":"                    \"REST Server username not found in conf file\")"},{"line_number":167,"context_line":"            return server_username"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f90b46d3","line":164,"in_reply_to":"7a016987_9e2bb133","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                CONFIG_SECTION_NAME, \u0027rest_server_username\u0027)"},{"line_number":164,"context_line":"            if server_username \u003d\u003d \u0027\u0027 or server_username is None:"},{"line_number":165,"context_line":"                raise RuntimeError("},{"line_number":166,"context_line":"                    \"REST Server username not found in conf file\")"},{"line_number":167,"context_line":"            return server_username"},{"line_number":168,"context_line":"        except Exception:"},{"line_number":169,"context_line":"            raise RuntimeError(\"REST Server username must be specified\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_1e20e148","line":166,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _().","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                CONFIG_SECTION_NAME, \u0027rest_server_username\u0027)"},{"line_number":164,"context_line":"            if server_username \u003d\u003d \u0027\u0027 or server_username is None:"},{"line_number":165,"context_line":"                raise RuntimeError("},{"line_number":166,"context_line":"                    \"REST Server username not found in conf file\")"},{"line_number":167,"context_line":"            return server_username"},{"line_number":168,"context_line":"        except Exception:"},{"line_number":169,"context_line":"            raise RuntimeError(\"REST Server username must be specified\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_d9108a02","line":166,"in_reply_to":"7a016987_1e20e148","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                    \"REST Server username not found in conf file\")"},{"line_number":167,"context_line":"            return server_username"},{"line_number":168,"context_line":"        except Exception:"},{"line_number":169,"context_line":"            raise RuntimeError(\"REST Server username must be specified\")"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def _get_rest_server_password(self, config):"},{"line_number":172,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_de192924","line":169,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _().","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                    \"REST Server username not found in conf file\")"},{"line_number":167,"context_line":"            return server_username"},{"line_number":168,"context_line":"        except Exception:"},{"line_number":169,"context_line":"            raise RuntimeError(\"REST Server username must be specified\")"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def _get_rest_server_password(self, config):"},{"line_number":172,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_99f7b2d2","line":169,"in_reply_to":"7a016987_de192924","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                CONFIG_SECTION_NAME, \u0027rest_server_password\u0027)"},{"line_number":175,"context_line":"            return server_password"},{"line_number":176,"context_line":"        except Exception:"},{"line_number":177,"context_line":"            raise RuntimeError(\"REST Server password must be specified\")"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def _get_verify_server_certificate(self, config):"},{"line_number":180,"context_line":"        warn_msg \u003d (_LW(\"Verify certificate is not set, using default of \""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_beed4df1","line":177,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _().","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                CONFIG_SECTION_NAME, \u0027rest_server_password\u0027)"},{"line_number":175,"context_line":"            return server_password"},{"line_number":176,"context_line":"        except Exception:"},{"line_number":177,"context_line":"            raise RuntimeError(\"REST Server password must be specified\")"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def _get_verify_server_certificate(self, config):"},{"line_number":180,"context_line":"        warn_msg \u003d (_LW(\"Verify certificate is not set, using default of \""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_b9fa6ebb","line":177,"in_reply_to":"7a016987_beed4df1","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            return certificate_path"},{"line_number":198,"context_line":"        except Exception:"},{"line_number":199,"context_line":"            raise RuntimeError("},{"line_number":200,"context_line":"                \"Path to REST server\u0027s certificate must be specified\")"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def _get_round_capacity(self, config):"},{"line_number":203,"context_line":"        warn_msg \u003d (_LW(\"round_volume_capacity is not set, using default of \""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_dec7e962","line":200,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _().","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            return certificate_path"},{"line_number":198,"context_line":"        except Exception:"},{"line_number":199,"context_line":"            raise RuntimeError("},{"line_number":200,"context_line":"                \"Path to REST server\u0027s certificate must be specified\")"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def _get_round_capacity(self, config):"},{"line_number":203,"context_line":"        warn_msg \u003d (_LW(\"round_volume_capacity is not set, using default of \""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f9222653","line":200,"in_reply_to":"7a016987_dec7e962","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        try:"},{"line_number":206,"context_line":"            round_volume_capacity \u003d self.config.get("},{"line_number":207,"context_line":"                CONFIG_SECTION_NAME, \u0027round_volume_capacity\u0027)"},{"line_number":208,"context_line":"            if (round_volume_capacity \u003d\u003d \u0027\u0027 or round_volume_capacity is None):"},{"line_number":209,"context_line":"                LOG.warning(warn_msg)"},{"line_number":210,"context_line":"                round_volume_capacity \u003d \u0027True\u0027"},{"line_number":211,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_5eaad986","line":208,"updated":"2015-05-26 17:29:42.000000000","message":"if not round_volume_capacity:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        try:"},{"line_number":206,"context_line":"            round_volume_capacity \u003d self.config.get("},{"line_number":207,"context_line":"                CONFIG_SECTION_NAME, \u0027round_volume_capacity\u0027)"},{"line_number":208,"context_line":"            if (round_volume_capacity \u003d\u003d \u0027\u0027 or round_volume_capacity is None):"},{"line_number":209,"context_line":"                LOG.warning(warn_msg)"},{"line_number":210,"context_line":"                round_volume_capacity \u003d \u0027True\u0027"},{"line_number":211,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_791756ee","line":208,"in_reply_to":"7a016987_5eaad986","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        warn_msg \u003d (_LW(\"force_delete is not set, using default of False.\"))"},{"line_number":218,"context_line":"        try:"},{"line_number":219,"context_line":"            force_delete \u003d self.config.get(CONFIG_SECTION_NAME, \u0027force_delete\u0027)"},{"line_number":220,"context_line":"            if (force_delete \u003d\u003d \u0027\u0027 or force_delete is None):"},{"line_number":221,"context_line":"                LOG.warning(warn_msg)"},{"line_number":222,"context_line":"                force_delete \u003d \u0027False\u0027"},{"line_number":223,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_fe918553","line":220,"updated":"2015-05-26 17:29:42.000000000","message":"if not force_delete:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        try:"},{"line_number":232,"context_line":"            unmap_before_delete \u003d self.config.get("},{"line_number":233,"context_line":"                CONFIG_SECTION_NAME, \u0027unmap_volume_before_deletion\u0027)"},{"line_number":234,"context_line":"            if (unmap_before_delete \u003d\u003d \u0027\u0027 or unmap_before_delete is None):"},{"line_number":235,"context_line":"                LOG.warning(warn_msg)"},{"line_number":236,"context_line":"                unmap_before_delete \u003d \u0027False\u0027"},{"line_number":237,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_7e935550","line":234,"updated":"2015-05-26 17:29:42.000000000","message":"if not unmap_before_delete:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        try:"},{"line_number":232,"context_line":"            unmap_before_delete \u003d self.config.get("},{"line_number":233,"context_line":"                CONFIG_SECTION_NAME, \u0027unmap_volume_before_deletion\u0027)"},{"line_number":234,"context_line":"            if (unmap_before_delete \u003d\u003d \u0027\u0027 or unmap_before_delete is None):"},{"line_number":235,"context_line":"                LOG.warning(warn_msg)"},{"line_number":236,"context_line":"                unmap_before_delete \u003d \u0027False\u0027"},{"line_number":237,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f9d90657","line":234,"in_reply_to":"7a016987_7e935550","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        try:"},{"line_number":245,"context_line":"            protection_domain_id \u003d config.get("},{"line_number":246,"context_line":"                CONFIG_SECTION_NAME, \u0027protection_domain_id\u0027)"},{"line_number":247,"context_line":"            if protection_domain_id \u003d\u003d \u0027\u0027 or protection_domain_id is None:"},{"line_number":248,"context_line":"                LOG.warning(warn_msg)"},{"line_number":249,"context_line":"                protection_domain_id \u003d None"},{"line_number":250,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_9eb5f1d1","line":247,"updated":"2015-05-26 17:29:42.000000000","message":"if not protection_domain_id:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        try:"},{"line_number":245,"context_line":"            protection_domain_id \u003d config.get("},{"line_number":246,"context_line":"                CONFIG_SECTION_NAME, \u0027protection_domain_id\u0027)"},{"line_number":247,"context_line":"            if protection_domain_id \u003d\u003d \u0027\u0027 or protection_domain_id is None:"},{"line_number":248,"context_line":"                LOG.warning(warn_msg)"},{"line_number":249,"context_line":"                protection_domain_id \u003d None"},{"line_number":250,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_99e5720a","line":247,"in_reply_to":"7a016987_9eb5f1d1","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        try:"},{"line_number":258,"context_line":"            protection_domain_name \u003d config.get("},{"line_number":259,"context_line":"                CONFIG_SECTION_NAME, \u0027protection_domain_name\u0027)"},{"line_number":260,"context_line":"            if protection_domain_name \u003d\u003d \u0027\u0027 or protection_domain_name is None:"},{"line_number":261,"context_line":"                LOG.warning(warn_msg)"},{"line_number":262,"context_line":"                protection_domain_name \u003d None"},{"line_number":263,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_3eb4bdcf","line":260,"updated":"2015-05-26 17:29:42.000000000","message":"if not protection_domain_name:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        try:"},{"line_number":258,"context_line":"            protection_domain_name \u003d config.get("},{"line_number":259,"context_line":"                CONFIG_SECTION_NAME, \u0027protection_domain_name\u0027)"},{"line_number":260,"context_line":"            if protection_domain_name \u003d\u003d \u0027\u0027 or protection_domain_name is None:"},{"line_number":261,"context_line":"                LOG.warning(warn_msg)"},{"line_number":262,"context_line":"                protection_domain_name \u003d None"},{"line_number":263,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_59eb7adc","line":260,"in_reply_to":"7a016987_3eb4bdcf","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        try:"},{"line_number":277,"context_line":"            storage_pool_name \u003d config.get("},{"line_number":278,"context_line":"                CONFIG_SECTION_NAME, \u0027storage_pool_name\u0027)"},{"line_number":279,"context_line":"            if storage_pool_name \u003d\u003d \u0027\u0027 or storage_pool_name is None:"},{"line_number":280,"context_line":"                LOG.warning(warn_msg)"},{"line_number":281,"context_line":"                storage_pool_name \u003d None"},{"line_number":282,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_dec36937","line":279,"updated":"2015-05-26 17:29:42.000000000","message":"if not storage_pool_name:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        try:"},{"line_number":277,"context_line":"            storage_pool_name \u003d config.get("},{"line_number":278,"context_line":"                CONFIG_SECTION_NAME, \u0027storage_pool_name\u0027)"},{"line_number":279,"context_line":"            if storage_pool_name \u003d\u003d \u0027\u0027 or storage_pool_name is None:"},{"line_number":280,"context_line":"                LOG.warning(warn_msg)"},{"line_number":281,"context_line":"                storage_pool_name \u003d None"},{"line_number":282,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f9b0e6fe","line":279,"in_reply_to":"7a016987_dec36937","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        return storage_pool_name"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    def _get_storage_pool_id(self, config):"},{"line_number":288,"context_line":"        warn_msg \u003d _LW(\"storage pool id not found.\")"},{"line_number":289,"context_line":"        try:"},{"line_number":290,"context_line":"            storage_pool_id \u003d config.get("},{"line_number":291,"context_line":"                CONFIG_SECTION_NAME, \u0027storage_pool_id\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_9edcd119","line":288,"updated":"2015-05-26 17:29:42.000000000","message":"Please start with an uppercase S.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        return storage_pool_name"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    def _get_storage_pool_id(self, config):"},{"line_number":288,"context_line":"        warn_msg \u003d _LW(\"storage pool id not found.\")"},{"line_number":289,"context_line":"        try:"},{"line_number":290,"context_line":"            storage_pool_id \u003d config.get("},{"line_number":291,"context_line":"                CONFIG_SECTION_NAME, \u0027storage_pool_id\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_b9cf0e7e","line":288,"in_reply_to":"7a016987_9edcd119","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        try:"},{"line_number":290,"context_line":"            storage_pool_id \u003d config.get("},{"line_number":291,"context_line":"                CONFIG_SECTION_NAME, \u0027storage_pool_id\u0027)"},{"line_number":292,"context_line":"            if storage_pool_id \u003d\u003d \u0027\u0027 or storage_pool_id is None:"},{"line_number":293,"context_line":"                LOG.warning(warn_msg)"},{"line_number":294,"context_line":"                storage_pool_id \u003d None"},{"line_number":295,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_3eeb9db2","line":292,"updated":"2015-05-26 17:29:42.000000000","message":"if not storage_pool_id:","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        try:"},{"line_number":290,"context_line":"            storage_pool_id \u003d config.get("},{"line_number":291,"context_line":"                CONFIG_SECTION_NAME, \u0027storage_pool_id\u0027)"},{"line_number":292,"context_line":"            if storage_pool_id \u003d\u003d \u0027\u0027 or storage_pool_id is None:"},{"line_number":293,"context_line":"                LOG.warning(warn_msg)"},{"line_number":294,"context_line":"                storage_pool_id \u003d None"},{"line_number":295,"context_line":"        except ConfigParser.Error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_99cc528a","line":292,"in_reply_to":"7a016987_3eeb9db2","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def _find_protection_domain_name_from_storage_type(self, storage_type):"},{"line_number":328,"context_line":"        try:"},{"line_number":329,"context_line":"            domain_name \u003d storage_type[PROTECTION_DOMAIN_NAME]"},{"line_number":330,"context_line":"        except KeyError:"},{"line_number":331,"context_line":"            # Default to what was configured in configuration file if not"},{"line_number":332,"context_line":"            # defined."}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_beee6db2","line":329,"updated":"2015-05-26 17:29:42.000000000","message":"Most of these could be simplified to something like:\n\n    return storage_type.get(PROTECTION_DOMAIN_NAME, self.protection_domain_name)","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def _find_protection_domain_name_from_storage_type(self, storage_type):"},{"line_number":328,"context_line":"        try:"},{"line_number":329,"context_line":"            domain_name \u003d storage_type[PROTECTION_DOMAIN_NAME]"},{"line_number":330,"context_line":"        except KeyError:"},{"line_number":331,"context_line":"            # Default to what was configured in configuration file if not"},{"line_number":332,"context_line":"            # defined."}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_19a742be","line":329,"in_reply_to":"7a016987_beee6db2","updated":"2015-05-30 05:00:20.000000000","message":"Done. Changed other places too.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        if (storage_pool_name is not None and storage_pool_id is not None):"},{"line_number":407,"context_line":"            raise RuntimeError("},{"line_number":408,"context_line":"                \"Cannot specify both storage pool name and storage pool id\")"},{"line_number":409,"context_line":"        if (storage_pool_name is not None):"},{"line_number":410,"context_line":"            self.storage_pool_name \u003d storage_pool_name"},{"line_number":411,"context_line":"            self.storage_pool_id \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_be1c2dc2","line":408,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _().","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        if (storage_pool_name is not None and storage_pool_id is not None):"},{"line_number":407,"context_line":"            raise RuntimeError("},{"line_number":408,"context_line":"                \"Cannot specify both storage pool name and storage pool id\")"},{"line_number":409,"context_line":"        if (storage_pool_name is not None):"},{"line_number":410,"context_line":"            self.storage_pool_name \u003d storage_pool_name"},{"line_number":411,"context_line":"            self.storage_pool_id \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_19e3c2da","line":408,"in_reply_to":"7a016987_be1c2dc2","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        if (protection_domain_name is not None and"},{"line_number":420,"context_line":"                protection_domain_id is not None):"},{"line_number":421,"context_line":"            raise RuntimeError("},{"line_number":422,"context_line":"                \"Cannot specify both protection domain name and  \\"},{"line_number":423,"context_line":"                protection domain id\")"},{"line_number":424,"context_line":"        if (protection_domain_name is not None):"},{"line_number":425,"context_line":"            self.protection_domain_name \u003d protection_domain_name"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_5e82d9c9","line":422,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _().\n\nRemove \\ from text.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        if (protection_domain_name is not None and"},{"line_number":420,"context_line":"                protection_domain_id is not None):"},{"line_number":421,"context_line":"            raise RuntimeError("},{"line_number":422,"context_line":"                \"Cannot specify both protection domain name and  \\"},{"line_number":423,"context_line":"                protection domain id\")"},{"line_number":424,"context_line":"        if (protection_domain_name is not None):"},{"line_number":425,"context_line":"            self.protection_domain_name \u003d protection_domain_name"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_d9e88ab5","line":422,"in_reply_to":"7a016987_5e82d9c9","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":429,"context_line":"            self.protection_domain_name \u003d None"},{"line_number":430,"context_line":"        if (self.protection_domain_name is None and"},{"line_number":431,"context_line":"                self.protection_domain_id is None):"},{"line_number":432,"context_line":"            raise RuntimeError(\"Must specify protection domain name or id\")"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"        domain_id \u003d self.protection_domain_id"},{"line_number":435,"context_line":"        if (domain_id is None):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_7e647548","line":432,"updated":"2015-05-26 17:29:42.000000000","message":"Needs _().","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":429,"context_line":"            self.protection_domain_name \u003d None"},{"line_number":430,"context_line":"        if (self.protection_domain_name is None and"},{"line_number":431,"context_line":"                self.protection_domain_id is None):"},{"line_number":432,"context_line":"            raise RuntimeError(\"Must specify protection domain name or id\")"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"        domain_id \u003d self.protection_domain_id"},{"line_number":435,"context_line":"        if (domain_id is None):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f9fa2676","line":432,"in_reply_to":"7a016987_7e647548","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        if (domain_id is None):"},{"line_number":436,"context_line":"            encoded_domain_name \u003d urllib.quote(self.protection_domain_name, \u0027\u0027)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"            request \u003d \"https://\" + self.server_ip + \":\" + self.server_port + \\"},{"line_number":439,"context_line":"                \"/api/types/Domain/instances/getByName::\" + encoded_domain_name"},{"line_number":440,"context_line":"            LOG.info(_LI(\"ScaleIO get domain id by name request: %s.\"),"},{"line_number":441,"context_line":"                     request)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_7ecb551f","line":438,"updated":"2015-05-26 17:29:42.000000000","message":"Use string formatting instead of concatenating.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        if (domain_id is None):"},{"line_number":436,"context_line":"            encoded_domain_name \u003d urllib.quote(self.protection_domain_name, \u0027\u0027)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"            request \u003d \"https://\" + self.server_ip + \":\" + self.server_port + \\"},{"line_number":439,"context_line":"                \"/api/types/Domain/instances/getByName::\" + encoded_domain_name"},{"line_number":440,"context_line":"            LOG.info(_LI(\"ScaleIO get domain id by name request: %s.\"),"},{"line_number":441,"context_line":"                     request)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_39131eba","line":438,"in_reply_to":"7a016987_7ecb551f","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":469,"context_line":"                \"/api/types/Pool/instances/getByName::\" + \\"},{"line_number":470,"context_line":"                domain_id + \",\" + encoded_domain_name"},{"line_number":471,"context_line":"            LOG.info(_LI(\"ScaleIO get pool id by name request: %s.\")"},{"line_number":472,"context_line":"                     % request)"},{"line_number":473,"context_line":"            r \u003d requests.get("},{"line_number":474,"context_line":"                request,"},{"line_number":475,"context_line":"                auth\u003d("}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_dee489ad","line":472,"updated":"2015-05-26 17:29:42.000000000","message":"Change % to , to pass request as an arg to the logger.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":469,"context_line":"                \"/api/types/Pool/instances/getByName::\" + \\"},{"line_number":470,"context_line":"                domain_id + \",\" + encoded_domain_name"},{"line_number":471,"context_line":"            LOG.info(_LI(\"ScaleIO get pool id by name request: %s.\")"},{"line_number":472,"context_line":"                     % request)"},{"line_number":473,"context_line":"            r \u003d requests.get("},{"line_number":474,"context_line":"                request,"},{"line_number":475,"context_line":"                auth\u003d("}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_794bd6b1","line":472,"in_reply_to":"7a016987_dee489ad","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":478,"context_line":"                verify\u003dverify_cert)"},{"line_number":479,"context_line":"            pool_id \u003d r.json()"},{"line_number":480,"context_line":"            if (pool_id \u003d\u003d \u0027\u0027 or pool_id is None):"},{"line_number":481,"context_line":"                msg \u003d (\"Pool with name %s wasn\u0027t found in domain %s \" %"},{"line_number":482,"context_line":"                       (pool_name, domain_id))"},{"line_number":483,"context_line":"                msg \u003d (_(\"Pool with name %(pool_name)s wasn\u0027t found in \""},{"line_number":484,"context_line":"                         \"domain %(domain_id)s.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_bee1cd9c","line":481,"updated":"2015-05-26 17:29:42.000000000","message":"Double assigning msg variable.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":478,"context_line":"                verify\u003dverify_cert)"},{"line_number":479,"context_line":"            pool_id \u003d r.json()"},{"line_number":480,"context_line":"            if (pool_id \u003d\u003d \u0027\u0027 or pool_id is None):"},{"line_number":481,"context_line":"                msg \u003d (\"Pool with name %s wasn\u0027t found in domain %s \" %"},{"line_number":482,"context_line":"                       (pool_name, domain_id))"},{"line_number":483,"context_line":"                msg \u003d (_(\"Pool with name %(pool_name)s wasn\u0027t found in \""},{"line_number":484,"context_line":"                         \"domain %(domain_id)s.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_39c8be21","line":481,"in_reply_to":"7a016987_bee1cd9c","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":538,"context_line":"            round_volume_capacity \u003d self._get_round_capacity(self.config)"},{"line_number":539,"context_line":"            if (round_volume_capacity \u003d\u003d \u0027False\u0027):"},{"line_number":540,"context_line":"                exception_msg \u003d (_("},{"line_number":541,"context_line":"                    \"Cannot create volume of size %s: not multiply of 8GB.\") %"},{"line_number":542,"context_line":"                    size)"},{"line_number":543,"context_line":"                LOG.error(exception_msg)"},{"line_number":544,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dexception_msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_3eecbd8e","line":541,"updated":"2015-05-26 17:29:42.000000000","message":"/multiply/multiple/","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":538,"context_line":"            round_volume_capacity \u003d self._get_round_capacity(self.config)"},{"line_number":539,"context_line":"            if (round_volume_capacity \u003d\u003d \u0027False\u0027):"},{"line_number":540,"context_line":"                exception_msg \u003d (_("},{"line_number":541,"context_line":"                    \"Cannot create volume of size %s: not multiply of 8GB.\") %"},{"line_number":542,"context_line":"                    size)"},{"line_number":543,"context_line":"                LOG.error(exception_msg)"},{"line_number":544,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dexception_msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_19cd0231","line":541,"in_reply_to":"7a016987_3eecbd8e","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":822,"context_line":"                if force_delete \u003d\u003d \u0027True\u0027:"},{"line_number":823,"context_line":"                    msg \u003d (_LW("},{"line_number":824,"context_line":"                        \"Ignoring error in delete volume %s: volume not found \""},{"line_number":825,"context_line":"                        \"due to force delete settings.\"), vol_id)"},{"line_number":826,"context_line":"                    LOG.warning(msg)"},{"line_number":827,"context_line":"                else:"},{"line_number":828,"context_line":"                    msg \u003d (_(\"Error deleting volume %s: volume not found.\") %"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_dea92926","line":825,"updated":"2015-05-26 17:29:42.000000000","message":"Need % here rather than , so it does the string formatting. Or better yet, since this is only used for the logger call just get rid of msg and place this inside the LOG.warning call.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":822,"context_line":"                if force_delete \u003d\u003d \u0027True\u0027:"},{"line_number":823,"context_line":"                    msg \u003d (_LW("},{"line_number":824,"context_line":"                        \"Ignoring error in delete volume %s: volume not found \""},{"line_number":825,"context_line":"                        \"due to force delete settings.\"), vol_id)"},{"line_number":826,"context_line":"                    LOG.warning(msg)"},{"line_number":827,"context_line":"                else:"},{"line_number":828,"context_line":"                    msg \u003d (_(\"Error deleting volume %s: volume not found.\") %"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_b9dcaee4","line":825,"in_reply_to":"7a016987_dea92926","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"        while not disk_filename:"},{"line_number":1061,"context_line":"            if (tries \u003e 15):"},{"line_number":1062,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":1063,"context_line":"                    \"scaleIO volume {0} not found \\"},{"line_number":1064,"context_line":"                    at expected path \".format(volume_id))"},{"line_number":1065,"context_line":"            by_id_path \u003d \"/dev/disk/by-id\""},{"line_number":1066,"context_line":"            if not os.path.isdir(by_id_path):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_5e43f96c","line":1063,"updated":"2015-05-26 17:29:42.000000000","message":"Wrap in _() and get rid of \\ in text.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"        while not disk_filename:"},{"line_number":1061,"context_line":"            if (tries \u003e 15):"},{"line_number":1062,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":1063,"context_line":"                    \"scaleIO volume {0} not found \\"},{"line_number":1064,"context_line":"                    at expected path \".format(volume_id))"},{"line_number":1065,"context_line":"            by_id_path \u003d \"/dev/disk/by-id\""},{"line_number":1066,"context_line":"            if not os.path.isdir(by_id_path):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_9900d235","line":1063,"in_reply_to":"7a016987_5e43f96c","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"            (out, err) \u003d utils.execute(*cmd, run_as_root\u003dTrue)"},{"line_number":1144,"context_line":"            LOG.debug(\"Map volume %(cmd)s: stdout\u003d%(out)s stderr\u003d%(err)s\","},{"line_number":1145,"context_line":"                      {\u0027cmd\u0027: cmd, \u0027out\u0027: out,"},{"line_number":1146,"context_line":"                       \u0027err\u0027: six.text_type(err)})"},{"line_number":1147,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":1148,"context_line":"            msg \u003d _(\"Error querying sdc guid: %s.\") % six.text_type(e.stderr)"},{"line_number":1149,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_5e11b95c","line":1146,"updated":"2015-05-26 17:29:42.000000000","message":"six.text_type not needed here as the logger will take care of any necessary conversion.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"            (out, err) \u003d utils.execute(*cmd, run_as_root\u003dTrue)"},{"line_number":1144,"context_line":"            LOG.debug(\"Map volume %(cmd)s: stdout\u003d%(out)s stderr\u003d%(err)s\","},{"line_number":1145,"context_line":"                      {\u0027cmd\u0027: cmd, \u0027out\u0027: out,"},{"line_number":1146,"context_line":"                       \u0027err\u0027: six.text_type(err)})"},{"line_number":1147,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":1148,"context_line":"            msg \u003d _(\"Error querying sdc guid: %s.\") % six.text_type(e.stderr)"},{"line_number":1149,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_199bc219","line":1146,"in_reply_to":"7a016987_5e11b95c","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":1199,"context_line":"        cmd +\u003d [\"--query_guid\"]"},{"line_number":1200,"context_line":""},{"line_number":1201,"context_line":"        LOG.info(_LI(\"ScaleIO sdc query guid command: %s.\"),"},{"line_number":1202,"context_line":"                 six.text_type(cmd))"},{"line_number":1203,"context_line":""},{"line_number":1204,"context_line":"        try:"},{"line_number":1205,"context_line":"            (out, err) \u003d utils.execute(*cmd, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_be02ed09","line":1202,"updated":"2015-05-26 17:29:42.000000000","message":"six.text_type not needed here.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":1199,"context_line":"        cmd +\u003d [\"--query_guid\"]"},{"line_number":1200,"context_line":""},{"line_number":1201,"context_line":"        LOG.info(_LI(\"ScaleIO sdc query guid command: %s.\"),"},{"line_number":1202,"context_line":"                 six.text_type(cmd))"},{"line_number":1203,"context_line":""},{"line_number":1204,"context_line":"        try:"},{"line_number":1205,"context_line":"            (out, err) \u003d utils.execute(*cmd, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_b98a6ebd","line":1202,"in_reply_to":"7a016987_be02ed09","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"212659dc0923003724bff1a80d41ede77e1001fc","unresolved":false,"context_lines":[{"line_number":1205,"context_line":"            (out, err) \u003d utils.execute(*cmd, run_as_root\u003dTrue)"},{"line_number":1206,"context_line":"            LOG.debug(\"Unmap volume %(cmd)s: stdout\u003d%(out)s stderr\u003d%(err)s\","},{"line_number":1207,"context_line":"                      {\u0027cmd\u0027: cmd, \u0027out\u0027: out,"},{"line_number":1208,"context_line":"                       \u0027err\u0027: six.text_type(err)})"},{"line_number":1209,"context_line":""},{"line_number":1210,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":1211,"context_line":"            msg \u003d _(\"Error querying sdc guid: %s.\") % six.text_type(e.stderr)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_390df737","line":1208,"updated":"2015-05-26 17:29:42.000000000","message":"six.text_type not needed here.","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6c9c62a8b7faef8ffbd871beef5c4b457e60af5c","unresolved":false,"context_lines":[{"line_number":1205,"context_line":"            (out, err) \u003d utils.execute(*cmd, run_as_root\u003dTrue)"},{"line_number":1206,"context_line":"            LOG.debug(\"Unmap volume %(cmd)s: stdout\u003d%(out)s stderr\u003d%(err)s\","},{"line_number":1207,"context_line":"                      {\u0027cmd\u0027: cmd, \u0027out\u0027: out,"},{"line_number":1208,"context_line":"                       \u0027err\u0027: six.text_type(err)})"},{"line_number":1209,"context_line":""},{"line_number":1210,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":1211,"context_line":"            msg \u003d _(\"Error querying sdc guid: %s.\") % six.text_type(e.stderr)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_799076ed","line":1208,"in_reply_to":"7a016987_390df737","updated":"2015-05-30 05:00:20.000000000","message":"Done","commit_id":"e8c8a898ed3ccf4737f1bebbf0c048efd13937f2"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b7b957cc92261380e181475cd795cc3435a4967b","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"scaleio_opts \u003d ["},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rest_server_ip\u0027,"},{"line_number":46,"context_line":"               default\u003dNone,"},{"line_number":47,"context_line":"               help\u003d\u0027REST server IP.\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"5afe65bd_1652f367","line":44,"updated":"2015-06-02 19:33:01.000000000","message":"Some of these options overlap at least a bit with options defined elsewhere in Cinder.  I think the existing options should be used where possible, and the ones that are here should be prefixed with a driver-specific prefix like most other drivers do (\"emc_\" or \"sio_\" etc.)","commit_id":"a3f3215398986258984b7ef7a9a8f1ddda67ccfa"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f8b9e7b6eac745673faaaba4303ef3925afab43d","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"scaleio_opts \u003d ["},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rest_server_ip\u0027,"},{"line_number":46,"context_line":"               default\u003dNone,"},{"line_number":47,"context_line":"               help\u003d\u0027REST server IP.\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"5afe65bd_d627ad10","line":44,"in_reply_to":"5afe65bd_1652f367","updated":"2015-06-03 04:59:13.000000000","message":"I\u0027m now using existing options san_ip, san_log, and san_password and added prefix \"sio_\" to other options.","commit_id":"a3f3215398986258984b7ef7a9a8f1ddda67ccfa"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b7b957cc92261380e181475cd795cc3435a4967b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"scaleio_opts \u003d ["},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rest_server_ip\u0027,"},{"line_number":46,"context_line":"               default\u003dNone,"},{"line_number":47,"context_line":"               help\u003d\u0027REST server IP.\u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027rest_server_port\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5afe65bd_d6e21b9f","line":45,"updated":"2015-06-02 19:33:01.000000000","message":"Should be \"host\" instead of \"ip\" to cover using hostnames as well?","commit_id":"a3f3215398986258984b7ef7a9a8f1ddda67ccfa"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f8b9e7b6eac745673faaaba4303ef3925afab43d","unresolved":false,"context_lines":[{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"scaleio_opts \u003d ["},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027rest_server_ip\u0027,"},{"line_number":46,"context_line":"               default\u003dNone,"},{"line_number":47,"context_line":"               help\u003d\u0027REST server IP.\u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027rest_server_port\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5afe65bd_b622f1ff","line":45,"in_reply_to":"5afe65bd_d6e21b9f","updated":"2015-06-03 04:59:13.000000000","message":"I\u0027m using the existing option san_ip now.","commit_id":"a3f3215398986258984b7ef7a9a8f1ddda67ccfa"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b7b957cc92261380e181475cd795cc3435a4967b","unresolved":false,"context_lines":[{"line_number":106,"context_line":"class ScaleIODriver(driver.VolumeDriver):"},{"line_number":107,"context_line":"    \"\"\"EMC ScaleIO Driver.\"\"\""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    server_ip \u003d None"},{"line_number":110,"context_line":"    server_username \u003d None"},{"line_number":111,"context_line":"    server_password \u003d None"},{"line_number":112,"context_line":"    server_token \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"5afe65bd_99873461","line":109,"updated":"2015-06-02 19:33:01.000000000","message":"These should all be defined in __init__ as instance variables instead of here.","commit_id":"a3f3215398986258984b7ef7a9a8f1ddda67ccfa"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f8b9e7b6eac745673faaaba4303ef3925afab43d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"class ScaleIODriver(driver.VolumeDriver):"},{"line_number":107,"context_line":"    \"\"\"EMC ScaleIO Driver.\"\"\""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    server_ip \u003d None"},{"line_number":110,"context_line":"    server_username \u003d None"},{"line_number":111,"context_line":"    server_password \u003d None"},{"line_number":112,"context_line":"    server_token \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"5afe65bd_4fb9eae8","line":109,"in_reply_to":"5afe65bd_99873461","updated":"2015-06-03 04:59:13.000000000","message":"Done","commit_id":"a3f3215398986258984b7ef7a9a8f1ddda67ccfa"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b7b957cc92261380e181475cd795cc3435a4967b","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        if response.status_code \u003d\u003d 401 or response.status_code \u003d\u003d 403:"},{"line_number":455,"context_line":"            LOG.info(_LI(\"Token is invalid, going to re-login and get \""},{"line_number":456,"context_line":"                         \"a new one.\"))"},{"line_number":457,"context_line":"            self.login_request \u003d ("},{"line_number":458,"context_line":"                \"https://\" + self.server_ip +"},{"line_number":459,"context_line":"                \":\" + self.server_port + \"/api/login\")"},{"line_number":460,"context_line":"            if self.verify_server_certificate:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5afe65bd_7957d802","line":457,"updated":"2015-06-02 19:33:01.000000000","message":"Should be a local variable rather than a member variable.","commit_id":"a3f3215398986258984b7ef7a9a8f1ddda67ccfa"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f8b9e7b6eac745673faaaba4303ef3925afab43d","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        if response.status_code \u003d\u003d 401 or response.status_code \u003d\u003d 403:"},{"line_number":455,"context_line":"            LOG.info(_LI(\"Token is invalid, going to re-login and get \""},{"line_number":456,"context_line":"                         \"a new one.\"))"},{"line_number":457,"context_line":"            self.login_request \u003d ("},{"line_number":458,"context_line":"                \"https://\" + self.server_ip +"},{"line_number":459,"context_line":"                \":\" + self.server_port + \"/api/login\")"},{"line_number":460,"context_line":"            if self.verify_server_certificate:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5afe65bd_d9147e45","line":457,"in_reply_to":"5afe65bd_7957d802","updated":"2015-06-03 04:59:13.000000000","message":"Done","commit_id":"a3f3215398986258984b7ef7a9a8f1ddda67ccfa"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"eed7db953dcef6fd5b6410796cffcd2b4efacd93","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            LOG.warning(_LW(\"Verify certificate is not set, using default of \""},{"line_number":176,"context_line":"                            \"False.\"))"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        if self.verify_server_certificate and not self.certificate_path:"},{"line_number":179,"context_line":"            msg \u003d _(\"Path to REST server\u0027s certificate must be specified.\")"},{"line_number":180,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5afe65bd_4121acfa","line":178,"updated":"2015-06-03 09:17:18.000000000","message":"s/self.certificate_path/self.server_certificate_path/","commit_id":"2fe68fa9f9afc564f694c5c266723562d634298c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"24b3231a20612586dec7fd5b455eac977d085fe2","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            LOG.warning(_LW(\"Verify certificate is not set, using default of \""},{"line_number":176,"context_line":"                            \"False.\"))"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        if self.verify_server_certificate and not self.certificate_path:"},{"line_number":179,"context_line":"            msg \u003d _(\"Path to REST server\u0027s certificate must be specified.\")"},{"line_number":180,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5afe65bd_89cb3e53","line":178,"in_reply_to":"5afe65bd_4121acfa","updated":"2015-06-03 14:01:13.000000000","message":"Done","commit_id":"2fe68fa9f9afc564f694c5c266723562d634298c"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"710b13db4398259703fa600d55b507e06e6c6674","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                 \u0027pool\u0027: self.storage_pool_name,"},{"line_number":139,"context_line":"                 \u0027pool_id\u0027: self.storage_pool_id})"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        self.protection_domain_name \u003d \\"},{"line_number":142,"context_line":"            self.configuration.sio_protection_domain_name"},{"line_number":143,"context_line":"        LOG.info(_LI("},{"line_number":144,"context_line":"            \"Protection domain name: %(domain_name)s.\"),"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_6b16ae56","line":141,"updated":"2015-06-08 19:45:02.000000000","message":"Please, use () instead of \\","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5bee26895265e124fdc6ec954b91b2a9536f4caf","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                 \u0027pool\u0027: self.storage_pool_name,"},{"line_number":139,"context_line":"                 \u0027pool_id\u0027: self.storage_pool_id})"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        self.protection_domain_name \u003d \\"},{"line_number":142,"context_line":"            self.configuration.sio_protection_domain_name"},{"line_number":143,"context_line":"        LOG.info(_LI("},{"line_number":144,"context_line":"            \"Protection domain name: %(domain_name)s.\"),"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_215b3556","line":141,"in_reply_to":"3afb71cf_6b16ae56","updated":"2015-06-09 00:13:33.000000000","message":"Done","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"710b13db4398259703fa600d55b507e06e6c6674","unresolved":false,"context_lines":[{"line_number":385,"context_line":"            LOG.error(msg)"},{"line_number":386,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        LOG.info(_LI(\"Created volume: %s.\"), volname)"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def _check_volume_size(self, size):"},{"line_number":391,"context_line":"        if size % 8 !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_66802347","line":388,"updated":"2015-06-08 19:45:02.000000000","message":"Please, add volume id to log message too. It will be helpful for troubleshooting","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5bee26895265e124fdc6ec954b91b2a9536f4caf","unresolved":false,"context_lines":[{"line_number":385,"context_line":"            LOG.error(msg)"},{"line_number":386,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        LOG.info(_LI(\"Created volume: %s.\"), volname)"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def _check_volume_size(self, size):"},{"line_number":391,"context_line":"        if size % 8 !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_e154fd21","line":388,"in_reply_to":"3afb71cf_66802347","updated":"2015-06-09 00:13:33.000000000","message":"Done","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"710b13db4398259703fa600d55b507e06e6c6674","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            LOG.error(msg)"},{"line_number":437,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"    def _check_response(self, response, request, isGetRequest\u003dTrue,"},{"line_number":440,"context_line":"                        params\u003dNone):"},{"line_number":441,"context_line":"        if response.status_code \u003d\u003d 401 or response.status_code \u003d\u003d 403:"},{"line_number":442,"context_line":"            LOG.info(_LI(\"Token is invalid, going to re-login and get \""}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_46c6479b","line":439,"updated":"2015-06-08 19:45:02.000000000","message":"According to PEP8 it should be is_get_request","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5bee26895265e124fdc6ec954b91b2a9536f4caf","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            LOG.error(msg)"},{"line_number":437,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"    def _check_response(self, response, request, isGetRequest\u003dTrue,"},{"line_number":440,"context_line":"                        params\u003dNone):"},{"line_number":441,"context_line":"        if response.status_code \u003d\u003d 401 or response.status_code \u003d\u003d 403:"},{"line_number":442,"context_line":"            LOG.info(_LI(\"Token is invalid, going to re-login and get \""}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_c1322110","line":439,"in_reply_to":"3afb71cf_46c6479b","updated":"2015-06-09 00:13:33.000000000","message":"Done","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"710b13db4398259703fa600d55b507e06e6c6674","unresolved":false,"context_lines":[{"line_number":521,"context_line":"            msg \u003d _(\"Volume with name %s wasn\u0027t found.\") % volname"},{"line_number":522,"context_line":"            LOG.error(msg)"},{"line_number":523,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":524,"context_line":"        if r.status_code !\u003d OK_STATUS_CODE and \"errorCode\" in vol_id:"},{"line_number":525,"context_line":"            msg \u003d (_(\"Error getting volume id from name %(volname)s: %(err)s.\")"},{"line_number":526,"context_line":"                   % {\u0027volname\u0027: volname,"},{"line_number":527,"context_line":"                      \u0027err\u0027: vol_id[\u0027message\u0027]})"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_86b55fef","line":524,"updated":"2015-06-08 19:45:02.000000000","message":"The same code except error message is located in several places. Please, move it to _check_response or some else method","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5bee26895265e124fdc6ec954b91b2a9536f4caf","unresolved":false,"context_lines":[{"line_number":521,"context_line":"            msg \u003d _(\"Volume with name %s wasn\u0027t found.\") % volname"},{"line_number":522,"context_line":"            LOG.error(msg)"},{"line_number":523,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":524,"context_line":"        if r.status_code !\u003d OK_STATUS_CODE and \"errorCode\" in vol_id:"},{"line_number":525,"context_line":"            msg \u003d (_(\"Error getting volume id from name %(volname)s: %(err)s.\")"},{"line_number":526,"context_line":"                   % {\u0027volname\u0027: volname,"},{"line_number":527,"context_line":"                      \u0027err\u0027: vol_id[\u0027message\u0027]})"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_a1672524","line":524,"in_reply_to":"3afb71cf_86b55fef","updated":"2015-06-09 00:13:33.000000000","message":"Ivan,\n\nAlthough we are checking the same status code in various functions, the error message is different in every situation. If we move them all to _check_response, we can\u0027t print different messages. If we also format the message in various places and add as input to _check_response, that means we have to format the error message before we know there will be an error. So I think it is better to do these checks in the functions where the error occurred. Thoughts?  Thanks.","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"710b13db4398259703fa600d55b507e06e6c6674","unresolved":false,"context_lines":[{"line_number":756,"context_line":""},{"line_number":757,"context_line":"        pools \u003d []"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        headers \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"        if self.verify_server_certificate:"},{"line_number":762,"context_line":"            verify_cert \u003d self.server_certificate_path"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_46a527a0","line":759,"updated":"2015-06-08 19:45:02.000000000","message":"Lines #759-763 should be moved to the separate method and not copy-pasted throw the code","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5bee26895265e124fdc6ec954b91b2a9536f4caf","unresolved":false,"context_lines":[{"line_number":756,"context_line":""},{"line_number":757,"context_line":"        pools \u003d []"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        headers \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"        if self.verify_server_certificate:"},{"line_number":762,"context_line":"            verify_cert \u003d self.server_certificate_path"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_05928257","line":759,"in_reply_to":"3afb71cf_46a527a0","updated":"2015-06-09 00:13:33.000000000","message":"Done","commit_id":"995e65cdd7595aafc761a354e0caaabb1a38b8a8"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"162cdcef0187a2387a9c5dcbc2708bf8da8121f4","unresolved":false,"context_lines":[{"line_number":981,"context_line":"        LOG.info(_LI(\"ScaleIO sdc id is %s.\"), sdc_id)"},{"line_number":982,"context_line":"        return sdc_id"},{"line_number":983,"context_line":""},{"line_number":984,"context_line":"    def _attach_volume(self, volume, sdc_ip):"},{"line_number":985,"context_line":"        # We need to make sure we even *have* a local path"},{"line_number":986,"context_line":"        LOG.info(_LI(\"ScaleIO attach volume in scaleio cinder driver.\"))"},{"line_number":987,"context_line":"        volname \u003d self.id_to_base64(volume.id)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3afb71cf_72ef84e9","line":984,"updated":"2015-06-09 20:02:43.000000000","message":"This method overrides VolumeDriver\u0027s _attach_volume but takes different arguments.  This is probably not a good idea.","commit_id":"86a2c985926df916e2f3838e0e3c71978dae71ba"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52ea35a7c5fbbd64bcc29070d6923359ff27a62f","unresolved":false,"context_lines":[{"line_number":981,"context_line":"        LOG.info(_LI(\"ScaleIO sdc id is %s.\"), sdc_id)"},{"line_number":982,"context_line":"        return sdc_id"},{"line_number":983,"context_line":""},{"line_number":984,"context_line":"    def _attach_volume(self, volume, sdc_ip):"},{"line_number":985,"context_line":"        # We need to make sure we even *have* a local path"},{"line_number":986,"context_line":"        LOG.info(_LI(\"ScaleIO attach volume in scaleio cinder driver.\"))"},{"line_number":987,"context_line":"        volname \u003d self.id_to_base64(volume.id)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3afb71cf_6dc20936","line":984,"in_reply_to":"3afb71cf_72ef84e9","updated":"2015-06-09 20:29:40.000000000","message":"Good point. Renamed it to _sio_attach_volume.","commit_id":"86a2c985926df916e2f3838e0e3c71978dae71ba"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d7b0765d8761af6af8e15d6370b57a9d8ffbb441","unresolved":false,"context_lines":[{"line_number":1040,"context_line":""},{"line_number":1041,"context_line":"        return self.find_volume_path(formated_id)"},{"line_number":1042,"context_line":""},{"line_number":1043,"context_line":"    def _detach_volume(self, volume, sdc_ip):"},{"line_number":1044,"context_line":"        LOG.info(_LI(\"ScaleIO detach volume in scaleio cinder driver.\"))"},{"line_number":1045,"context_line":"        volname \u003d self.id_to_base64(volume.id)"},{"line_number":1046,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3afb71cf_d25cf87e","line":1043,"updated":"2015-06-09 20:04:17.000000000","message":"Same as above re: arguments vs the parent class.","commit_id":"86a2c985926df916e2f3838e0e3c71978dae71ba"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"52ea35a7c5fbbd64bcc29070d6923359ff27a62f","unresolved":false,"context_lines":[{"line_number":1040,"context_line":""},{"line_number":1041,"context_line":"        return self.find_volume_path(formated_id)"},{"line_number":1042,"context_line":""},{"line_number":1043,"context_line":"    def _detach_volume(self, volume, sdc_ip):"},{"line_number":1044,"context_line":"        LOG.info(_LI(\"ScaleIO detach volume in scaleio cinder driver.\"))"},{"line_number":1045,"context_line":"        volname \u003d self.id_to_base64(volume.id)"},{"line_number":1046,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3afb71cf_4dd62df2","line":1043,"in_reply_to":"3afb71cf_d25cf87e","updated":"2015-06-09 20:29:40.000000000","message":"Renamed to _sio_detach_volume.","commit_id":"86a2c985926df916e2f3838e0e3c71978dae71ba"}]}
