)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"ProphetStor DPL Storage server enables x86 commodity hardware as"},{"line_number":10,"context_line":"enterprise-grade storage systems."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint prophetstor-dpl-driver"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie9ec11a9473816302e5f1be37faa76b5e1a73a8a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAU3%2F%2Fw8g%3D","line":11,"updated":"2014-02-24 22:08:18.000000000","message":"Need DocImpact","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"65a10d5e09b67e35b631554b9d8b7e90038a3f86","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"ProphetStor DPL Storage server enables x86 commodity hardware as"},{"line_number":10,"context_line":"enterprise-grade storage systems."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint prophetstor-dpl-driver"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie9ec11a9473816302e5f1be37faa76b5e1a73a8a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAVn%2F%2B3GA%3D","line":11,"updated":"2014-03-11 17:33:41.000000000","message":"docimpact https://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references","commit_id":"ed7599e5359d892b8584ed702ac2ec3233b4d2aa"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9f1669f92bb30d7f818f3d1ea83935cfbb40d097","unresolved":false,"context_lines":[{"line_number":9,"context_line":"ProphetStor DPL Storage server enables x86 commodity hardware as"},{"line_number":10,"context_line":"enterprise-grade storage systems."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint prophetstor-dpl-driver"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie9ec11a9473816302e5f1be37faa76b5e1a73a8a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAAVn%2F%2B0Vg%3D","line":12,"updated":"2014-03-13 00:10:09.000000000","message":"Blueprint link doesn\u0027t work.","commit_id":"ed7599e5359d892b8584ed702ac2ec3233b4d2aa"}],"cinder/tests/test_prophetstor_dpl.py":[{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 ProphetStor, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnGo%3D","line":1,"updated":"2014-02-25 17:21:54.000000000","message":"copyright year.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from cinder.volume.drivers.prophetstor import dpldriver as DPLDRIVER"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"import mox as mox_lib"},{"line_number":22,"context_line":"POOLUUID \u003d \u0027ac33fc6e417440d5a1ef27d7231e1cc4\u0027"},{"line_number":23,"context_line":"VOLUMEUUID \u003d \u0027a000000000000000000000000000001\u0027"},{"line_number":24,"context_line":"INITIATOR \u003d \u0027iqn.2013-08.org.debian:01:aaaaaaaa\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnFI%3D","line":21,"updated":"2014-02-25 17:21:54.000000000","message":"Please organize imports properly. Refer http://docs.openstack.org/developer/hacking/#imports","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":8278,"name":"Dazhao Yu","email":"dazhaoyu@gmail.com","username":"Dazhao"},"change_message_id":"2c01ab467f62ddff4c6f67d1b494c6d91d90a1b5","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                 \u0027total_capacity\u0027: 4194828288,"},{"line_number":57,"context_line":"                 \u0027zpool_guid\u0027: \u00278173612007304181810\u0027},"},{"line_number":58,"context_line":"    \u0027objectType\u0027: \u0027application/cdmi-container\u0027,"},{"line_number":59,"context_line":"    \u0027percentComplete\u0027: 100}"},{"line_number":60,"context_line":"## dpl.assignvdev"},{"line_number":61,"context_line":"DATA_ASSIGNVDEV \u003d 0, {"},{"line_number":62,"context_line":"    \u0027children\u0027: [],"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2Fyy8%3D","line":59,"updated":"2014-03-04 03:50:00.000000000","message":"add one blank line, thanks","commit_id":"6ff72d81571f53fed5b23cdaca5a5b01db6e2926"},{"author":{"_account_id":8278,"name":"Dazhao Yu","email":"dazhaoyu@gmail.com","username":"Dazhao"},"change_message_id":"2c01ab467f62ddff4c6f67d1b494c6d91d90a1b5","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"class TestProphetStorDPLVolume(test.TestCase):"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def __init__(self, method):"},{"line_number":106,"context_line":"        super(TestProphetStorDPLVolume, self).__init__(method)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _gen_snapshot_url(self, vdevid, snapshotid):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2FyyE%3D","line":105,"updated":"2014-03-04 03:50:00.000000000","message":"Whether need this init method, since have setUp method?","commit_id":"6ff72d81571f53fed5b23cdaca5a5b01db6e2926"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9f1669f92bb30d7f818f3d1ea83935cfbb40d097","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from cinder import test"},{"line_number":17,"context_line":"from cinder import units"},{"line_number":18,"context_line":"from cinder.volume import configuration as conf"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAWH%2F%2F6fs%3D","line":15,"updated":"2014-03-13 00:10:09.000000000","message":"I am concerned that I do not see anything in here that test Exceptions.  There are a number of places that should be tested.  It also seems that the rather long and complicated send_cmd function is only lightly tested.  Maybe what you are doing there is ok, but I think the exception paths need to be tested.","commit_id":"ed7599e5359d892b8584ed702ac2ec3233b4d2aa"}],"cinder/volume/drivers/prophetstor/__init__.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"446dfb923a37ed1f2254f9117f1b48033c92ee8e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 ProphetStor, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FHOY%3D","line":2,"updated":"2014-02-17 03:00:40.000000000","message":"There\u0027s *newer* standards to remove copyright and license from empty files.","commit_id":"e6de6303d355016e687cc96421bbf289e44af436"}],"cinder/volume/drivers/prophetstor/dpldriver.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"446dfb923a37ed1f2254f9117f1b48033c92ee8e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2013 ProphetStor, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FHMY%3D","line":1,"updated":"2014-02-17 03:00:40.000000000","message":"No vim headers (another new\u0027ish\u0027 standard that came up recently).","commit_id":"e6de6303d355016e687cc96421bbf289e44af436"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"446dfb923a37ed1f2254f9117f1b48033c92ee8e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder import exception"},{"line_number":30,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":31,"context_line":"from cinder.volume import driver"},{"line_number":32,"context_line":"from cinder.volume.drivers.prophetstor import options"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FHLM%3D","line":32,"updated":"2014-02-17 03:00:40.000000000","message":"Seems like options could be pulled in here, but if you prefer having them in their own file I think that\u0027s up to you.","commit_id":"e6de6303d355016e687cc96421bbf289e44af436"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"446dfb923a37ed1f2254f9117f1b48033c92ee8e","unresolved":false,"context_lines":[{"line_number":48,"context_line":"DPL_OBJ_TARGET \u003d \u0027dpl_target\u0027"},{"line_number":49,"context_line":"DPL_OBJ_SYSTEM \u003d \u0027dpl_system\u0027"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"GB2BYTES \u003d 1024 * 1024 * 1024"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class DPLCommand(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FHME%3D","line":51,"updated":"2014-02-17 03:00:40.000000000","message":"Should probably use openstack/common/units for consistency instead of declaring your own global here.","commit_id":"e6de6303d355016e687cc96421bbf289e44af436"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 ProphetStor, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnHE%3D","line":1,"updated":"2014-02-25 17:21:54.000000000","message":"Check for copyright year.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class DPLCommand(object):"},{"line_number":52,"context_line":"    \"\"\"DPL command interface.\"\"\""},{"line_number":53,"context_line":"    def __init__(self, ip, port, username, password):"},{"line_number":54,"context_line":"        self.ip \u003d ip"},{"line_number":55,"context_line":"        self.port \u003d port"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnTU%3D","line":52,"updated":"2014-02-25 17:21:54.000000000","message":"A line after class comments. http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                return errno.EINVAL, data"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        dpl_busy \u003d False"},{"line_number":91,"context_line":"        for i in range(3):"},{"line_number":92,"context_line":"            try:"},{"line_number":93,"context_line":"                connection \u003d httplib.HTTPSConnection(self.ip,"},{"line_number":94,"context_line":"                                                     self.port,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnRI%3D","line":91,"updated":"2014-02-25 17:21:54.000000000","message":"Better to have the retries as defined as constant.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                break"},{"line_number":101,"context_line":"            except IOError as ioerr:"},{"line_number":102,"context_line":"                if ioerr.errno !\u003d errno.ETIMEDOUT or i \u003d\u003d 2:"},{"line_number":103,"context_line":"                    LOG.error(_(\u0027Connect to DPL error: %s\u0027), str(ioerr))"},{"line_number":104,"context_line":"                    return errno.ENOTCONN, data"},{"line_number":105,"context_line":"            except Exception as e:"},{"line_number":106,"context_line":"                LOG.error(_(\u0027Connect to DPL failed: %s\u0027), str(e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2Fxcg%3D","line":103,"updated":"2014-02-24 22:08:18.000000000","message":"We are in the process of removing str(), could you change this to six.text_type please?\nBackground on the issue can be seen here: https://bugs.launchpad.net/cinder/+bug/1274245","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"5fd3ffc89dd41671c4488f3d770a1ec8887b6e6c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                break"},{"line_number":101,"context_line":"            except IOError as ioerr:"},{"line_number":102,"context_line":"                if ioerr.errno !\u003d errno.ETIMEDOUT or i \u003d\u003d 2:"},{"line_number":103,"context_line":"                    LOG.error(_(\u0027Connect to DPL error: %s\u0027), str(ioerr))"},{"line_number":104,"context_line":"                    return errno.ENOTCONN, data"},{"line_number":105,"context_line":"            except Exception as e:"},{"line_number":106,"context_line":"                LOG.error(_(\u0027Connect to DPL failed: %s\u0027), str(e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2Fbmo%3D","line":103,"in_reply_to":"AAAAU3%2F%2Fxcg%3D","updated":"2014-02-26 17:21:08.000000000","message":"Sorry, I accidentally linked the wrong bug:  https://bugs.launchpad.net/cinder/+bug/1274245","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                    LOG.error(_(\u0027Connect to DPL error: %s\u0027), str(ioerr))"},{"line_number":104,"context_line":"                    return errno.ENOTCONN, data"},{"line_number":105,"context_line":"            except Exception as e:"},{"line_number":106,"context_line":"                LOG.error(_(\u0027Connect to DPL failed: %s\u0027), str(e))"},{"line_number":107,"context_line":"                return errno.EFAULT, data"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if dpl_busy:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxcM%3D","line":106,"updated":"2014-02-24 22:08:18.000000000","message":"Same here.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                                                         timeout\u003d60)"},{"line_number":115,"context_line":"                    connection.request(method, url, payload, header)"},{"line_number":116,"context_line":"                    response \u003d connection.getresponse()"},{"line_number":117,"context_line":"                    if response.status !\u003d httplib.SERVICE_UNAVAILABLE:"},{"line_number":118,"context_line":"                        break"},{"line_number":119,"context_line":"                    time.sleep(1)"},{"line_number":120,"context_line":"                except IOError as e:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnQI%3D","line":117,"updated":"2014-02-25 17:21:54.000000000","message":"Is checking only for service unavailable only criteria to break? There are many categories of response codes. Please verify if this is what you want.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                    time.sleep(1)"},{"line_number":120,"context_line":"                except IOError as e:"},{"line_number":121,"context_line":"                    if ioerr.errno !\u003d errno.ETIMEDOUT or i \u003d\u003d 2:"},{"line_number":122,"context_line":"                        LOG.error(_(\u0027DPL Service Unavailable : %s\u0027), str(e))"},{"line_number":123,"context_line":"                        return errno.ENOTCONN, data"},{"line_number":124,"context_line":"                except Exception as e:"},{"line_number":125,"context_line":"                    LOG.error(_(\u0027DPL Service Unavailable.: %s\u0027), str(e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2Fxbs%3D","line":122,"updated":"2014-02-24 22:08:18.000000000","message":"Same comment as above.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                        LOG.error(_(\u0027DPL Service Unavailable : %s\u0027), str(e))"},{"line_number":123,"context_line":"                        return errno.ENOTCONN, data"},{"line_number":124,"context_line":"                except Exception as e:"},{"line_number":125,"context_line":"                    LOG.error(_(\u0027DPL Service Unavailable.: %s\u0027), str(e))"},{"line_number":126,"context_line":"                    return errno.EFAULT, data"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        if response.status in expected_status and\\"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2Fxbo%3D","line":125,"updated":"2014-02-24 22:08:18.000000000","message":"Here as well.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                data \u003d json.loads(data)"},{"line_number":153,"context_line":"            except TypeError as e:"},{"line_number":154,"context_line":"                LOG.error(_(\u0027Call to json.loads() raised an exception: %s\u0027),"},{"line_number":155,"context_line":"                          str(e))"},{"line_number":156,"context_line":"                retcode \u003d errno.ENOEXEC"},{"line_number":157,"context_line":"            except ValueError as e:"},{"line_number":158,"context_line":"                LOG.error(_(\u0027Call to json.loads() raised an exception: %s\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2Fxa0%3D","line":155,"updated":"2014-02-24 22:08:18.000000000","message":"six.text_type()","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                retcode \u003d errno.ENOEXEC"},{"line_number":157,"context_line":"            except ValueError as e:"},{"line_number":158,"context_line":"                LOG.error(_(\u0027Call to json.loads() raised an exception: %s\u0027),"},{"line_number":159,"context_line":"                          str(e))"},{"line_number":160,"context_line":"                retcode \u003d errno.ENOEXEC"},{"line_number":161,"context_line":"            except Exception as e:"},{"line_number":162,"context_line":"                LOG.error(_(\u0027Read response raised an exception: %s\u0027), str(e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2Fxao%3D","line":159,"updated":"2014-02-24 22:08:18.000000000","message":"six.text_type()","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                          str(e))"},{"line_number":160,"context_line":"                retcode \u003d errno.ENOEXEC"},{"line_number":161,"context_line":"            except Exception as e:"},{"line_number":162,"context_line":"                LOG.error(_(\u0027Read response raised an exception: %s\u0027), str(e))"},{"line_number":163,"context_line":"                retcode \u003d errno.ENOEXEC"},{"line_number":164,"context_line":"        elif response.status in [httplib.OK, httplib.CREATED] and \\"},{"line_number":165,"context_line":"                httplib.NO_CONTENT not in expected_status:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxaA%3D","line":162,"updated":"2014-02-24 22:08:18.000000000","message":"six.text_type()\n\nI will stop commenting on all of them at this point.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                data \u003d json.loads(data)"},{"line_number":170,"context_line":"            except TypeError as e:"},{"line_number":171,"context_line":"                LOG.error(_(\u0027Call to json.loads() raised an exception: %s\u0027),"},{"line_number":172,"context_line":"                          str(e))"},{"line_number":173,"context_line":"                retcode \u003d errno.ENOEXEC"},{"line_number":174,"context_line":"            except ValueError as e:"},{"line_number":175,"context_line":"                LOG.error(_(\u0027Call to json.loads() raised an exception: %s\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnOE%3D","line":172,"updated":"2014-02-25 17:21:54.000000000","message":"e is an implicit call to e.__str__","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                LOG.error(_(\u0027Read response raised an exception: %s\u0027), str(e))"},{"line_number":180,"context_line":"                retcode \u003d errno.ENOEXEC"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        connection.close()"},{"line_number":183,"context_line":"        return retcode, data"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnNo%3D","line":182,"updated":"2014-02-25 17:21:54.000000000","message":"Connection.close should be done in a finally block.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        return retcode, data"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"class DPLVolume(object):"},{"line_number":187,"context_line":"    def __init__(self, dplServer, dplPort, dplUser, dplPassword):"},{"line_number":188,"context_line":"        self.objCmd \u003d DPLCommand(dplServer, dplPort, dplUser, dplPassword)"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnNI%3D","line":186,"updated":"2014-02-25 17:21:54.000000000","message":"A line desired.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        metadata[\u0027pool_uuid\u0027] \u003d poolID"},{"line_number":214,"context_line":"        metadata[\u0027total_capacity\u0027] \u003d volumeSize"},{"line_number":215,"context_line":"        params[\u0027metadata\u0027] \u003d metadata"},{"line_number":216,"context_line":"        return self._execute(method,"},{"line_number":217,"context_line":"                             url,"},{"line_number":218,"context_line":"                             params,"},{"line_number":219,"context_line":"                             [httplib.OK, httplib.ACCEPTED, httplib.CREATED])"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnMk%3D","line":216,"updated":"2014-02-25 17:21:54.000000000","message":"url, params to be pulled in the same line.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        metadata[\u0027total_capacity\u0027] \u003d volumeSize"},{"line_number":230,"context_line":"        params[\u0027metadata\u0027] \u003d metadata"},{"line_number":231,"context_line":"        return self._execute(method,"},{"line_number":232,"context_line":"                             url,"},{"line_number":233,"context_line":"                             params,"},{"line_number":234,"context_line":"                             [httplib.OK, httplib.ACCEPTED, httplib.CREATED])"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnMc%3D","line":232,"updated":"2014-02-25 17:21:54.000000000","message":"same as above.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        metadata[\u0027force\u0027] \u003d force"},{"line_number":243,"context_line":"        params[\u0027metadata\u0027] \u003d metadata"},{"line_number":244,"context_line":"        return self._execute(method,"},{"line_number":245,"context_line":"                             url,"},{"line_number":246,"context_line":"                             params,"},{"line_number":247,"context_line":"                             [httplib.OK, httplib.ACCEPTED, httplib.NOT_FOUND,"},{"line_number":248,"context_line":"                              httplib.NO_CONTENT])"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnMY%3D","line":245,"updated":"2014-02-25 17:21:54.000000000","message":"same as above","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        params[\u0027copy\u0027] \u003d self._gen_snapshot_url(vdevID, snapshotID)"},{"line_number":266,"context_line":"        return self._execute(method,"},{"line_number":267,"context_line":"                             url,"},{"line_number":268,"context_line":"                             params,"},{"line_number":269,"context_line":"                             [httplib.OK, httplib.ACCEPTED, httplib.CREATED])"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def getpool(self, poolid):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnMQ%3D","line":268,"updated":"2014-02-25 17:21:54.000000000","message":"same as above. Many lines can be saved below as well without losing the readability.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":414,"context_line":""},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"class DPLISCSIDriver(driver.ISCSIDriver):"},{"line_number":417,"context_line":"    \"\"\"class of dpl storage adapter.\"\"\""},{"line_number":418,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":419,"context_line":"        super(DPLISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":420,"context_line":"        if self.configuration:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnLQ%3D","line":417,"updated":"2014-02-25 17:21:54.000000000","message":"A line desired.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":436,"context_line":"            return \u00270B\u0027"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"    def _convert_size_GB(self, size):"},{"line_number":439,"context_line":"        p \u003d math.pow(1024, 3)"},{"line_number":440,"context_line":"        s \u003d round(size / p, 2)"},{"line_number":441,"context_line":"        if s \u003e 0:"},{"line_number":442,"context_line":"            return s"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnKY%3D","line":439,"updated":"2014-02-25 17:21:54.000000000","message":"Currently you can do this using functions in cinder.units. However keep an eye on this change https://review.openstack.org/64429. Please reuse the modules.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":463,"context_line":"        fExit \u003d False"},{"line_number":464,"context_line":"        status \u003d {}"},{"line_number":465,"context_line":"        status[\u0027state\u0027] \u003d \u0027error\u0027"},{"line_number":466,"context_line":"        while(1):"},{"line_number":467,"context_line":"            try:"},{"line_number":468,"context_line":"                ret, output \u003d self.dpl.getvdev(self._conver_uuid2hex(volumeid))"},{"line_number":469,"context_line":"                if ret \u003d\u003d errno.ENAVAIL:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnJc%3D","line":466,"updated":"2014-02-25 17:21:54.000000000","message":"Use boolean, its more readable.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":478,"context_line":"            if fExit:"},{"line_number":479,"context_line":"                break"},{"line_number":480,"context_line":"            time.sleep(1)"},{"line_number":481,"context_line":"        return status"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    def _wait_event(self, objtype, objuuid, eventid):"},{"line_number":484,"context_line":"        fExit \u003d False"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxHg%3D","line":481,"updated":"2014-02-24 22:08:18.000000000","message":"Unless this has no chance of taking a long time to complete, it should be put in a loopingcall.  An example can be seen here:  https://github.com/openstack/cinder/blob/master/cinder/volume/drivers/ibm/storwize_svc/helpers.py#L576\nIf you don\u0027t put it in a looping call and the operation takes a long time the volume service can be marked as down because it is blocked in this code.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":510,"context_line":""},{"line_number":511,"context_line":"            except Exception as e:"},{"line_number":512,"context_line":"                LOG.error(\u0027DPL failed to get event %s (%s)\u0027"},{"line_number":513,"context_line":"                          % (eventid, e))"},{"line_number":514,"context_line":"                return {\u0027state\u0027: \u0027error\u0027}"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"            if fExit \u003d\u003d True:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxGQ%3D","line":513,"updated":"2014-02-24 22:08:18.000000000","message":"This should be in _()  also recommend changing to:\nDPL failed to get event %s (%s).\u0027","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":515,"context_line":""},{"line_number":516,"context_line":"            if fExit \u003d\u003d True:"},{"line_number":517,"context_line":"                break"},{"line_number":518,"context_line":"            time.sleep(1)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        return status"},{"line_number":521,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxFs%3D","line":518,"updated":"2014-02-24 22:08:18.000000000","message":"I think this is another case where you may need to use a loopingcall to avoid blocking the volume service.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":546,"context_line":"                                          volume[\u0027id\u0027],"},{"line_number":547,"context_line":"                                          event_uuid)"},{"line_number":548,"context_line":"                if status[\u0027state\u0027] \u003d\u003d \u0027error\u0027:"},{"line_number":549,"context_line":"                    LOG.error(\u0027DPL failed to create volume %s: %s\u0027"},{"line_number":550,"context_line":"                              % (volume[\u0027id\u0027], status))"},{"line_number":551,"context_line":"                    raise exception.VolumeBackendAPIException("},{"line_number":552,"context_line":"                        data\u003d\u0027DPL failed to create volume %s:%s\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxEY%3D","line":549,"updated":"2014-02-24 22:08:18.000000000","message":"Need _() here.  Also recommend removing the space after : to be consistent with the format you are using else where.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":554,"context_line":"                else:"},{"line_number":555,"context_line":"                    pass"},{"line_number":556,"context_line":"            else:"},{"line_number":557,"context_line":"                LOG.error(\u0027DPL failed to create volume (get event) %s\u0027"},{"line_number":558,"context_line":"                          % (volume[\u0027id\u0027]))"},{"line_number":559,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":560,"context_line":"                    data\u003d\u0027failed to get event\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxEM%3D","line":557,"updated":"2014-02-24 22:08:18.000000000","message":"Need _() here.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":559,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":560,"context_line":"                    data\u003d\u0027failed to get event\u0027)"},{"line_number":561,"context_line":"        elif ret !\u003d 0:"},{"line_number":562,"context_line":"            LOG.error(\u0027DPL create volume failed.:%s:%s\u0027 % (volume[\u0027id\u0027], ret))"},{"line_number":563,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":564,"context_line":"                data\u003d\u0027DPL create volume failed.:%s:%s\u0027 % (volume[\u0027id\u0027], ret))"},{"line_number":565,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxDI%3D","line":562,"updated":"2014-02-24 22:08:18.000000000","message":"Need _()","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                                          volume[\u0027id\u0027],"},{"line_number":583,"context_line":"                                          event_uuid)"},{"line_number":584,"context_line":"                if status[\u0027state\u0027] \u003d\u003d \u0027error\u0027:"},{"line_number":585,"context_line":"                    LOG.error(\u0027DPL failed to create volume from snapshot %s:%s\u0027"},{"line_number":586,"context_line":"                              % (snapshot[\u0027id\u0027], ret))"},{"line_number":587,"context_line":"                    raise exception.VolumeBackendAPIException("},{"line_number":588,"context_line":"                        data\u003d\"create volume from snapshot failed.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxCM%3D","line":585,"updated":"2014-02-24 22:08:18.000000000","message":"_()","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":589,"context_line":"                else:"},{"line_number":590,"context_line":"                    pass"},{"line_number":591,"context_line":"            else:"},{"line_number":592,"context_line":"                LOG.error(\u0027DPL failed to create volume from snapshot \u0027"},{"line_number":593,"context_line":"                          \u0027(failed to get event) %s\u0027 % (snapshot[\u0027id\u0027]))"},{"line_number":594,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":595,"context_line":"                    data\u003d\"failed to get event\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxCE%3D","line":592,"updated":"2014-02-24 22:08:18.000000000","message":"_()","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":595,"context_line":"                    data\u003d\"failed to get event\")"},{"line_number":596,"context_line":"        elif ret !\u003d 0:"},{"line_number":597,"context_line":"            LOG.error(\u0027DPL failed to create volume from snapshot %s: %s\u0027"},{"line_number":598,"context_line":"                      % (snapshot[\u0027id\u0027], ret))"},{"line_number":599,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":600,"context_line":"                data\u003d\"create volume from snapshot failed.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxCA%3D","line":597,"updated":"2014-02-24 22:08:18.000000000","message":"_()","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":618,"context_line":"                                          volume[\u0027id\u0027],"},{"line_number":619,"context_line":"                                          event_uuid)"},{"line_number":620,"context_line":"                if status[\u0027state\u0027] \u003d\u003d \u0027error\u0027:"},{"line_number":621,"context_line":"                    LOG.error(\u0027DPL failed to clone volume %s: %s\u0027"},{"line_number":622,"context_line":"                              % (src_vref[\u0027id\u0027], ret))"},{"line_number":623,"context_line":"                    raise exception.VolumeBackendAPIException("},{"line_number":624,"context_line":"                        data\u003d\"DPL clone volume %s failed!\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxBE%3D","line":621,"updated":"2014-02-24 22:08:18.000000000","message":"_()","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":626,"context_line":"                else:"},{"line_number":627,"context_line":"                    pass"},{"line_number":628,"context_line":"            else:"},{"line_number":629,"context_line":"                LOG.error(\u0027DPL failed to clone volume (failed to get event) %s\u0027"},{"line_number":630,"context_line":"                          % (src_vref[\u0027id\u0027]))"},{"line_number":631,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":632,"context_line":"                    data\u003d\"DPL internal server event error.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FxAQ%3D","line":629,"updated":"2014-02-24 22:08:18.000000000","message":"_()","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":631,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":632,"context_line":"                    data\u003d\"DPL internal server event error.\")"},{"line_number":633,"context_line":"        elif ret !\u003d 0:"},{"line_number":634,"context_line":"            LOG.error(\u0027DPL failed to clone volume %s: %s\u0027"},{"line_number":635,"context_line":"                      % (src_vref[\u0027id\u0027], ret))"},{"line_number":636,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":637,"context_line":"                data\u003d\"DPL internal error.\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2Fw%2FA%3D","line":634,"updated":"2014-02-24 22:08:18.000000000","message":"Suggest removing the space after : for consistency elsewhere. \nAlso _()","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":655,"context_line":"        elif ret \u003d\u003d errno.ENAVAIL:"},{"line_number":656,"context_line":"            pass"},{"line_number":657,"context_line":"        elif ret !\u003d 0:"},{"line_number":658,"context_line":"            LOG.error(\u0027DPL failed to delete volume %s: %s\u0027"},{"line_number":659,"context_line":"                      % (volume[\u0027id\u0027], ret))"},{"line_number":660,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":661,"context_line":"                data\u003d\u0027delete_volume failed\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnI4%3D","line":658,"updated":"2014-02-25 17:21:54.000000000","message":"internationalisation required. https://review.openstack.org/64429","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":658,"context_line":"            LOG.error(\u0027DPL failed to delete volume %s: %s\u0027"},{"line_number":659,"context_line":"                      % (volume[\u0027id\u0027], ret))"},{"line_number":660,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":661,"context_line":"                data\u003d\u0027delete_volume failed\u0027)"},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":664,"context_line":"        \"\"\"Creates a snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnI0%3D","line":661,"updated":"2014-02-25 17:21:54.000000000","message":"same as above.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":711,"context_line":"                    LOG.error(\u0027DPL failed to delete snapshot %s: %s\u0027"},{"line_number":712,"context_line":"                              % (snapshot[\u0027id\u0027], ret))"},{"line_number":713,"context_line":"                    raise exception.VolumeBackendAPIException("},{"line_number":714,"context_line":"                        data\u003d\"failed to delete snapshot %s\" % snapshot[\u0027id\u0027])"},{"line_number":715,"context_line":"                else:"},{"line_number":716,"context_line":"                    pass"},{"line_number":717,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnIU%3D","line":714,"updated":"2014-02-25 17:21:54.000000000","message":"same as above. Check everywhere below.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":811,"context_line":"    def do_setup(self, context):"},{"line_number":812,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""},{"line_number":813,"context_line":"        self.context \u003d context"},{"line_number":814,"context_line":"        LOG.info(_(\u0027Activity DPL cinder volume driver\u0027))"},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"    def check_for_setup_error(self):"},{"line_number":817,"context_line":"        \"\"\"Check DPL can connect properly.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2Fw9c%3D","line":814,"updated":"2014-02-24 22:08:18.000000000","message":"Do you mean \u0027Activate\u0027 ?","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":8278,"name":"Dazhao Yu","email":"dazhaoyu@gmail.com","username":"Dazhao"},"change_message_id":"2c01ab467f62ddff4c6f67d1b494c6d91d90a1b5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 ProphetStor, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2Fy4E%3D","line":1,"updated":"2014-03-04 03:50:00.000000000","message":"2013 \u003d\u003e 2014","commit_id":"6ff72d81571f53fed5b23cdaca5a5b01db6e2926"},{"author":{"_account_id":8278,"name":"Dazhao Yu","email":"dazhaoyu@gmail.com","username":"Dazhao"},"change_message_id":"2c01ab467f62ddff4c6f67d1b494c6d91d90a1b5","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        if retcode \u003d\u003d 0 and response.status in expected_status and\\"},{"line_number":148,"context_line":"                response.status \u003d\u003d httplib.NOT_FOUND:"},{"line_number":149,"context_line":"            ## in the case of querying a deleted volume"},{"line_number":150,"context_line":"            retcode \u003d errno.ENAVAIL"},{"line_number":151,"context_line":"        elif retcode \u003d\u003d 0 and response.status not in expected_status:"},{"line_number":152,"context_line":"            LOG.error(_(\u0027%(method)s %(url)s unexpected response status: \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2Fy2s%3D","line":149,"updated":"2014-03-04 03:50:00.000000000","message":"Should like as #(yourId) in the case ..., it will be better","commit_id":"6ff72d81571f53fed5b23cdaca5a5b01db6e2926"},{"author":{"_account_id":8278,"name":"Dazhao Yu","email":"dazhaoyu@gmail.com","username":"Dazhao"},"change_message_id":"2c01ab467f62ddff4c6f67d1b494c6d91d90a1b5","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            else:"},{"line_number":162,"context_line":"                retcode \u003d errno.EIO"},{"line_number":163,"context_line":"        elif retcode \u003d\u003d 0 and response.status is httplib.NOT_FOUND:"},{"line_number":164,"context_line":"            ## in the case of querying a deleted volume"},{"line_number":165,"context_line":"            retcode \u003d errno.ENAVAIL"},{"line_number":166,"context_line":"        elif retcode \u003d\u003d 0 and response.status is httplib.ACCEPTED:"},{"line_number":167,"context_line":"            ## set flag for polling event"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2Fy2M%3D","line":164,"updated":"2014-03-04 03:50:00.000000000","message":"ditto","commit_id":"6ff72d81571f53fed5b23cdaca5a5b01db6e2926"},{"author":{"_account_id":8278,"name":"Dazhao Yu","email":"dazhaoyu@gmail.com","username":"Dazhao"},"change_message_id":"2c01ab467f62ddff4c6f67d1b494c6d91d90a1b5","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        elif (retcode \u003d\u003d 0) and \\"},{"line_number":185,"context_line":"                (response.status in [httplib.OK, httplib.CREATED]) and \\"},{"line_number":186,"context_line":"                (httplib.NO_CONTENT not in expected_status):"},{"line_number":187,"context_line":"            # data is expected"},{"line_number":188,"context_line":"            try:"},{"line_number":189,"context_line":"                data \u003d response.read()"},{"line_number":190,"context_line":"                data \u003d json.loads(data)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2Fy2Q%3D","line":187,"updated":"2014-03-04 03:50:00.000000000","message":"ditto","commit_id":"6ff72d81571f53fed5b23cdaca5a5b01db6e2926"},{"author":{"_account_id":7236,"name":"Kiyohiro Adachi","email":"kiy-adachi@vx.jp.nec.com","username":"kadachi"},"change_message_id":"7c5c4716f6f5e36b9c970953c2b53ad7100003ca","unresolved":false,"context_lines":[{"line_number":452,"context_line":"                             self.configuration.san_login,"},{"line_number":453,"context_line":"                             self.configuration.san_password)"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def _convert_size(self, size):"},{"line_number":456,"context_line":"        size_name \u003d (\u0027B\u0027, \u0027KB\u0027, \u0027MB\u0027, \u0027GB\u0027, \u0027TB\u0027, \u0027PB\u0027, \u0027EB\u0027, \u0027ZB\u0027, \u0027YB\u0027)"},{"line_number":457,"context_line":"        i \u003d int(math.floor(math.log(size, 1024)))"},{"line_number":458,"context_line":"        p \u003d math.pow(1024, i)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAVn%2F%2Fnok%3D","line":455,"updated":"2014-03-05 01:41:59.000000000","message":"Who use this? Please delete it if not using.","commit_id":"ff554cd6648c0f65cbcc5e0c062d51691dd7157d"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"65a10d5e09b67e35b631554b9d8b7e90038a3f86","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":"import time"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder import exception"},{"line_number":27,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":28,"context_line":"from cinder.openstack.common import loopingcall"},{"line_number":29,"context_line":"from cinder import units"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAVn%2F%2B3Go%3D","line":26,"updated":"2014-03-11 17:33:41.000000000","message":"fix import grouping http://docs.openstack.org/developer/hacking/","commit_id":"ed7599e5359d892b8584ed702ac2ec3233b4d2aa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"65a10d5e09b67e35b631554b9d8b7e90038a3f86","unresolved":false,"context_lines":[{"line_number":537,"context_line":"                raise loopingcall.LoopingCallDone(retvalue\u003dFalse)"},{"line_number":538,"context_line":"                return {\u0027state\u0027: \u0027error\u0027}"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"            if fExit \u003d\u003d True:"},{"line_number":541,"context_line":"                break"},{"line_number":542,"context_line":"            time.sleep(1)"},{"line_number":543,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAVn%2F%2B3C8%3D","line":540,"updated":"2014-03-11 17:33:41.000000000","message":"if fExit is True:","commit_id":"ed7599e5359d892b8584ed702ac2ec3233b4d2aa"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9f1669f92bb30d7f818f3d1ea83935cfbb40d097","unresolved":false,"context_lines":[{"line_number":569,"context_line":"                status \u003d self._wait_event(DPL_OBJ_VOLUME,"},{"line_number":570,"context_line":"                                          volume[\u0027id\u0027],"},{"line_number":571,"context_line":"                                          event_uuid)"},{"line_number":572,"context_line":"                if status[\u0027state\u0027] \u003d\u003d \u0027error\u0027:"},{"line_number":573,"context_line":"                    msg \u003d _(\u0027DPL failed to create volume %(volume)s: \u0027"},{"line_number":574,"context_line":"                            \u0027%(status)s.\u0027) % {\u0027volume\u0027: volume[\u0027id\u0027],"},{"line_number":575,"context_line":"                                              \u0027status\u0027: ret}"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAWH%2F%2F6ko%3D","line":572,"updated":"2014-03-13 00:10:09.000000000","message":"Maybe I am over thinking this, but it seems you have this code for checking the return of a call to something repeated in many places.  Wouldn\u0027t it be more maintainable to put this into its own function?","commit_id":"ed7599e5359d892b8584ed702ac2ec3233b4d2aa"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9f1669f92bb30d7f818f3d1ea83935cfbb40d097","unresolved":false,"context_lines":[{"line_number":899,"context_line":"    def do_setup(self, context):"},{"line_number":900,"context_line":"        \"\"\"Any initialization the volume driver does while starting.\"\"\""},{"line_number":901,"context_line":"        self.context \u003d context"},{"line_number":902,"context_line":"        LOG.info(_(\u0027Activate DPL cinder volume driver\u0027))"},{"line_number":903,"context_line":""},{"line_number":904,"context_line":"    def check_for_setup_error(self):"},{"line_number":905,"context_line":"        \"\"\"Check DPL can connect properly.\"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAWH%2F%2F6jQ%3D","line":902,"updated":"2014-03-13 00:10:09.000000000","message":"Please end this with a \u0027.\u0027 .","commit_id":"ed7599e5359d892b8584ed702ac2ec3233b4d2aa"}],"cinder/volume/drivers/prophetstor/options.py":[{"author":{"_account_id":6094,"name":"Navneet Singh","email":"navsinghnitd@gmail.com","username":"singn"},"change_message_id":"40f5eede6d62cd041efba8b305a608efa894e75c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 ProphetStor, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2FnGw%3D","line":1,"updated":"2014-02-25 17:21:54.000000000","message":"Check for copyright year.","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4c2494b140e9e7649ad13f92e74f5772db0069eb","unresolved":false,"context_lines":[{"line_number":18,"context_line":"DPL_OPTS \u003d ["},{"line_number":19,"context_line":"    cfg.StrOpt(\u0027dpl_pool\u0027,"},{"line_number":20,"context_line":"               default\u003d\u0027cinder\u0027,"},{"line_number":21,"context_line":"               help\u003d\u0027the DPL pool in which DPL volumes are stored\u0027),"},{"line_number":22,"context_line":"    cfg.StrOpt(\u0027dpl_user\u0027,"},{"line_number":23,"context_line":"               default\u003d\u0027admin\u0027,"},{"line_number":24,"context_line":"               help\u003d\u0027the DPL client name for accessing DPL storage volumes\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAU3%2F%2Fw80%3D","line":21,"updated":"2014-02-24 22:08:18.000000000","message":"These should be sentences.  Start with a capital and end with a \u0027.\u0027 .","commit_id":"daa92a762baf69b108e07aa5c1b4c3bc4be4c32f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"e6874a94cf47c3f5a5dc859429dd6f1e1b7a614e","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo.config import cfg"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DPL_OPTS \u003d ["},{"line_number":19,"context_line":"    cfg.StrOpt(\u0027dpl_pool\u0027,"},{"line_number":20,"context_line":"               default\u003d\u0027cinder\u0027,"},{"line_number":21,"context_line":"               help\u003d\u0027The DPL pool in which DPL volumes are stored.\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAU3%2F%2FbHE%3D","line":18,"updated":"2014-02-26 18:33:34.000000000","message":"I recommend you make your driver a subclass of SanDriver and use existing options there as much as possible (e.g., san_login, san_password, etc.)","commit_id":"c8b138fd99ad9b9771c89e1f4a7682aeace45164"}],"etc/cinder/cinder.conf.sample":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"446dfb923a37ed1f2254f9117f1b48033c92ee8e","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"#dpl_pool\u003dcinder"},{"line_number":1431,"context_line":""},{"line_number":1432,"context_line":"# the DPL iscsi tart port (integer value)"},{"line_number":1433,"context_line":"#dpl_iscsi_port\u003d3260"},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":"# the DPL client name for accessing rbd volumes (string value)"},{"line_number":1436,"context_line":"#dpl_user\u003dadmin"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAUX%2F%2FHSA%3D","line":1433,"updated":"2014-02-17 03:00:40.000000000","message":"Can we use the existing \"iscsi_port\" variable here?","commit_id":"e6de6303d355016e687cc96421bbf289e44af436"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"446dfb923a37ed1f2254f9117f1b48033c92ee8e","unresolved":false,"context_lines":[{"line_number":1432,"context_line":"# the DPL iscsi tart port (integer value)"},{"line_number":1433,"context_line":"#dpl_iscsi_port\u003d3260"},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":"# the DPL client name for accessing rbd volumes (string value)"},{"line_number":1436,"context_line":"#dpl_user\u003dadmin"},{"line_number":1437,"context_line":""},{"line_number":1438,"context_line":"# the DPL client password for accessing rbd volumes (string"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAUX%2F%2FHPI%3D","line":1435,"updated":"2014-02-17 03:00:40.000000000","message":"rbd?","commit_id":"e6de6303d355016e687cc96421bbf289e44af436"}]}
