)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"72177b7e48bdc0bf4260a762347e41bf1aa131c6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     mayurindalkar \u003cmayur.indalkar@veritas.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-11 23:48:54 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implementation of Cinder driver over ISCSI for Veritas Access"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This driver implements all the minimum required features for cinder."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"df7087c5_77fa9975","line":7,"updated":"2018-03-12 18:14:20.000000000","message":"If you need to do another update, please shorten this to be within the 52 character recommendation for commit summaries. It\u0027s a little redundant. Maybe something like:\n\nAdd ISCSI driver for Veritas Access","commit_id":"7e3e4ba0cfb1fb5062544e66e8715f2e14185d93"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"02020a90008b5505f62ddd940c031a6b941b5fe5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     mayurindalkar \u003cmayur.indalkar@veritas.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-11 23:48:54 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implementation of Cinder driver over ISCSI for Veritas Access"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This driver implements all the minimum required features for cinder."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"df7087c5_b1cee27f","line":7,"in_reply_to":"df7087c5_77fa9975","updated":"2018-03-13 13:59:40.000000000","message":"Done","commit_id":"7e3e4ba0cfb1fb5062544e66e8715f2e14185d93"}],"cinder/tests/unit/volume/drivers/veritas_access/test_veritas_iscsi.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41590d10381d5625612f7c0108e68c7e14d25011","unresolved":false,"context_lines":[{"line_number":45,"context_line":"class FakeXML(object):"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def __init__(self):"},{"line_number":48,"context_line":"        \"\"\"\"\"\""},{"line_number":49,"context_line":"        self.tempdir \u003d tempfile.mkdtemp()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def create_vrts_fake_config_file(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_c5549024","line":48,"updated":"2018-02-14 17:46:51.000000000","message":"This should be removed.","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"f19c0964da13723bc78c8b0a5db6d3ff248e45d4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"class FakeXML(object):"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def __init__(self):"},{"line_number":48,"context_line":"        \"\"\"\"\"\""},{"line_number":49,"context_line":"        self.tempdir \u003d tempfile.mkdtemp()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def create_vrts_fake_config_file(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_908e1dcf","line":48,"in_reply_to":"3fa0c359_c5549024","updated":"2018-02-22 05:30:37.000000000","message":"Done","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"}],"cinder/volume/drivers/veritas_access/veritas_iscsi.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import json"},{"line_number":21,"context_line":"from random import randint"},{"line_number":22,"context_line":"import requests"},{"line_number":23,"context_line":"import requests.auth"},{"line_number":24,"context_line":"from six.moves import http_client"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"from xml.dom import minidom"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_9ecdeb67","line":23,"updated":"2018-01-30 15:23:26.000000000","message":"requests and six imports should be in the third party import group below with the oslo imports.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import json"},{"line_number":21,"context_line":"from random import randint"},{"line_number":22,"context_line":"import requests"},{"line_number":23,"context_line":"import requests.auth"},{"line_number":24,"context_line":"from six.moves import http_client"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"from xml.dom import minidom"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_77422711","line":23,"in_reply_to":"5f93b717_9ecdeb67","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a28b3bd6102f46f6c083d7ed70d5de2e2293ee5f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import requests.auth"},{"line_number":24,"context_line":"from six.moves import http_client"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"from xml.dom import minidom"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from oslo_config import cfg"},{"line_number":29,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_dee10a9d","line":26,"range":{"start_line":26,"start_character":20,"end_line":26,"end_character":27},"updated":"2018-01-31 18:53:20.000000000","message":"Please use defusedxml.minidom instead:\n\n    https://github.com/tiran/defusedxml/blob/master/README.md\n\n    https://bugs.launchpad.net/cinder/+bug/1732155","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import requests.auth"},{"line_number":24,"context_line":"from six.moves import http_client"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"from xml.dom import minidom"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from oslo_config import cfg"},{"line_number":29,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_174de33c","line":26,"range":{"start_line":26,"start_character":20,"end_line":26,"end_character":27},"in_reply_to":"5f93b717_dee10a9d","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"VA_VOL_OPTS \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027vrts_server_ip\u0027,"},{"line_number":40,"context_line":"               help\u003d\u0027Console IP of Veritas Access server.\u0027),"},{"line_number":41,"context_line":"    cfg.IntOpt(\u0027vrts_port\u0027,"},{"line_number":42,"context_line":"               default\u003d14161,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_bef8e77a","line":39,"updated":"2018-01-30 15:23:26.000000000","message":"Please use the common san_ip, san_api_port, san_login, san_password, and target_port config options.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"VA_VOL_OPTS \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027vrts_server_ip\u0027,"},{"line_number":40,"context_line":"               help\u003d\u0027Console IP of Veritas Access server.\u0027),"},{"line_number":41,"context_line":"    cfg.IntOpt(\u0027vrts_port\u0027,"},{"line_number":42,"context_line":"               default\u003d14161,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_57584bf8","line":39,"in_reply_to":"5f93b717_bef8e77a","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3dc97e1180d48045e89bb8e64d4dc3c0ae51026b","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    CI_WIKI_NAME \u003d \"Veritas_Access_CI\""},{"line_number":93,"context_line":"    DRIVER_VOLUME_TYPE \u003d \u0027iSCSI\u0027"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def __init__(self, vg_obj\u003dNone, *args, **kwargs):"},{"line_number":96,"context_line":"        # Parent sets db, host, _execute and base config"},{"line_number":97,"context_line":"        super(ACCESSIscsiDriver, self).__init__(*args, **kwargs)"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_fe8c06d8","line":95,"range":{"start_line":95,"start_character":23,"end_line":95,"end_character":34},"updated":"2018-01-31 18:54:32.000000000","message":"No need for vg_obj here.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    CI_WIKI_NAME \u003d \"Veritas_Access_CI\""},{"line_number":93,"context_line":"    DRIVER_VOLUME_TYPE \u003d \u0027iSCSI\u0027"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def __init__(self, vg_obj\u003dNone, *args, **kwargs):"},{"line_number":96,"context_line":"        # Parent sets db, host, _execute and base config"},{"line_number":97,"context_line":"        super(ACCESSIscsiDriver, self).__init__(*args, **kwargs)"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_f74dd73a","line":95,"range":{"start_line":95,"start_character":23,"end_line":95,"end_character":34},"in_reply_to":"5f93b717_fe8c06d8","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"            if \u0027ONLINE\u0027 not in target_status:"},{"line_number":167,"context_line":"                message \u003d ((\u0027ACCESSIscsiDriver setup error as %s \u0027"},{"line_number":168,"context_line":"                            \u0027target is offline\u0027), target_name)"},{"line_number":169,"context_line":"                raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def create_export(self, context, volume, connector):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_9e6e4b2d","line":168,"range":{"start_line":168,"start_character":47,"end_line":168,"end_character":49},"updated":"2018-01-30 15:23:26.000000000","message":"Inner () not needed, should have _() to be translated, and , need to be % so you are not passing a tuple as the message.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"            if \u0027ONLINE\u0027 not in target_status:"},{"line_number":167,"context_line":"                message \u003d ((\u0027ACCESSIscsiDriver setup error as %s \u0027"},{"line_number":168,"context_line":"                            \u0027target is offline\u0027), target_name)"},{"line_number":169,"context_line":"                raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def create_export(self, context, volume, connector):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_d700dbad","line":168,"range":{"start_line":168,"start_character":47,"end_line":168,"end_character":49},"in_reply_to":"5f93b717_9e6e4b2d","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        if portal_ip \u003d\u003d \"\":"},{"line_number":214,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver initialize_connection \u0027"},{"line_number":215,"context_line":"                        \u0027failed for %s as no portal ip was found\u0027),"},{"line_number":216,"context_line":"                       volume.id)"},{"line_number":217,"context_line":"            LOG.error(message)"},{"line_number":218,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_de59338e","line":215,"range":{"start_line":215,"start_character":66,"end_line":215,"end_character":67},"updated":"2018-01-30 15:23:26.000000000","message":"Same as above.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        if portal_ip \u003d\u003d \"\":"},{"line_number":214,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver initialize_connection \u0027"},{"line_number":215,"context_line":"                        \u0027failed for %s as no portal ip was found\u0027),"},{"line_number":216,"context_line":"                       volume.id)"},{"line_number":217,"context_line":"            LOG.error(message)"},{"line_number":218,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_f7fb97ba","line":215,"range":{"start_line":215,"start_character":66,"end_line":215,"end_character":67},"in_reply_to":"5f93b717_de59338e","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        if not result:"},{"line_number":264,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver target-initiator mapping \u0027"},{"line_number":265,"context_line":"                        \u0027failed for target %s\u0027),"},{"line_number":266,"context_line":"                       target_name)"},{"line_number":267,"context_line":"            LOG.error(message)"},{"line_number":268,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_5e4d23c2","line":265,"range":{"start_line":265,"start_character":47,"end_line":265,"end_character":48},"updated":"2018-01-30 15:23:26.000000000","message":"Same.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        if not result:"},{"line_number":264,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver target-initiator mapping \u0027"},{"line_number":265,"context_line":"                        \u0027failed for target %s\u0027),"},{"line_number":266,"context_line":"                       target_name)"},{"line_number":267,"context_line":"            LOG.error(message)"},{"line_number":268,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_57260b6a","line":265,"range":{"start_line":265,"start_character":47,"end_line":265,"end_character":48},"in_reply_to":"5f93b717_5e4d23c2","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        The iscsi driver returns a driver_volume_type of \u0027iscsi\u0027."},{"line_number":274,"context_line":"        the format of the driver data is defined in _vrts_get_iscsi_properties."},{"line_number":275,"context_line":"        Example return value::"},{"line_number":276,"context_line":"            {"},{"line_number":277,"context_line":"                \u0027driver_volume_type\u0027: \u0027iscsi\u0027"},{"line_number":278,"context_line":"                \u0027data\u0027: {"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_7e4a5fac","line":275,"updated":"2018-01-30 15:23:26.000000000","message":"Need a blank line after the opening ::","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        The iscsi driver returns a driver_volume_type of \u0027iscsi\u0027."},{"line_number":274,"context_line":"        the format of the driver data is defined in _vrts_get_iscsi_properties."},{"line_number":275,"context_line":"        Example return value::"},{"line_number":276,"context_line":"            {"},{"line_number":277,"context_line":"                \u0027driver_volume_type\u0027: \u0027iscsi\u0027"},{"line_number":278,"context_line":"                \u0027data\u0027: {"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_7729c734","line":275,"in_reply_to":"5f93b717_7e4a5fac","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            if lun_found:"},{"line_number":300,"context_line":"                break"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"            time.sleep(5)"},{"line_number":303,"context_line":"            counter \u003d counter + 1"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        if target_name \u003d\u003d \"\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_3ece172e","line":302,"range":{"start_line":302,"start_character":17,"end_line":302,"end_character":22},"updated":"2018-01-30 15:23:26.000000000","message":"Do not have sleep statements in the code. This needs to be eventlet.sleep that can be mocked out in unit tests.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            if lun_found:"},{"line_number":300,"context_line":"                break"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"            time.sleep(5)"},{"line_number":303,"context_line":"            counter \u003d counter + 1"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        if target_name \u003d\u003d \"\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_371fbf08","line":302,"range":{"start_line":302,"start_character":17,"end_line":302,"end_character":22},"in_reply_to":"5f93b717_3ece172e","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        if target_name \u003d\u003d \"\":"},{"line_number":306,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver initialize_connection \u0027"},{"line_number":307,"context_line":"                        \u0027failed for %s as no target was found\u0027),"},{"line_number":308,"context_line":"                       volume.id)"},{"line_number":309,"context_line":"            LOG.error(message)"},{"line_number":310,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_5ee203a2","line":307,"range":{"start_line":307,"start_character":63,"end_line":307,"end_character":64},"updated":"2018-01-30 15:23:26.000000000","message":"Format and translate.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        if target_name \u003d\u003d \"\":"},{"line_number":306,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver initialize_connection \u0027"},{"line_number":307,"context_line":"                        \u0027failed for %s as no target was found\u0027),"},{"line_number":308,"context_line":"                       volume.id)"},{"line_number":309,"context_line":"            LOG.error(message)"},{"line_number":310,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_d719bb21","line":307,"range":{"start_line":307,"start_character":63,"end_line":307,"end_character":64},"in_reply_to":"5f93b717_5ee203a2","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":462,"context_line":""},{"line_number":463,"context_line":"        return False"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"    def _vrts_get_boolean_value(self, string):"},{"line_number":466,"context_line":"        \"\"\"Return Boolean value corresponding to given input.\"\"\""},{"line_number":467,"context_line":"        if string in (\u0027true\u0027, \u0027TRUE\u0027, \u0027True\u0027):"},{"line_number":468,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_a199a8c4","line":465,"updated":"2018-01-30 15:23:26.000000000","message":"Please use strutils.is_valid_boolstr from oslo.utils instead.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":462,"context_line":""},{"line_number":463,"context_line":"        return False"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"    def _vrts_get_boolean_value(self, string):"},{"line_number":466,"context_line":"        \"\"\"Return Boolean value corresponding to given input.\"\"\""},{"line_number":467,"context_line":"        if string in (\u0027true\u0027, \u0027TRUE\u0027, \u0027True\u0027):"},{"line_number":468,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_77dea73e","line":465,"in_reply_to":"5f93b717_a199a8c4","updated":"2018-02-02 13:52:05.000000000","message":"using strutils.bool_from_string","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        if not target_name:"},{"line_number":489,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create volume failed %s \u0027"},{"line_number":490,"context_line":"                        \u0027as no space is available\u0027), volume.id)"},{"line_number":491,"context_line":"            LOG.error(message)"},{"line_number":492,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":493,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_21eb5813","line":490,"range":{"start_line":490,"start_character":50,"end_line":490,"end_character":52},"updated":"2018-01-30 15:23:26.000000000","message":"Translate and format string.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        if not target_name:"},{"line_number":489,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create volume failed %s \u0027"},{"line_number":490,"context_line":"                        \u0027as no space is available\u0027), volume.id)"},{"line_number":491,"context_line":"            LOG.error(message)"},{"line_number":492,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":493,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_37e49f0c","line":490,"range":{"start_line":490,"start_character":50,"end_line":490,"end_character":52},"in_reply_to":"5f93b717_21eb5813","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":502,"context_line":"                                  json.dumps(data), \u0027POST\u0027)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if not result:"},{"line_number":505,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create volume failed %s\u0027),"},{"line_number":506,"context_line":"                       volume.id)"},{"line_number":507,"context_line":"            LOG.error(message)"},{"line_number":508,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_01f65cfa","line":505,"range":{"start_line":505,"start_character":67,"end_line":505,"end_character":69},"updated":"2018-01-30 15:23:26.000000000","message":"Same.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":502,"context_line":"                                  json.dumps(data), \u0027POST\u0027)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if not result:"},{"line_number":505,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create volume failed %s\u0027),"},{"line_number":506,"context_line":"                       volume.id)"},{"line_number":507,"context_line":"            LOG.error(message)"},{"line_number":508,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_d7ee9beb","line":505,"range":{"start_line":505,"start_character":67,"end_line":505,"end_character":69},"in_reply_to":"5f93b717_01f65cfa","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        if target_name \u003d\u003d \"\":"},{"line_number":529,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver delete volume failed %s \u0027"},{"line_number":530,"context_line":"                        \u0027as target not found\u0027),"},{"line_number":531,"context_line":"                       volume.id)"},{"line_number":532,"context_line":"            LOG.error(message)"},{"line_number":533,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_a1de886a","line":530,"range":{"start_line":530,"start_character":45,"end_line":530,"end_character":47},"updated":"2018-01-30 15:23:26.000000000","message":"Same.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        if target_name \u003d\u003d \"\":"},{"line_number":529,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver delete volume failed %s \u0027"},{"line_number":530,"context_line":"                        \u0027as target not found\u0027),"},{"line_number":531,"context_line":"                       volume.id)"},{"line_number":532,"context_line":"            LOG.error(message)"},{"line_number":533,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_57b4cbf1","line":530,"range":{"start_line":530,"start_character":45,"end_line":530,"end_character":47},"in_reply_to":"5f93b717_a1de886a","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":543,"context_line":"                                  json.dumps(data), \u0027POST\u0027)"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        if not result:"},{"line_number":546,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver delete volume failed %s\u0027),"},{"line_number":547,"context_line":"                       volume.id)"},{"line_number":548,"context_line":"            LOG.error(message)"},{"line_number":549,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_21d4b847","line":546,"range":{"start_line":546,"start_character":67,"end_line":546,"end_character":69},"updated":"2018-01-30 15:23:26.000000000","message":"Same.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":543,"context_line":"                                  json.dumps(data), \u0027POST\u0027)"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        if not result:"},{"line_number":546,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver delete volume failed %s\u0027),"},{"line_number":547,"context_line":"                       volume.id)"},{"line_number":548,"context_line":"            LOG.error(message)"},{"line_number":549,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_37cd7f84","line":546,"range":{"start_line":546,"start_character":67,"end_line":546,"end_character":69},"in_reply_to":"5f93b717_21d4b847","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":570,"context_line":"                                  json.dumps(data), \u0027POST\u0027)"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"        if not result:"},{"line_number":573,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create snapshot failed for %s\u0027),"},{"line_number":574,"context_line":"                       snapshot.volume_id)"},{"line_number":575,"context_line":"            LOG.error(message)"},{"line_number":576,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_01cf3cb0","line":573,"range":{"start_line":573,"start_character":73,"end_line":573,"end_character":75},"updated":"2018-01-30 15:23:26.000000000","message":"Same.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":570,"context_line":"                                  json.dumps(data), \u0027POST\u0027)"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"        if not result:"},{"line_number":573,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create snapshot failed for %s\u0027),"},{"line_number":574,"context_line":"                       snapshot.volume_id)"},{"line_number":575,"context_line":"            LOG.error(message)"},{"line_number":576,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_9791f349","line":573,"range":{"start_line":573,"start_character":73,"end_line":573,"end_character":75},"in_reply_to":"5f93b717_01cf3cb0","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":598,"context_line":"                                  json.dumps(data), \u0027POST\u0027)"},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        if not result:"},{"line_number":601,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver delete snapshot failed for %s\u0027),"},{"line_number":602,"context_line":"                       snapshot.id)"},{"line_number":603,"context_line":"            LOG.error(message)"},{"line_number":604,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_61bde000","line":601,"range":{"start_line":601,"start_character":73,"end_line":601,"end_character":75},"updated":"2018-01-30 15:23:26.000000000","message":"Same.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":598,"context_line":"                                  json.dumps(data), \u0027POST\u0027)"},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        if not result:"},{"line_number":601,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver delete snapshot failed for %s\u0027),"},{"line_number":602,"context_line":"                       snapshot.id)"},{"line_number":603,"context_line":"            LOG.error(message)"},{"line_number":604,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_f7c2b752","line":601,"range":{"start_line":601,"start_character":73,"end_line":601,"end_character":75},"in_reply_to":"5f93b717_61bde000","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":627,"context_line":""},{"line_number":628,"context_line":"        if not result:"},{"line_number":629,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create cloned \u0027"},{"line_number":630,"context_line":"                        \u0027volume got failed for %s\u0027),"},{"line_number":631,"context_line":"                       src_vref.id)"},{"line_number":632,"context_line":"            LOG.error(message)"},{"line_number":633,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_213918a3","line":630,"range":{"start_line":630,"start_character":51,"end_line":630,"end_character":52},"updated":"2018-01-30 15:23:26.000000000","message":"+","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":627,"context_line":""},{"line_number":628,"context_line":"        if not result:"},{"line_number":629,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create cloned \u0027"},{"line_number":630,"context_line":"                        \u0027volume got failed for %s\u0027),"},{"line_number":631,"context_line":"                       src_vref.id)"},{"line_number":632,"context_line":"            LOG.error(message)"},{"line_number":633,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_97a333b2","line":630,"range":{"start_line":630,"start_character":51,"end_line":630,"end_character":52},"in_reply_to":"5f93b717_213918a3","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":645,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":646,"context_line":"        \"\"\"Creates a volume from snapshot.\"\"\""},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"        LOG.debug(\u0027ACCESSIscsiDriver create_volume_from_snapshot called \u0027)"},{"line_number":649,"context_line":"        self._lun_create_from_snap_str"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"        lun_name \u003d self._get_va_lun_name(volume.id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_01441c1a","line":648,"range":{"start_line":648,"start_character":71,"end_line":648,"end_character":72},"updated":"2018-01-30 15:23:26.000000000","message":"Remove extra space.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":645,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":646,"context_line":"        \"\"\"Creates a volume from snapshot.\"\"\""},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"        LOG.debug(\u0027ACCESSIscsiDriver create_volume_from_snapshot called \u0027)"},{"line_number":649,"context_line":"        self._lun_create_from_snap_str"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"        lun_name \u003d self._get_va_lun_name(volume.id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_b7a66fc0","line":648,"range":{"start_line":648,"start_character":71,"end_line":648,"end_character":72},"in_reply_to":"5f93b717_01441c1a","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        if not result:"},{"line_number":665,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create volume from snapshot \u0027"},{"line_number":666,"context_line":"                        \u0027got failed for volume %s\u0027),"},{"line_number":667,"context_line":"                       volume.id)"},{"line_number":668,"context_line":"            LOG.error(message)"},{"line_number":669,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_c1495431","line":666,"range":{"start_line":666,"start_character":51,"end_line":666,"end_character":52},"updated":"2018-01-30 15:23:26.000000000","message":"Translate and format.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        if not result:"},{"line_number":665,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver create volume from snapshot \u0027"},{"line_number":666,"context_line":"                        \u0027got failed for volume %s\u0027),"},{"line_number":667,"context_line":"                       volume.id)"},{"line_number":668,"context_line":"            LOG.error(message)"},{"line_number":669,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_77ac679e","line":666,"range":{"start_line":666,"start_character":51,"end_line":666,"end_character":52},"in_reply_to":"5f93b717_c1495431","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":696,"context_line":"            if lun_found:"},{"line_number":697,"context_line":"                break"},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"            time.sleep(5)"},{"line_number":700,"context_line":"            counter \u003d counter + 1"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"        if target_name \u003d\u003d \"\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_e125705d","line":699,"range":{"start_line":699,"start_character":11,"end_line":699,"end_character":22},"updated":"2018-01-30 15:23:26.000000000","message":"Change or remove.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":696,"context_line":"            if lun_found:"},{"line_number":697,"context_line":"                break"},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"            time.sleep(5)"},{"line_number":700,"context_line":"            counter \u003d counter + 1"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"        if target_name \u003d\u003d \"\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_d79c5b6b","line":699,"range":{"start_line":699,"start_character":11,"end_line":699,"end_character":22},"in_reply_to":"5f93b717_e125705d","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"        if not result:"},{"line_number":724,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver extend \u0027"},{"line_number":725,"context_line":"                        \u0027volume got failed for %s\u0027),"},{"line_number":726,"context_line":"                       volume.id)"},{"line_number":727,"context_line":"            LOG.error(message)"},{"line_number":728,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_c120744b","line":725,"range":{"start_line":725,"start_character":50,"end_line":725,"end_character":52},"updated":"2018-01-30 15:23:26.000000000","message":"Translate and format.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"        if not result:"},{"line_number":724,"context_line":"            message \u003d ((\u0027ACCESSIscsiDriver extend \u0027"},{"line_number":725,"context_line":"                        \u0027volume got failed for %s\u0027),"},{"line_number":726,"context_line":"                       volume.id)"},{"line_number":727,"context_line":"            LOG.error(message)"},{"line_number":728,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_978c9336","line":725,"range":{"start_line":725,"start_character":50,"end_line":725,"end_character":52},"in_reply_to":"5f93b717_c120744b","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                                data\u003d{\u0027username\u0027: username,"},{"line_number":760,"context_line":"                                      \u0027password\u0027: password})"},{"line_number":761,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":762,"context_line":"            LOG.debug((\u0027failed to authenticate to remote cluster at %s as %s\u0027),"},{"line_number":763,"context_line":"                      address, username)"},{"line_number":764,"context_line":"            raise exception.NotAuthorized(\u0027Authentication failure.\u0027)"},{"line_number":765,"context_line":"        result \u003d response.json()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_81eb4cda","line":762,"range":{"start_line":762,"start_character":77,"end_line":762,"end_character":78},"updated":"2018-01-30 15:23:26.000000000","message":"Inner () not necessary.","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                                data\u003d{\u0027username\u0027: username,"},{"line_number":760,"context_line":"                                      \u0027password\u0027: password})"},{"line_number":761,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":762,"context_line":"            LOG.debug((\u0027failed to authenticate to remote cluster at %s as %s\u0027),"},{"line_number":763,"context_line":"                      address, username)"},{"line_number":764,"context_line":"            raise exception.NotAuthorized(\u0027Authentication failure.\u0027)"},{"line_number":765,"context_line":"        result \u003d response.json()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_b78f4f28","line":762,"range":{"start_line":762,"start_character":77,"end_line":762,"end_character":78},"in_reply_to":"5f93b717_81eb4cda","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5fe4e4f662589ef1899aa6ddc2102d69825cfc00","unresolved":false,"context_lines":[{"line_number":761,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":762,"context_line":"            LOG.debug((\u0027failed to authenticate to remote cluster at %s as %s\u0027),"},{"line_number":763,"context_line":"                      address, username)"},{"line_number":764,"context_line":"            raise exception.NotAuthorized(\u0027Authentication failure.\u0027)"},{"line_number":765,"context_line":"        result \u003d response.json()"},{"line_number":766,"context_line":"        session.headers.update({\u0027Authorization\u0027: \u0027Bearer {}\u0027"},{"line_number":767,"context_line":"                                .format(result[\u0027token\u0027])})"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_e1b33009","line":764,"updated":"2018-01-30 15:23:26.000000000","message":"Translate with _().","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"78b3f2241271e57563cdb9f0e061d8401f772517","unresolved":false,"context_lines":[{"line_number":761,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":762,"context_line":"            LOG.debug((\u0027failed to authenticate to remote cluster at %s as %s\u0027),"},{"line_number":763,"context_line":"                      address, username)"},{"line_number":764,"context_line":"            raise exception.NotAuthorized(\u0027Authentication failure.\u0027)"},{"line_number":765,"context_line":"        result \u003d response.json()"},{"line_number":766,"context_line":"        session.headers.update({\u0027Authorization\u0027: \u0027Bearer {}\u0027"},{"line_number":767,"context_line":"                                .format(result[\u0027token\u0027])})"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_57828b01","line":764,"in_reply_to":"5f93b717_e1b33009","updated":"2018-02-02 13:52:05.000000000","message":"Done","commit_id":"7ac87f5db306b5290cbc0fc5e7e3726d3abe2396"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d236ec03bed97ad3cc5ac4e52e96505b8da8a73a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    cfg.StrOpt(\u0027vrts_target_config\u0027,"},{"line_number":45,"context_line":"               default\u003d\u0027/etc/cinder/vrts_target.xml\u0027,"},{"line_number":46,"context_line":"               help\u003d\u0027Type of VA file system to be created.\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027vrts_iscsi_port\u0027,"},{"line_number":48,"context_line":"               default\u003d3260,"},{"line_number":49,"context_line":"               help\u003d\u0027The port that the iSCSI daemon is listening on.\u0027)"},{"line_number":50,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_f0dbece9","line":47,"range":{"start_line":47,"start_character":4,"end_line":47,"end_character":14},"updated":"2018-02-09 19:29:30.000000000","message":"Use cfg.PortOpt() here.","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"69896dd3ec5266d0fb8f3adb2880dd5c8e18d491","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    cfg.StrOpt(\u0027vrts_target_config\u0027,"},{"line_number":45,"context_line":"               default\u003d\u0027/etc/cinder/vrts_target.xml\u0027,"},{"line_number":46,"context_line":"               help\u003d\u0027Type of VA file system to be created.\u0027),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027vrts_iscsi_port\u0027,"},{"line_number":48,"context_line":"               default\u003d3260,"},{"line_number":49,"context_line":"               help\u003d\u0027The port that the iSCSI daemon is listening on.\u0027)"},{"line_number":50,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_081ae16d","line":47,"range":{"start_line":47,"start_character":4,"end_line":47,"end_character":14},"in_reply_to":"3fa0c359_f0dbece9","updated":"2018-02-11 17:58:02.000000000","message":"Done","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d236ec03bed97ad3cc5ac4e52e96505b8da8a73a","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        portal_list \u003d portal_ip.split(\u0027,\u0027)"},{"line_number":223,"context_line":"        target_portal_list \u003d [ip + \":\" + str(self.iscsi_port)"},{"line_number":224,"context_line":"                              for ip in portal_list]"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        iscsi_properties \u003d {}"},{"line_number":227,"context_line":"        iscsi_properties[\u0027target_discovered\u0027] \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_50ec208e","line":224,"range":{"start_line":223,"start_character":0,"end_line":224,"end_character":52},"updated":"2018-02-09 19:29:30.000000000","message":"This is going to break if \"ip\" is an IPv6 address.\n\nIf IPv6 is not supported here in general, please document that somewhere and add a comment here so we can find it easily later.","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"69896dd3ec5266d0fb8f3adb2880dd5c8e18d491","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        portal_list \u003d portal_ip.split(\u0027,\u0027)"},{"line_number":223,"context_line":"        target_portal_list \u003d [ip + \":\" + str(self.iscsi_port)"},{"line_number":224,"context_line":"                              for ip in portal_list]"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        iscsi_properties \u003d {}"},{"line_number":227,"context_line":"        iscsi_properties[\u0027target_discovered\u0027] \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_28179d47","line":224,"range":{"start_line":223,"start_character":0,"end_line":224,"end_character":52},"in_reply_to":"3fa0c359_50ec208e","updated":"2018-02-11 17:58:02.000000000","message":"Done","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"6eb45a3afb40f16d03199d0255ebb17074fc93c9","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        portal_list \u003d portal_ip.split(\u0027,\u0027)"},{"line_number":223,"context_line":"        target_portal_list \u003d [ip + \":\" + str(self.iscsi_port)"},{"line_number":224,"context_line":"                              for ip in portal_list]"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        iscsi_properties \u003d {}"},{"line_number":227,"context_line":"        iscsi_properties[\u0027target_discovered\u0027] \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_647a69f1","line":224,"range":{"start_line":223,"start_character":0,"end_line":224,"end_character":52},"in_reply_to":"3fa0c359_50ec208e","updated":"2018-02-26 17:50:49.000000000","message":"How to handle this in case of IPv6. \nwill adding square brackets around IP work??","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d236ec03bed97ad3cc5ac4e52e96505b8da8a73a","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        lun_found \u003d False"},{"line_number":292,"context_line":"        target_name \u003d \"\""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        counter \u003d 0"},{"line_number":295,"context_line":"        while (counter \u003c 5):"},{"line_number":296,"context_line":"            lun_list \u003d self._get_vrts_lun_list()"},{"line_number":297,"context_line":"            for lun in lun_list[\u0027output\u0027][\u0027output\u0027][\u0027luns\u0027]:"},{"line_number":298,"context_line":"                if lun[\u0027lun_name\u0027] \u003d\u003d lun_name:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_f0044c4c","line":295,"range":{"start_line":294,"start_character":0,"end_line":295,"end_character":28},"updated":"2018-02-09 19:29:30.000000000","message":"Please use oslo_service.loopingcall.FixedIntervalLoopingCall for this.","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"69896dd3ec5266d0fb8f3adb2880dd5c8e18d491","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        lun_found \u003d False"},{"line_number":292,"context_line":"        target_name \u003d \"\""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        counter \u003d 0"},{"line_number":295,"context_line":"        while (counter \u003c 5):"},{"line_number":296,"context_line":"            lun_list \u003d self._get_vrts_lun_list()"},{"line_number":297,"context_line":"            for lun in lun_list[\u0027output\u0027][\u0027output\u0027][\u0027luns\u0027]:"},{"line_number":298,"context_line":"                if lun[\u0027lun_name\u0027] \u003d\u003d lun_name:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_c829598a","line":295,"range":{"start_line":294,"start_character":0,"end_line":295,"end_character":28},"in_reply_to":"3fa0c359_f0044c4c","updated":"2018-02-11 17:58:02.000000000","message":"Done","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d236ec03bed97ad3cc5ac4e52e96505b8da8a73a","unresolved":false,"context_lines":[{"line_number":682,"context_line":"        lun_found \u003d False"},{"line_number":683,"context_line":"        target_name \u003d \"\""},{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        counter \u003d 0"},{"line_number":686,"context_line":"        while (counter \u003c 5):"},{"line_number":687,"context_line":"            lun_list \u003d self._get_vrts_lun_list()"},{"line_number":688,"context_line":"            for lun in lun_list[\u0027output\u0027][\u0027output\u0027][\u0027luns\u0027]:"},{"line_number":689,"context_line":"                if lun[\u0027lun_name\u0027] \u003d\u003d lun_name:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_10b0d889","line":686,"range":{"start_line":685,"start_character":0,"end_line":686,"end_character":28},"updated":"2018-02-09 19:29:30.000000000","message":"Please use FixedIntervalLoopingCall for this.","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"69896dd3ec5266d0fb8f3adb2880dd5c8e18d491","unresolved":false,"context_lines":[{"line_number":682,"context_line":"        lun_found \u003d False"},{"line_number":683,"context_line":"        target_name \u003d \"\""},{"line_number":684,"context_line":""},{"line_number":685,"context_line":"        counter \u003d 0"},{"line_number":686,"context_line":"        while (counter \u003c 5):"},{"line_number":687,"context_line":"            lun_list \u003d self._get_vrts_lun_list()"},{"line_number":688,"context_line":"            for lun in lun_list[\u0027output\u0027][\u0027output\u0027][\u0027luns\u0027]:"},{"line_number":689,"context_line":"                if lun[\u0027lun_name\u0027] \u003d\u003d lun_name:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_e82e9590","line":686,"range":{"start_line":685,"start_character":0,"end_line":686,"end_character":28},"in_reply_to":"3fa0c359_10b0d889","updated":"2018-02-11 17:58:02.000000000","message":"Done","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d236ec03bed97ad3cc5ac4e52e96505b8da8a73a","unresolved":false,"context_lines":[{"line_number":752,"context_line":"        session.auth \u003d NoAuth()"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"        response \u003d session.post(\u0027https://%s:%s/api/rest/authenticate\u0027"},{"line_number":755,"context_line":"                                % (address, self._port),"},{"line_number":756,"context_line":"                                data\u003d{\u0027username\u0027: username,"},{"line_number":757,"context_line":"                                      \u0027password\u0027: password})"},{"line_number":758,"context_line":"        if response.status_code !\u003d http_client.OK:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_d0a59048","line":755,"updated":"2018-02-09 19:29:30.000000000","message":"Same as above re: IPv6.","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"69896dd3ec5266d0fb8f3adb2880dd5c8e18d491","unresolved":false,"context_lines":[{"line_number":752,"context_line":"        session.auth \u003d NoAuth()"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"        response \u003d session.post(\u0027https://%s:%s/api/rest/authenticate\u0027"},{"line_number":755,"context_line":"                                % (address, self._port),"},{"line_number":756,"context_line":"                                data\u003d{\u0027username\u0027: username,"},{"line_number":757,"context_line":"                                      \u0027password\u0027: password})"},{"line_number":758,"context_line":"        if response.status_code !\u003d http_client.OK:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_881fd159","line":755,"in_reply_to":"3fa0c359_d0a59048","updated":"2018-02-11 17:58:02.000000000","message":"Done","commit_id":"ffbef2db5b67c32df98488f81194f2023c56eff7"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41590d10381d5625612f7c0108e68c7e14d25011","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Veritas Access Driver for ISCSI."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":"from defusedxml import minidom"},{"line_number":19,"context_line":"import hashlib"},{"line_number":20,"context_line":"import json"},{"line_number":21,"context_line":"from random import randint"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_f03948d8","line":18,"updated":"2018-02-14 17:46:51.000000000","message":"Should be below with third party imports.","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"f19c0964da13723bc78c8b0a5db6d3ff248e45d4","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Veritas Access Driver for ISCSI."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":"from defusedxml import minidom"},{"line_number":19,"context_line":"import hashlib"},{"line_number":20,"context_line":"import json"},{"line_number":21,"context_line":"from random import randint"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_10b44d81","line":18,"in_reply_to":"3fa0c359_f03948d8","updated":"2018-02-22 05:30:37.000000000","message":"Done","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41590d10381d5625612f7c0108e68c7e14d25011","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                help\u003d\u0027Create sparse Lun.\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027vrts_target_config\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027/etc/cinder/vrts_target.xml\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Type of VA file system to be created.\u0027),"},{"line_number":48,"context_line":"    cfg.PortOpt(\u0027vrts_iscsi_port\u0027,"},{"line_number":49,"context_line":"                default\u003d3260,"},{"line_number":50,"context_line":"                help\u003d\u0027The port that the iSCSI daemon is listening on.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_9050040d","line":47,"updated":"2018-02-14 17:46:51.000000000","message":"This comment doesn\u0027t seem to match with the rest of the option values.","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"f19c0964da13723bc78c8b0a5db6d3ff248e45d4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                help\u003d\u0027Create sparse Lun.\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027vrts_target_config\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027/etc/cinder/vrts_target.xml\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Type of VA file system to be created.\u0027),"},{"line_number":48,"context_line":"    cfg.PortOpt(\u0027vrts_iscsi_port\u0027,"},{"line_number":49,"context_line":"                default\u003d3260,"},{"line_number":50,"context_line":"                help\u003d\u0027The port that the iSCSI daemon is listening on.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_f0ae812c","line":47,"in_reply_to":"3fa0c359_9050040d","updated":"2018-02-22 05:30:37.000000000","message":"Done","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41590d10381d5625612f7c0108e68c7e14d25011","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    cfg.StrOpt(\u0027vrts_target_config\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027/etc/cinder/vrts_target.xml\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Type of VA file system to be created.\u0027),"},{"line_number":48,"context_line":"    cfg.PortOpt(\u0027vrts_iscsi_port\u0027,"},{"line_number":49,"context_line":"                default\u003d3260,"},{"line_number":50,"context_line":"                help\u003d\u0027The port that the iSCSI daemon is listening on.\u0027)"},{"line_number":51,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_103cf4bd","line":48,"updated":"2018-02-14 17:46:51.000000000","message":"Just use the existing target_port setting.","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"f19c0964da13723bc78c8b0a5db6d3ff248e45d4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    cfg.StrOpt(\u0027vrts_target_config\u0027,"},{"line_number":46,"context_line":"               default\u003d\u0027/etc/cinder/vrts_target.xml\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027Type of VA file system to be created.\u0027),"},{"line_number":48,"context_line":"    cfg.PortOpt(\u0027vrts_iscsi_port\u0027,"},{"line_number":49,"context_line":"                default\u003d3260,"},{"line_number":50,"context_line":"                help\u003d\u0027The port that the iSCSI daemon is listening on.\u0027)"},{"line_number":51,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_5063b51a","line":48,"in_reply_to":"3fa0c359_103cf4bd","updated":"2018-02-22 05:30:37.000000000","message":"Done","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41590d10381d5625612f7c0108e68c7e14d25011","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    def __call__(self, r):"},{"line_number":69,"context_line":"        return r"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"class ACCESSIscsiDriver(driver.ISCSIDriver):"},{"line_number":73,"context_line":"    \"\"\"ACCESS Share Driver."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_50735cb2","line":71,"updated":"2018-02-14 17:46:51.000000000","message":"Need volume driver decorator:\n\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/solidfire.py#L138","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41590d10381d5625612f7c0108e68c7e14d25011","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_inner, time.time())"},{"line_number":314,"context_line":"        timer.start(interval\u003d5).wait()"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        self._vrts_target_initiator_mapping(target[\u0027target_name\u0027],"},{"line_number":317,"context_line":"                                            connector[\u0027initiator\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_762690bd","line":314,"updated":"2018-02-14 17:46:51.000000000","message":"This needs to be mocked out in unit tests. It causes test_initialize_connection to take over 30 seconds.","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"f19c0964da13723bc78c8b0a5db6d3ff248e45d4","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_inner, time.time())"},{"line_number":314,"context_line":"        timer.start(interval\u003d5).wait()"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        self._vrts_target_initiator_mapping(target[\u0027target_name\u0027],"},{"line_number":317,"context_line":"                                            connector[\u0027initiator\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_907cddb6","line":314,"in_reply_to":"3fa0c359_762690bd","updated":"2018-02-22 05:30:37.000000000","message":"Have mocked this, but still it takes 30sec. Any Idea what am I doing wrong??","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41590d10381d5625612f7c0108e68c7e14d25011","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        if not self._vrts_is_space_available_in_store("},{"line_number":444,"context_line":"                vol_size, store_name, fs_list):"},{"line_number":445,"context_line":"            while(incrmnt_pointer !\u003d (target_count - 1)):"},{"line_number":446,"context_line":"                target_index \u003d (target_index + 1) % target_count"},{"line_number":447,"context_line":"                store_name \u003d self._vrts_get_assigned_store("},{"line_number":448,"context_line":"                    target_list[target_index][\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_f0a06894","line":445,"updated":"2018-02-14 17:46:51.000000000","message":"Should have space between while and the opening (.\n\nAnd () not really needed.","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"f19c0964da13723bc78c8b0a5db6d3ff248e45d4","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        if not self._vrts_is_space_available_in_store("},{"line_number":444,"context_line":"                vol_size, store_name, fs_list):"},{"line_number":445,"context_line":"            while(incrmnt_pointer !\u003d (target_count - 1)):"},{"line_number":446,"context_line":"                target_index \u003d (target_index + 1) % target_count"},{"line_number":447,"context_line":"                store_name \u003d self._vrts_get_assigned_store("},{"line_number":448,"context_line":"                    target_list[target_index][\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_1069adf6","line":445,"in_reply_to":"3fa0c359_f0a06894","updated":"2018-02-22 05:30:37.000000000","message":"Done","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"41590d10381d5625612f7c0108e68c7e14d25011","unresolved":false,"context_lines":[{"line_number":846,"context_line":"        self._stats[\"reserved_percentage\"] \u003d res_percentage or 0"},{"line_number":847,"context_line":"        self._stats[\"driver_version\"] \u003d self.VERSION"},{"line_number":848,"context_line":"        self._stats[\"storage_protocol\"] \u003d self.DRIVER_VOLUME_TYPE"},{"line_number":849,"context_line":"        self._stats[\u0027total_capacity_gb\u0027] \u003d \"infinite\""},{"line_number":850,"context_line":"        self._stats[\u0027free_capacity_gb\u0027] \u003d \"infinite\""},{"line_number":851,"context_line":"        self._stats[\u0027thin_provisioning_support\u0027] \u003d True"},{"line_number":852,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_b07e60ad","line":849,"updated":"2018-02-14 17:46:51.000000000","message":"Returning even a guesstimate of working capacity is going to be better than returning infinite.","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"f19c0964da13723bc78c8b0a5db6d3ff248e45d4","unresolved":false,"context_lines":[{"line_number":846,"context_line":"        self._stats[\"reserved_percentage\"] \u003d res_percentage or 0"},{"line_number":847,"context_line":"        self._stats[\"driver_version\"] \u003d self.VERSION"},{"line_number":848,"context_line":"        self._stats[\"storage_protocol\"] \u003d self.DRIVER_VOLUME_TYPE"},{"line_number":849,"context_line":"        self._stats[\u0027total_capacity_gb\u0027] \u003d \"infinite\""},{"line_number":850,"context_line":"        self._stats[\u0027free_capacity_gb\u0027] \u003d \"infinite\""},{"line_number":851,"context_line":"        self._stats[\u0027thin_provisioning_support\u0027] \u003d True"},{"line_number":852,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_306e2900","line":849,"in_reply_to":"3fa0c359_b07e60ad","updated":"2018-02-22 05:30:37.000000000","message":"Done","commit_id":"52e1c0ec551a5cb1ea8f08ad6636cbb7f05f700f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"909da8743b673491c505b06bfd7e9f1e140708d5","unresolved":false,"context_lines":[{"line_number":309,"context_line":"                LOG.error(message)"},{"line_number":310,"context_line":"                raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_inner, time.time())"},{"line_number":313,"context_line":"        timer.start(interval\u003d5).wait()"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        self._vrts_target_initiator_mapping(target[\u0027target_name\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_4be8bfe0","line":312,"updated":"2018-02-23 18:08:02.000000000","message":"This looks like it would be better served by using FixedIntervalWithTimeoutLoopingCall -- then you can avoid writing the timing logic here.","commit_id":"1f071260b93ec247f74f295b102aa450f583ee06"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"92cb574c1e36944dd05a0ae063a0f09f3a14883f","unresolved":false,"context_lines":[{"line_number":309,"context_line":"                LOG.error(message)"},{"line_number":310,"context_line":"                raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_inner, time.time())"},{"line_number":313,"context_line":"        timer.start(interval\u003d5).wait()"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        self._vrts_target_initiator_mapping(target[\u0027target_name\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_e3512264","line":312,"in_reply_to":"3fa0c359_4be8bfe0","updated":"2018-03-11 18:25:08.000000000","message":"Done","commit_id":"1f071260b93ec247f74f295b102aa450f583ee06"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"e85ee713acb03b53e271e9dffc350422270d48d2","unresolved":false,"context_lines":[{"line_number":309,"context_line":"                LOG.error(message)"},{"line_number":310,"context_line":"                raise exception.VolumeBackendAPIException(message\u003dmessage)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_inner, time.time())"},{"line_number":313,"context_line":"        timer.start(interval\u003d5).wait()"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        self._vrts_target_initiator_mapping(target[\u0027target_name\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_ebe1819c","line":312,"in_reply_to":"3fa0c359_4be8bfe0","updated":"2018-02-24 18:09:56.000000000","message":"How can I raise the exception(line #310) if I used FixedIntervalWithTimeoutLoopingCall","commit_id":"1f071260b93ec247f74f295b102aa450f583ee06"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4aae08c0a06fe9c6eb4c1480ee4704c6ea2371ff","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    def _vrts_get_suitable_target(self, target_list, vol_size):"},{"line_number":423,"context_line":"        \"\"\"Get a suitable target for lun creation."},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        Picking random target at first, if space is not availble"},{"line_number":426,"context_line":"        in first selected target then check each target one by one"},{"line_number":427,"context_line":"        for suitable one."},{"line_number":428,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_59ec3f8e","line":425,"range":{"start_line":425,"start_character":56,"end_line":425,"end_character":64},"updated":"2018-03-13 23:36:49.000000000","message":"available","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"66531be2c48ef1a30466ce5a420ff1729452b36a","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    def _vrts_get_suitable_target(self, target_list, vol_size):"},{"line_number":423,"context_line":"        \"\"\"Get a suitable target for lun creation."},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        Picking random target at first, if space is not availble"},{"line_number":426,"context_line":"        in first selected target then check each target one by one"},{"line_number":427,"context_line":"        for suitable one."},{"line_number":428,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_a2a99b7c","line":425,"range":{"start_line":425,"start_character":56,"end_line":425,"end_character":64},"in_reply_to":"df7087c5_59ec3f8e","updated":"2018-03-14 07:23:28.000000000","message":"Done","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4aae08c0a06fe9c6eb4c1480ee4704c6ea2371ff","unresolved":false,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":"        if not result:"},{"line_number":631,"context_line":"            message \u003d (_(\u0027ACCESSIscsiDriver create cloned \u0027"},{"line_number":632,"context_line":"                         \u0027volume got failed for %s\u0027)"},{"line_number":633,"context_line":"                       % src_vref.id)"},{"line_number":634,"context_line":"            LOG.error(message)"},{"line_number":635,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_d98ccfd8","line":632,"range":{"start_line":632,"start_character":32,"end_line":632,"end_character":43},"updated":"2018-03-13 23:36:49.000000000","message":"failed","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"66531be2c48ef1a30466ce5a420ff1729452b36a","unresolved":false,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":"        if not result:"},{"line_number":631,"context_line":"            message \u003d (_(\u0027ACCESSIscsiDriver create cloned \u0027"},{"line_number":632,"context_line":"                         \u0027volume got failed for %s\u0027)"},{"line_number":633,"context_line":"                       % src_vref.id)"},{"line_number":634,"context_line":"            LOG.error(message)"},{"line_number":635,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_82bed7b1","line":632,"range":{"start_line":632,"start_character":32,"end_line":632,"end_character":43},"in_reply_to":"df7087c5_d98ccfd8","updated":"2018-03-14 07:23:28.000000000","message":"Done","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4aae08c0a06fe9c6eb4c1480ee4704c6ea2371ff","unresolved":false,"context_lines":[{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        if not result:"},{"line_number":698,"context_line":"            message \u003d (_(\u0027ACCESSIscsiDriver create volume from snapshot \u0027"},{"line_number":699,"context_line":"                         \u0027got failed for volume %s\u0027)"},{"line_number":700,"context_line":"                       % volume.id)"},{"line_number":701,"context_line":"            LOG.error(message)"},{"line_number":702,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_79bfc360","line":699,"range":{"start_line":699,"start_character":26,"end_line":699,"end_character":36},"updated":"2018-03-13 23:36:49.000000000","message":"failed","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"66531be2c48ef1a30466ce5a420ff1729452b36a","unresolved":false,"context_lines":[{"line_number":696,"context_line":""},{"line_number":697,"context_line":"        if not result:"},{"line_number":698,"context_line":"            message \u003d (_(\u0027ACCESSIscsiDriver create volume from snapshot \u0027"},{"line_number":699,"context_line":"                         \u0027got failed for volume %s\u0027)"},{"line_number":700,"context_line":"                       % volume.id)"},{"line_number":701,"context_line":"            LOG.error(message)"},{"line_number":702,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_42b43fd1","line":699,"range":{"start_line":699,"start_character":26,"end_line":699,"end_character":36},"in_reply_to":"df7087c5_79bfc360","updated":"2018-03-14 07:23:28.000000000","message":"Done","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4aae08c0a06fe9c6eb4c1480ee4704c6ea2371ff","unresolved":false,"context_lines":[{"line_number":773,"context_line":""},{"line_number":774,"context_line":"        result \u003d self._vrts_extend_lun(volume, size)"},{"line_number":775,"context_line":""},{"line_number":776,"context_line":"        if not result:"},{"line_number":777,"context_line":"            message \u003d (_(\u0027ACCESSIscsiDriver extend \u0027"},{"line_number":778,"context_line":"                         \u0027volume got failed for %s\u0027)"},{"line_number":779,"context_line":"                       % volume.id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_b9a8fb1f","line":776,"range":{"start_line":776,"start_character":8,"end_line":776,"end_character":22},"updated":"2018-03-13 23:36:49.000000000","message":"For all these failures is there no way of providing information about how it failed?","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"66531be2c48ef1a30466ce5a420ff1729452b36a","unresolved":false,"context_lines":[{"line_number":773,"context_line":""},{"line_number":774,"context_line":"        result \u003d self._vrts_extend_lun(volume, size)"},{"line_number":775,"context_line":""},{"line_number":776,"context_line":"        if not result:"},{"line_number":777,"context_line":"            message \u003d (_(\u0027ACCESSIscsiDriver extend \u0027"},{"line_number":778,"context_line":"                         \u0027volume got failed for %s\u0027)"},{"line_number":779,"context_line":"                       % volume.id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_62070384","line":776,"range":{"start_line":776,"start_character":8,"end_line":776,"end_character":22},"in_reply_to":"df7087c5_b9a8fb1f","updated":"2018-03-14 07:23:28.000000000","message":"Its difficult for APIs to identify real reason of failure.","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4aae08c0a06fe9c6eb4c1480ee4704c6ea2371ff","unresolved":false,"context_lines":[{"line_number":775,"context_line":""},{"line_number":776,"context_line":"        if not result:"},{"line_number":777,"context_line":"            message \u003d (_(\u0027ACCESSIscsiDriver extend \u0027"},{"line_number":778,"context_line":"                         \u0027volume got failed for %s\u0027)"},{"line_number":779,"context_line":"                       % volume.id)"},{"line_number":780,"context_line":"            LOG.error(message)"},{"line_number":781,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_59baff6d","line":778,"range":{"start_line":778,"start_character":33,"end_line":778,"end_character":43},"updated":"2018-03-13 23:36:49.000000000","message":"failed","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"66531be2c48ef1a30466ce5a420ff1729452b36a","unresolved":false,"context_lines":[{"line_number":775,"context_line":""},{"line_number":776,"context_line":"        if not result:"},{"line_number":777,"context_line":"            message \u003d (_(\u0027ACCESSIscsiDriver extend \u0027"},{"line_number":778,"context_line":"                         \u0027volume got failed for %s\u0027)"},{"line_number":779,"context_line":"                       % volume.id)"},{"line_number":780,"context_line":"            LOG.error(message)"},{"line_number":781,"context_line":"            raise exception.VolumeBackendAPIException(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_a2c2fb32","line":778,"range":{"start_line":778,"start_character":33,"end_line":778,"end_character":43},"in_reply_to":"df7087c5_59baff6d","updated":"2018-03-14 07:23:28.000000000","message":"Done","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4aae08c0a06fe9c6eb4c1480ee4704c6ea2371ff","unresolved":false,"context_lines":[{"line_number":794,"context_line":"            kwargs[\u0027headers\u0027] \u003d {\u0027Content-Type\u0027: \u0027application/json\u0027}"},{"line_number":795,"context_line":"        full_url \u003d self._get_api(provider, path)"},{"line_number":796,"context_line":"        response \u003d session.request(method, full_url, **kwargs)"},{"line_number":797,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":798,"context_line":"            LOG.debug(\u0027Access API operation Failed.\u0027)"},{"line_number":799,"context_line":"            return False"},{"line_number":800,"context_line":"        if path \u003d\u003d self._update_object:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_f97753d3","line":797,"range":{"start_line":797,"start_character":7,"end_line":797,"end_character":50},"updated":"2018-03-13 23:36:49.000000000","message":"Is there no useful debug information that can be reported here?","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"66531be2c48ef1a30466ce5a420ff1729452b36a","unresolved":false,"context_lines":[{"line_number":794,"context_line":"            kwargs[\u0027headers\u0027] \u003d {\u0027Content-Type\u0027: \u0027application/json\u0027}"},{"line_number":795,"context_line":"        full_url \u003d self._get_api(provider, path)"},{"line_number":796,"context_line":"        response \u003d session.request(method, full_url, **kwargs)"},{"line_number":797,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":798,"context_line":"            LOG.debug(\u0027Access API operation Failed.\u0027)"},{"line_number":799,"context_line":"            return False"},{"line_number":800,"context_line":"        if path \u003d\u003d self._update_object:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_c2bfefa7","line":797,"range":{"start_line":797,"start_character":7,"end_line":797,"end_character":50},"in_reply_to":"df7087c5_f97753d3","updated":"2018-03-14 07:23:28.000000000","message":"Done","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4aae08c0a06fe9c6eb4c1480ee4704c6ea2371ff","unresolved":false,"context_lines":[{"line_number":813,"context_line":"                                data\u003d{\u0027username\u0027: username,"},{"line_number":814,"context_line":"                                      \u0027password\u0027: password})"},{"line_number":815,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":816,"context_line":"            LOG.debug(\u0027Failed to authenticate to remote cluster at %s as %s.\u0027,"},{"line_number":817,"context_line":"                      address, username)"},{"line_number":818,"context_line":"            raise exception.NotAuthorized(_(\u0027Authentication failure.\u0027))"},{"line_number":819,"context_line":"        result \u003d response.json()"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_d97a8fb8","line":816,"range":{"start_line":816,"start_character":16,"end_line":816,"end_character":21},"updated":"2018-03-13 23:36:49.000000000","message":"should this not be an error?","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"66531be2c48ef1a30466ce5a420ff1729452b36a","unresolved":false,"context_lines":[{"line_number":813,"context_line":"                                data\u003d{\u0027username\u0027: username,"},{"line_number":814,"context_line":"                                      \u0027password\u0027: password})"},{"line_number":815,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":816,"context_line":"            LOG.debug(\u0027Failed to authenticate to remote cluster at %s as %s.\u0027,"},{"line_number":817,"context_line":"                      address, username)"},{"line_number":818,"context_line":"            raise exception.NotAuthorized(_(\u0027Authentication failure.\u0027))"},{"line_number":819,"context_line":"        result \u003d response.json()"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_62de2312","line":816,"range":{"start_line":816,"start_character":16,"end_line":816,"end_character":21},"in_reply_to":"df7087c5_d97a8fb8","updated":"2018-03-14 07:23:28.000000000","message":"Done","commit_id":"b0f39f04dd70c29894649da3b59c30dded1a3e9e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f4ebf2d8acd198aef144d52eb655ef04941f2295","unresolved":false,"context_lines":[{"line_number":796,"context_line":"        response \u003d session.request(method, full_url, **kwargs)"},{"line_number":797,"context_line":"        if path \u003d\u003d self._update_object:"},{"line_number":798,"context_line":"            return True"},{"line_number":799,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":800,"context_line":"            LOG.error(\u0027Access API operation failed due to HTTP bad request.\u0027)"},{"line_number":801,"context_line":"            return False"},{"line_number":802,"context_line":"        result \u003d response.json()"}],"source_content_type":"text/x-python","patch_set":9,"id":"df7087c5_cdc2b759","line":799,"range":{"start_line":799,"start_character":8,"end_line":799,"end_character":50},"updated":"2018-03-14 14:55:35.000000000","message":"Still feel like there is something more that should be done here.  At least reporting what the error code was.  Question stands as to whether there is any debug information that comes back from your storage backend.","commit_id":"47fbf1ef7106a2af5adb3c2dc073df911d7efb2f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"fe0796d16a0c6dc3fc0bac735552c377fc68d95f","unresolved":false,"context_lines":[{"line_number":796,"context_line":"        response \u003d session.request(method, full_url, **kwargs)"},{"line_number":797,"context_line":"        if path \u003d\u003d self._update_object:"},{"line_number":798,"context_line":"            return True"},{"line_number":799,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":800,"context_line":"            LOG.error(\u0027Access API operation failed due to HTTP bad request.\u0027)"},{"line_number":801,"context_line":"            return False"},{"line_number":802,"context_line":"        result \u003d response.json()"}],"source_content_type":"text/x-python","patch_set":9,"id":"df7087c5_30cf0757","line":799,"range":{"start_line":799,"start_character":8,"end_line":799,"end_character":50},"in_reply_to":"df7087c5_32db8f7c","updated":"2018-03-14 18:02:02.000000000","message":"Ok, that is somewhat better.","commit_id":"47fbf1ef7106a2af5adb3c2dc073df911d7efb2f"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"7832de64e7ba876fc59065302e170b9931187223","unresolved":false,"context_lines":[{"line_number":796,"context_line":"        response \u003d session.request(method, full_url, **kwargs)"},{"line_number":797,"context_line":"        if path \u003d\u003d self._update_object:"},{"line_number":798,"context_line":"            return True"},{"line_number":799,"context_line":"        if response.status_code !\u003d http_client.OK:"},{"line_number":800,"context_line":"            LOG.error(\u0027Access API operation failed due to HTTP bad request.\u0027)"},{"line_number":801,"context_line":"            return False"},{"line_number":802,"context_line":"        result \u003d response.json()"}],"source_content_type":"text/x-python","patch_set":9,"id":"df7087c5_32db8f7c","line":799,"range":{"start_line":799,"start_character":8,"end_line":799,"end_character":50},"in_reply_to":"df7087c5_cdc2b759","updated":"2018-03-14 16:40:11.000000000","message":"Adding error code in log message.\nUnfortunately backend does not return any more debug information.","commit_id":"47fbf1ef7106a2af5adb3c2dc073df911d7efb2f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"feec766199497925025ea0a77c26e49a9edee806","unresolved":false,"context_lines":[{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    def _authenticate_access(self, address, username, password):"},{"line_number":807,"context_line":"        session \u003d requests.session()"},{"line_number":808,"context_line":"        session.verify \u003d False"},{"line_number":809,"context_line":"        session.auth \u003d NoAuth()"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        # Here \u0027address\u0027 will be only IPv4."}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_2b68da1a","line":808,"range":{"start_line":808,"start_character":25,"end_line":808,"end_character":30},"updated":"2018-03-15 14:46:19.000000000","message":"This needs to be enabled if driver_ssl_cert_verify is enabled.","commit_id":"5fb80df0fe780393b5e2e517e83af0f90ac0ee7e"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"ef69e3eada28315027bcd03c2d440353d4805527","unresolved":false,"context_lines":[{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    def _authenticate_access(self, address, username, password):"},{"line_number":807,"context_line":"        session \u003d requests.session()"},{"line_number":808,"context_line":"        session.verify \u003d False"},{"line_number":809,"context_line":"        session.auth \u003d NoAuth()"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        # Here \u0027address\u0027 will be only IPv4."}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_de7f9e63","line":808,"range":{"start_line":808,"start_character":25,"end_line":808,"end_character":30},"in_reply_to":"df7087c5_2b68da1a","updated":"2018-03-15 14:58:01.000000000","message":"But if there is no SSL certificate validation at backend. Then It should be False, right.","commit_id":"5fb80df0fe780393b5e2e517e83af0f90ac0ee7e"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"7c594de8999ba589f5b8c9ad9d02c52696f87234","unresolved":false,"context_lines":[{"line_number":805,"context_line":""},{"line_number":806,"context_line":"    def _authenticate_access(self, address, username, password):"},{"line_number":807,"context_line":"        session \u003d requests.session()"},{"line_number":808,"context_line":"        session.verify \u003d False"},{"line_number":809,"context_line":"        session.auth \u003d NoAuth()"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        # Here \u0027address\u0027 will be only IPv4."}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_6d0d81e6","line":808,"range":{"start_line":808,"start_character":25,"end_line":808,"end_character":30},"in_reply_to":"df7087c5_2b68da1a","updated":"2018-03-15 18:44:50.000000000","message":"Done","commit_id":"5fb80df0fe780393b5e2e517e83af0f90ac0ee7e"}],"doc/source/configuration/block-storage/drivers/veritas-access-iscsi-driver.rst":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"dcfbae9f66d0c79335fa3dff6a508015be13126e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Veritas ACCESS iSCSI driver"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"df7087c5_f973c514","line":1,"updated":"2018-03-14 12:17:24.000000000","message":"You will need to link to this in doc/source/configuration/block-storage/volume-drivers.rst","commit_id":"0f8c27a75f87a6f4d4a8fcff3386da0cd87fed12"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f4ebf2d8acd198aef144d52eb655ef04941f2295","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Veritas Access is a software-defined scale-out network-attached"},{"line_number":6,"context_line":"storage (NAS) solution for unstructured data that works on commodity"},{"line_number":7,"context_line":"hardware and takes advantage of placing data on premise or the"},{"line_number":8,"context_line":"cloud based on intelligent policies. Through Veritas Access iSCSI"},{"line_number":9,"context_line":"Driver, OpenStack Block Storage can use Veritas Access backend as a"},{"line_number":10,"context_line":"block storage resource. The driver enables you to create iSCSI volumes"},{"line_number":11,"context_line":"that an OpenStack Block Storage server can allocate to any virtual machine"}],"source_content_type":"text/x-rst","patch_set":9,"id":"df7087c5_6da84b8b","line":8,"range":{"start_line":7,"start_character":56,"end_line":8,"end_character":5},"updated":"2018-03-14 14:55:35.000000000","message":"or in the cloud","commit_id":"47fbf1ef7106a2af5adb3c2dc073df911d7efb2f"},{"author":{"_account_id":25838,"name":"Mayur Indalkar","email":"mayur.indalkar@veritas.com","username":"mayurindalkar"},"change_message_id":"7832de64e7ba876fc59065302e170b9931187223","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Veritas Access is a software-defined scale-out network-attached"},{"line_number":6,"context_line":"storage (NAS) solution for unstructured data that works on commodity"},{"line_number":7,"context_line":"hardware and takes advantage of placing data on premise or the"},{"line_number":8,"context_line":"cloud based on intelligent policies. Through Veritas Access iSCSI"},{"line_number":9,"context_line":"Driver, OpenStack Block Storage can use Veritas Access backend as a"},{"line_number":10,"context_line":"block storage resource. The driver enables you to create iSCSI volumes"},{"line_number":11,"context_line":"that an OpenStack Block Storage server can allocate to any virtual machine"}],"source_content_type":"text/x-rst","patch_set":9,"id":"df7087c5_f2b2f748","line":8,"range":{"start_line":7,"start_character":56,"end_line":8,"end_character":5},"in_reply_to":"df7087c5_6da84b8b","updated":"2018-03-14 16:40:11.000000000","message":"Done","commit_id":"47fbf1ef7106a2af5adb3c2dc073df911d7efb2f"}]}
