)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9105cbda4713bcba8b150adfe1090c6d528d54a2","unresolved":true,"context_lines":[{"line_number":10,"context_line":"to talk to the rbd-target-api on the ceph iscsi gateway node."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The rbd-target-api is a python script meant to keep ceph iscsi gw nodes in"},{"line_number":13,"context_line":"sync with each other, but the API is works for creating iscsi targets."},{"line_number":14,"context_line":"This is a new driver that makes heavy use of the ceph-iscsi project\u0027s"},{"line_number":15,"context_line":"rbd-target-api python REST client here:"},{"line_number":16,"context_line":"https://github.com/ceph/ceph-iscsi"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"5facfcc1_a0e26c03","line":13,"range":{"start_line":13,"start_character":34,"end_line":13,"end_character":36},"updated":"2021-01-14 13:54:53.000000000","message":"Nit, if you push another patch remove the \u0027is\u0027 here.","commit_id":"471036d2cd108289942b868c6d0fad0ac35677f4"}],"cinder/tests/unit/volume/drivers/ceph/fake_rbd_iscsi_client.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7ee204d0a4d798ce9423eb4cccd71bee485cd41f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#"},{"line_number":13,"context_line":"\"\"\"Fake rbd-iscsi-client for testing without installing the client.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"import sys"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinder.tests.unit.volume.drivers.ceph \\"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_51d74850","line":15,"updated":"2020-07-07 23:54:34.000000000","message":"pep8: C337: Unit tests should use the standard library \"mock\" module, not the third party mock lib.","commit_id":"22931338e785582cc560ea582a509713ac30a9d8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7ee204d0a4d798ce9423eb4cccd71bee485cd41f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"\"\"\"Fake rbd-iscsi-client for testing without installing the client.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"import sys"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinder.tests.unit.volume.drivers.ceph \\"},{"line_number":19,"context_line":"    import fake_rbd_iscsi_client_exceptions as clientexceptions"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_b1e6a443","line":16,"updated":"2020-07-07 23:54:34.000000000","message":"pep8: I100 Import statements are in the wrong order. \u0027import sys\u0027 should be before \u0027import mock\u0027 and in a different group.","commit_id":"22931338e785582cc560ea582a509713ac30a9d8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7ee204d0a4d798ce9423eb4cccd71bee485cd41f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"\"\"\"Fake rbd-iscsi-client for testing without installing the client.\"\"\""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"import sys"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinder.tests.unit.volume.drivers.ceph \\"},{"line_number":19,"context_line":"    import fake_rbd_iscsi_client_exceptions as clientexceptions"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_91e1e02d","line":16,"updated":"2020-07-07 23:54:34.000000000","message":"pep8: I201 Missing newline between import groups. \u0027import sys\u0027 is identified as Stdlib and \u0027import mock\u0027 is identified as Third Party.","commit_id":"22931338e785582cc560ea582a509713ac30a9d8"}],"cinder/tests/unit/volume/drivers/ceph/test_rbd_iscsi.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7ee204d0a4d798ce9423eb4cccd71bee485cd41f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import ddt"},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from cinder import context"},{"line_number":21,"context_line":"from cinder import exception"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_f1d13c59","line":18,"updated":"2020-07-07 23:54:34.000000000","message":"pep8: C337: Unit tests should use the standard library \"mock\" module, not the third party mock lib.","commit_id":"22931338e785582cc560ea582a509713ac30a9d8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17799ded88b87a4e81439bb294a61d04eaf3ff94","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            self.driver.do_setup(None)"},{"line_number":241,"context_line":"            if status \u003d\u003d \u0027200\u0027:"},{"line_number":242,"context_line":"                actual_response \u003d self.driver._get_config()"},{"line_number":243,"context_line":"                self.assertEqual(actual_response, body)"},{"line_number":244,"context_line":"            else:"},{"line_number":245,"context_line":"                # we expect an exception"},{"line_number":246,"context_line":"                self.assertRaises(exception.VolumeBackendAPIException,"}],"source_content_type":"text/x-python","patch_set":25,"id":"9f560f44_64e90119","line":243,"range":{"start_line":243,"start_character":33,"end_line":243,"end_character":55},"updated":"2020-07-30 17:15:26.000000000","message":"These should be (EXPECTED, ACTUAL)","commit_id":"071ce4b305bff4e0e491020c4e55b392bc3c863f"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"c3b37a81fe877b9913d4f65a6da43a0cb0c8866a","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            self.driver.do_setup(None)"},{"line_number":241,"context_line":"            if status \u003d\u003d \u0027200\u0027:"},{"line_number":242,"context_line":"                actual_response \u003d self.driver._get_config()"},{"line_number":243,"context_line":"                self.assertEqual(actual_response, body)"},{"line_number":244,"context_line":"            else:"},{"line_number":245,"context_line":"                # we expect an exception"},{"line_number":246,"context_line":"                self.assertRaises(exception.VolumeBackendAPIException,"}],"source_content_type":"text/x-python","patch_set":25,"id":"9f560f44_9bfaaf72","line":243,"range":{"start_line":243,"start_character":33,"end_line":243,"end_character":55},"in_reply_to":"9f560f44_64e90119","updated":"2020-07-30 19:18:33.000000000","message":"Done","commit_id":"071ce4b305bff4e0e491020c4e55b392bc3c863f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6fc26e4b6f2c32c4da645e28a9f3fab0786fe94e","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        config.rbd_cluster_name \u003d \u0027nondefault\u0027"},{"line_number":89,"context_line":"        config.rbd_pool \u003d \u0027rbd\u0027"},{"line_number":90,"context_line":"        config.rbd_ceph_conf \u003d \u0027/etc/ceph/my_ceph.conf\u0027"},{"line_number":91,"context_line":"        config.rbd_keyring_conf \u003d \u0027/etc/ceph/my_ceph.client.keyring\u0027"},{"line_number":92,"context_line":"        config.rbd_secret_uuid \u003d None"},{"line_number":93,"context_line":"        config.rbd_user \u003d \u0027cinder\u0027"},{"line_number":94,"context_line":"        config.volume_backend_name \u003d None"}],"source_content_type":"text/x-python","patch_set":45,"id":"ea5eb3d8_105a134a","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":68},"updated":"2021-01-27 04:24:38.000000000","message":"I don\u0027t think this is being used anywhere (plus, the option was removed in victoria)","commit_id":"e87aab6dee5153f69890b4cf10e384429e667402"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1cd531360f45928f9d4b6cbe0afe8f0db7f9ef60","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        config.rbd_cluster_name \u003d \u0027nondefault\u0027"},{"line_number":89,"context_line":"        config.rbd_pool \u003d \u0027rbd\u0027"},{"line_number":90,"context_line":"        config.rbd_ceph_conf \u003d \u0027/etc/ceph/my_ceph.conf\u0027"},{"line_number":91,"context_line":"        config.rbd_keyring_conf \u003d \u0027/etc/ceph/my_ceph.client.keyring\u0027"},{"line_number":92,"context_line":"        config.rbd_secret_uuid \u003d None"},{"line_number":93,"context_line":"        config.rbd_user \u003d \u0027cinder\u0027"},{"line_number":94,"context_line":"        config.volume_backend_name \u003d None"}],"source_content_type":"text/x-python","patch_set":45,"id":"0ec10273_abd33cb8","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":68},"in_reply_to":"ea5eb3d8_105a134a","updated":"2021-01-27 13:59:06.000000000","message":"Done","commit_id":"e87aab6dee5153f69890b4cf10e384429e667402"}],"cinder/volume/drivers/ceph/rbd-iscsi.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b00006897facf537cf2405fcb136b60d0da1b861","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2019 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_6d6ee300","line":1,"updated":"2019-06-14 16:08:13.000000000","message":"Don\u0027t attribute the copyright to the foundation unless you are an employee.","commit_id":"bbd2c2b0e4cd8fd77448fa37b2d5d82f20f1b354"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"9c6a63708a5e3738237cbdc7d8fee9cdd9ce8ebe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2019 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_30acc0eb","line":1,"in_reply_to":"9fb8cfa7_6d6ee300","updated":"2019-06-14 16:25:52.000000000","message":"Done","commit_id":"bbd2c2b0e4cd8fd77448fa37b2d5d82f20f1b354"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b00006897facf537cf2405fcb136b60d0da1b861","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":"\"\"\"RADOS Block Device iSCSI Driver\"\"\""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from __future__ import absolute_import"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_2d746bce","line":16,"updated":"2019-06-14 16:08:13.000000000","message":"Is this needed?","commit_id":"bbd2c2b0e4cd8fd77448fa37b2d5d82f20f1b354"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"9c6a63708a5e3738237cbdc7d8fee9cdd9ce8ebe","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":"\"\"\"RADOS Block Device iSCSI Driver\"\"\""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from __future__ import absolute_import"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_104dfc3c","line":16,"in_reply_to":"9fb8cfa7_2d746bce","updated":"2019-06-14 16:25:52.000000000","message":"Done","commit_id":"bbd2c2b0e4cd8fd77448fa37b2d5d82f20f1b354"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b00006897facf537cf2405fcb136b60d0da1b861","unresolved":false,"context_lines":[{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"RBD_ISCSI_OPTS \u003d ["},{"line_number":33,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_user\u0027,"},{"line_number":34,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":35,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_password\u0027,"},{"line_number":36,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_ed7973c4","line":33,"updated":"2019-06-14 16:08:13.000000000","message":"Can\u0027t we use the existing san_* config options?","commit_id":"bbd2c2b0e4cd8fd77448fa37b2d5d82f20f1b354"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"9c6a63708a5e3738237cbdc7d8fee9cdd9ce8ebe","unresolved":false,"context_lines":[{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"RBD_ISCSI_OPTS \u003d ["},{"line_number":33,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_user\u0027,"},{"line_number":34,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":35,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_password\u0027,"},{"line_number":36,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_3095a087","line":33,"in_reply_to":"9fb8cfa7_ed7973c4","updated":"2019-06-14 16:25:52.000000000","message":"This is the username for the rest API service,\nmaybe I should name it rbd_iscsi_api_username ?","commit_id":"bbd2c2b0e4cd8fd77448fa37b2d5d82f20f1b354"}],"cinder/volume/drivers/ceph/rbd_iscsi.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"7a9d9d1759553c2089853a18f66a8cb23af5f826","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"},{"line_number":44,"context_line":"    cfg.BoolOpt(\u0027rbd_iscsi_debug\u0027,"},{"line_number":45,"context_line":"                default\u003dFalse,"},{"line_number":46,"context_line":"                help\u003d\u0027Enable client request debugging.\u0027),"},{"line_number":47,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_target_iqn\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_dd81874c","line":44,"range":{"start_line":44,"start_character":17,"end_line":44,"end_character":32},"updated":"2019-06-18 17:26:03.000000000","message":"I would like to not introduce a new option here. Can we use cinder\u0027s debug option here?","commit_id":"e1915c347de859cb714d20cd1a379023b1c8e72e"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"dd286d6103bb3eb464407831aded91044b35dc9e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"},{"line_number":44,"context_line":"    cfg.BoolOpt(\u0027rbd_iscsi_debug\u0027,"},{"line_number":45,"context_line":"                default\u003dFalse,"},{"line_number":46,"context_line":"                help\u003d\u0027Enable client request debugging.\u0027),"},{"line_number":47,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_target_iqn\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_41eda323","line":44,"range":{"start_line":44,"start_character":17,"end_line":44,"end_character":32},"in_reply_to":"9fb8cfa7_dd81874c","updated":"2019-06-19 16:56:44.000000000","message":"So, this is for debugging all of the REST calls to the ceph-iscsi service itself in case things go wrong.  You don\u0027t always want this on, just because cinder\u0027s debug is on.  It\u0027s way too much noise.\n\nI can change the name to rbd_iscsi_api_debug","commit_id":"e1915c347de859cb714d20cd1a379023b1c8e72e"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"571dcfc4271216fbfcbc855e55c445c4fca20085","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _create_client(self):"},{"line_number":86,"context_line":"        config \u003d self.configuration"},{"line_number":87,"context_line":"        cl \u003d client.RBDISCSIClient("},{"line_number":88,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_user\u0027),"},{"line_number":89,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_password\u0027),"},{"line_number":90,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_url\u0027))"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_1e4b8687","line":87,"updated":"2019-06-19 14:30:56.000000000","message":"This should leverage Cinder\u0027s \"driver_ssl_cert_verify\" option to enable SSL cert verification.","commit_id":"e1915c347de859cb714d20cd1a379023b1c8e72e"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"dd286d6103bb3eb464407831aded91044b35dc9e","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def _create_client(self):"},{"line_number":86,"context_line":"        config \u003d self.configuration"},{"line_number":87,"context_line":"        cl \u003d client.RBDISCSIClient("},{"line_number":88,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_user\u0027),"},{"line_number":89,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_password\u0027),"},{"line_number":90,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_url\u0027))"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_e1db774c","line":87,"in_reply_to":"9fb8cfa7_1e4b8687","updated":"2019-06-19 16:56:44.000000000","message":"The client has a flag to verify the ssl cert, I\u0027ll pass it along.","commit_id":"e1915c347de859cb714d20cd1a379023b1c8e72e"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"7a9d9d1759553c2089853a18f66a8cb23af5f826","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        if client is None:"},{"line_number":109,"context_line":"            msg \u003d _(\"You must install rbd-iscsi-client python package \""},{"line_number":110,"context_line":"                    \"before using this driver.\")"},{"line_number":111,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # Make sure we have the basic settings we need to talk to the"},{"line_number":114,"context_line":"        # iscsi api service"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_7dc41b93","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":53},"updated":"2019-06-18 17:26:03.000000000","message":"It should be InvalidConfigurationValue or VolumeDriverException exception here","commit_id":"e1915c347de859cb714d20cd1a379023b1c8e72e"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"dd286d6103bb3eb464407831aded91044b35dc9e","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        if client is None:"},{"line_number":109,"context_line":"            msg \u003d _(\"You must install rbd-iscsi-client python package \""},{"line_number":110,"context_line":"                    \"before using this driver.\")"},{"line_number":111,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # Make sure we have the basic settings we need to talk to the"},{"line_number":114,"context_line":"        # iscsi api service"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_21d18f58","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":53},"in_reply_to":"9fb8cfa7_7dc41b93","updated":"2019-06-19 16:56:44.000000000","message":"Done","commit_id":"e1915c347de859cb714d20cd1a379023b1c8e72e"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"7a9d9d1759553c2089853a18f66a8cb23af5f826","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        resp, body \u003d self.client.get_api()"},{"line_number":119,"context_line":"        if not resp or \u0027status\u0027 not in resp or resp[\u0027status\u0027] !\u003d 200:"},{"line_number":120,"context_line":"            # failed to fetch the open api url"},{"line_number":121,"context_line":"            raise exception.InvalidConfigurationValue("},{"line_number":122,"context_line":"                option\u003d\u0027rbd_iscsi_api_url\u0027,"},{"line_number":123,"context_line":"                value\u003d\u0027Could not talk to the rbd-target-api\u0027)"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_3dbea3ff","line":121,"range":{"start_line":121,"start_character":28,"end_line":121,"end_character":53},"updated":"2019-06-18 17:26:03.000000000","message":"Maybe VolumeBackendAPIException will be better here, but I\u0027m not sure about this case","commit_id":"e1915c347de859cb714d20cd1a379023b1c8e72e"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"dd286d6103bb3eb464407831aded91044b35dc9e","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        resp, body \u003d self.client.get_api()"},{"line_number":119,"context_line":"        if not resp or \u0027status\u0027 not in resp or resp[\u0027status\u0027] !\u003d 200:"},{"line_number":120,"context_line":"            # failed to fetch the open api url"},{"line_number":121,"context_line":"            raise exception.InvalidConfigurationValue("},{"line_number":122,"context_line":"                option\u003d\u0027rbd_iscsi_api_url\u0027,"},{"line_number":123,"context_line":"                value\u003d\u0027Could not talk to the rbd-target-api\u0027)"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_c1c19382","line":121,"range":{"start_line":121,"start_character":28,"end_line":121,"end_character":53},"in_reply_to":"9fb8cfa7_3dbea3ff","updated":"2019-06-19 16:56:44.000000000","message":"either one works I think.\nThe failure could be because of a bogus url, or the service not responding correctly.","commit_id":"e1915c347de859cb714d20cd1a379023b1c8e72e"},{"author":{"_account_id":22997,"name":"xinliang","email":"xinliang.liu@linaro.org","username":"xinliang.liu"},"change_message_id":"72b4e7414723150dca7f2b507ba60b6747b889a3","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from cinder.i18n import _"},{"line_number":20,"context_line":"from cinder import interface"},{"line_number":21,"context_line":"from cinder import utils"},{"line_number":22,"context_line":"from cinder.volume import utils as volume_utils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from cinder.volume.drivers import rbd"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"bf51134e_9beca82a","line":22,"range":{"start_line":22,"start_character":19,"end_line":22,"end_character":47},"updated":"2020-07-02 07:31:18.000000000","message":"Should be \"import volume_utils\" now, volume.utils has been rename to volume.volume_utils.","commit_id":"daab7f747595b7a81f8da5786c45e8d63f3e4166"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7ee204d0a4d798ce9423eb4cccd71bee485cd41f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"\"\"\"RADOS Block Device iSCSI Driver\"\"\""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from distutils import version"},{"line_number":15,"context_line":"from oslo_config import cfg"},{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinder import exception"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_d1d4f849","line":15,"updated":"2020-07-07 23:54:34.000000000","message":"pep8: I201 Missing newline between import groups. \u0027from oslo_config import cfg\u0027 is identified as Third Party and \u0027from distutils import version\u0027 is identified as Stdlib.","commit_id":"22931338e785582cc560ea582a509713ac30a9d8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7ee204d0a4d798ce9423eb4cccd71bee485cd41f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from cinder import utils"},{"line_number":22,"context_line":"from cinder.volume import volume_utils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from cinder.volume.drivers import rbd"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"try:"},{"line_number":27,"context_line":"    import rbd_iscsi_client"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_31cc54bb","line":24,"updated":"2020-07-07 23:54:34.000000000","message":"pep8: I202 Additional newline in a group of imports. \u0027from cinder.volume.drivers import rbd\u0027 is identified as Application and \u0027from cinder.volume import volume_utils\u0027 is identified as Application.","commit_id":"22931338e785582cc560ea582a509713ac30a9d8"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ce6374e801c14685e6e8c937f80a0bccee20a134","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_user\u0027,"},{"line_number":39,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_password\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"}],"source_content_type":"text/x-python","patch_set":17,"id":"bf51134e_2547921f","line":41,"updated":"2020-07-14 15:58:27.000000000","message":"Should have secret\u003dTrue for this option.","commit_id":"554097d244e952522c39d66b38ecd08a6f8371c8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"b47f75260dae1f2ffb89e878059797ef128df99a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_user\u0027,"},{"line_number":39,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_password\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"}],"source_content_type":"text/x-python","patch_set":17,"id":"bf51134e_e8e731e2","line":41,"in_reply_to":"bf51134e_2547921f","updated":"2020-07-14 17:00:48.000000000","message":"Done","commit_id":"554097d244e952522c39d66b38ecd08a6f8371c8"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2554e0e5f646021e48e00fbb0e3de247ee273455","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_user\u0027,"},{"line_number":39,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_password\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_7931bfa2","line":41,"updated":"2020-07-29 14:38:46.000000000","message":"Need secret\u003dTrue set for this option.","commit_id":"da1584283a5d953491ef80d5d8160aba3eb85e16"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"243ae5505c20961f73fdba8a7f399113e78621a7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_user\u0027,"},{"line_number":39,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":40,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_password\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_0bac9b32","line":41,"in_reply_to":"9f560f44_7931bfa2","updated":"2020-07-30 12:45:43.000000000","message":"good catch thanks","commit_id":"da1584283a5d953491ef80d5d8160aba3eb85e16"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2554e0e5f646021e48e00fbb0e3de247ee273455","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        iscsi_config \u003d self._get_config()"},{"line_number":369,"context_line":"        target_info \u003d iscsi_config[\u0027targets\u0027][self.target_iqn]"},{"line_number":370,"context_line":"        ips \u003d target_info[\u0027ip_list\u0027]"},{"line_number":371,"context_line":"        target_portal \u003d \"%s:3260\" % ips[0]"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        data \u003d {"},{"line_number":374,"context_line":"            \u0027driver_volume_type\u0027: \u0027iscsi\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_59031bb9","line":371,"range":{"start_line":371,"start_character":24,"end_line":371,"end_character":42},"updated":"2020-07-29 14:38:46.000000000","message":"I believe this will fail on IPv6 addresses.","commit_id":"da1584283a5d953491ef80d5d8160aba3eb85e16"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"811ea9a6ad806cb7d4246f4ee3e6f38fc1fa4ca2","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        iscsi_config \u003d self._get_config()"},{"line_number":369,"context_line":"        target_info \u003d iscsi_config[\u0027targets\u0027][self.target_iqn]"},{"line_number":370,"context_line":"        ips \u003d target_info[\u0027ip_list\u0027]"},{"line_number":371,"context_line":"        target_portal \u003d \"%s:3260\" % ips[0]"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        data \u003d {"},{"line_number":374,"context_line":"            \u0027driver_volume_type\u0027: \u0027iscsi\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_b987d70f","line":371,"range":{"start_line":371,"start_character":24,"end_line":371,"end_character":42},"in_reply_to":"9f560f44_59031bb9","updated":"2020-07-29 14:42:37.000000000","message":"Shouldn\u0027t we also be using the target_port config setting for this?","commit_id":"da1584283a5d953491ef80d5d8160aba3eb85e16"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"243ae5505c20961f73fdba8a7f399113e78621a7","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        iscsi_config \u003d self._get_config()"},{"line_number":369,"context_line":"        target_info \u003d iscsi_config[\u0027targets\u0027][self.target_iqn]"},{"line_number":370,"context_line":"        ips \u003d target_info[\u0027ip_list\u0027]"},{"line_number":371,"context_line":"        target_portal \u003d \"%s:3260\" % ips[0]"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        data \u003d {"},{"line_number":374,"context_line":"            \u0027driver_volume_type\u0027: \u0027iscsi\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_862262a3","line":371,"range":{"start_line":371,"start_character":24,"end_line":371,"end_character":42},"in_reply_to":"9f560f44_b987d70f","updated":"2020-07-30 12:45:43.000000000","message":"unfortunately, there is no way to specify the port number in the rbd-target-api provided by ceph-iscsi package.  It automatically uses 3260 behind the scenes and you can see that in the targetcli list after the iqn and gateway are created.\n\nI can just omit the port as part of the portal address and it should work, as I believe 3260 is the default port that iscsiadm uses for discovery.","commit_id":"da1584283a5d953491ef80d5d8160aba3eb85e16"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"5a97359c661c2f0268c23f44492cd0dcb92f78ef","unresolved":false,"context_lines":[{"line_number":387,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Unexport the volume from the gateway.\"\"\""},{"line_number":389,"context_line":"        iscsi_config \u003d self._get_config()"},{"line_number":390,"context_line":"        initiator_iqn \u003d connector[\u0027initiator\u0027]"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        # remove the disk from the client."},{"line_number":393,"context_line":"        self.unexport_disk(initiator_iqn, volume.name, iscsi_config)"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_c5f499d2","line":390,"range":{"start_line":390,"start_character":0,"end_line":390,"end_character":46},"updated":"2020-07-27 02:45:31.000000000","message":"Here should also handle the case that connector is null which is about \"force detach\".\nSee the log below from Cinder Ceph iscsi tempest: VolumesActionsTest:test_force_detach_volume\n\nThe HTTP request body for force_detach is like:\n \u0027{\"os-force_detach\": {\"connector\": null, \"attachment_id\": \"814b392c-537a-4c42-b49f-1ffc7a9b7d1a\"}}\u0027, which will induce the problem about list access overread.\n\nI think we should have a force_detach method to handle this problem: like\nhttps://opendev.org/openstack/cinder/src/commit/fc1d983e4ea23d5852cec1d728103996794bedc2/cinder/volume/drivers/dell_emc/vnx/adapter.py#L1030","commit_id":"da1584283a5d953491ef80d5d8160aba3eb85e16"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"243ae5505c20961f73fdba8a7f399113e78621a7","unresolved":false,"context_lines":[{"line_number":387,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":388,"context_line":"        \"\"\"Unexport the volume from the gateway.\"\"\""},{"line_number":389,"context_line":"        iscsi_config \u003d self._get_config()"},{"line_number":390,"context_line":"        initiator_iqn \u003d connector[\u0027initiator\u0027]"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        # remove the disk from the client."},{"line_number":393,"context_line":"        self.unexport_disk(initiator_iqn, volume.name, iscsi_config)"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_abac8f35","line":390,"range":{"start_line":390,"start_character":0,"end_line":390,"end_character":46},"in_reply_to":"9f560f44_c5f499d2","updated":"2020-07-30 12:45:43.000000000","message":"I started working on this, and from what I can tell, a force detach also detaches all volumes exported?   I have tried to call the rbd-target-api to fetch all the targets and that api fails now, so I\u0027m stuck at the moment.","commit_id":"da1584283a5d953491ef80d5d8160aba3eb85e16"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"19876ed40613f360de6c7f667f581bec82e506dd","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        if client is None:"},{"line_number":123,"context_line":"            msg \u003d _(\"You must install rbd-iscsi-client python package \""},{"line_number":124,"context_line":"                    \"before using this driver.\")"},{"line_number":125,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # Make sure we have the basic settings we need to talk to the"},{"line_number":128,"context_line":"        # iscsi api service"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f560f44_1ea20daf","line":125,"range":{"start_line":125,"start_character":28,"end_line":125,"end_character":53},"updated":"2020-07-30 20:06:09.000000000","message":"Please, change to VolumeDriverException here","commit_id":"622a9e190ac657b127a1cfd7f53cab41282a4130"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17799ded88b87a4e81439bb294a61d04eaf3ff94","unresolved":false,"context_lines":[{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"RBD_ISCSI_OPTS \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_user\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_password\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               secret\u003dTrue,"},{"line_number":45,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":47,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":48,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"},{"line_number":49,"context_line":"    cfg.BoolOpt(\u0027rbd_iscsi_api_debug\u0027,"},{"line_number":50,"context_line":"                default\u003dFalse,"},{"line_number":51,"context_line":"                help\u003d\u0027Enable client request debugging.\u0027),"}],"source_content_type":"text/x-python","patch_set":25,"id":"9f560f44_e4c51190","line":48,"range":{"start_line":39,"start_character":4,"end_line":48,"end_character":61},"updated":"2020-07-30 17:15:26.000000000","message":"Is there a reason we need these instead of using the standard san_ip, san_login, and san_password?","commit_id":"071ce4b305bff4e0e491020c4e55b392bc3c863f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"57c13b5da6aea24908121bcacdde1c8fb08a9390","unresolved":false,"context_lines":[{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"RBD_ISCSI_OPTS \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_user\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_password\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               secret\u003dTrue,"},{"line_number":45,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":47,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":48,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"},{"line_number":49,"context_line":"    cfg.BoolOpt(\u0027rbd_iscsi_api_debug\u0027,"},{"line_number":50,"context_line":"                default\u003dFalse,"},{"line_number":51,"context_line":"                help\u003d\u0027Enable client request debugging.\u0027),"}],"source_content_type":"text/x-python","patch_set":25,"id":"9f560f44_9bb2af93","line":48,"range":{"start_line":39,"start_character":4,"end_line":48,"end_character":61},"in_reply_to":"9f560f44_1bde9f10","updated":"2020-07-30 19:30:55.000000000","message":"Is there a reason they couldn\u0027t be used though? We\u0027ve been making an effort over the last several releases to try to reduce config options and avoid introducing new ones by using the \"standard\" config options wherever possible. It seems like these existing ones are exactly the same conceptually, if you avoid debating whether a CEPH cluster should be considered a SAN or not.","commit_id":"071ce4b305bff4e0e491020c4e55b392bc3c863f"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"c3b37a81fe877b9913d4f65a6da43a0cb0c8866a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"RBD_ISCSI_OPTS \u003d ["},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_user\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":41,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":42,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_password\u0027,"},{"line_number":43,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":44,"context_line":"               secret\u003dTrue,"},{"line_number":45,"context_line":"               help\u003d\u0027The username for the rbd_target_api service\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":47,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":48,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"},{"line_number":49,"context_line":"    cfg.BoolOpt(\u0027rbd_iscsi_api_debug\u0027,"},{"line_number":50,"context_line":"                default\u003dFalse,"},{"line_number":51,"context_line":"                help\u003d\u0027Enable client request debugging.\u0027),"}],"source_content_type":"text/x-python","patch_set":25,"id":"9f560f44_1bde9f10","line":48,"range":{"start_line":39,"start_character":4,"end_line":48,"end_character":61},"in_reply_to":"9f560f44_e4c51190","updated":"2020-07-30 19:18:33.000000000","message":"because they are for talking to the rbd-target-api, which isn\u0027t a san ip at all.   they are configured separately from ceph, via ceph-iscsi\u0027s /etc/ceph/iscsi-gateway.cfg\n\nhence the name rbd_iscsi_api_*","commit_id":"071ce4b305bff4e0e491020c4e55b392bc3c863f"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"19876ed40613f360de6c7f667f581bec82e506dd","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    # we map all the targets for OpenStack attaches to this."},{"line_number":80,"context_line":"    target_iqn \u003d None"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def __init__(self, active_backend_id\u003dNone, *args, **kwargs):"},{"line_number":83,"context_line":"        super(RBDISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":84,"context_line":"        self.configuration.append_config_values(RBD_ISCSI_OPTS)"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_9ea3bd9e","line":82,"updated":"2020-07-30 20:06:09.000000000","message":"nit: since we don\u0027t support python2 anymore, we can use new syntax for super calls:\nsuper().__init__(*args, **kwargs)","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"68a11738b11c9a3a6fef37b3de89d183e72c2367","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    # we map all the targets for OpenStack attaches to this."},{"line_number":80,"context_line":"    target_iqn \u003d None"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def __init__(self, active_backend_id\u003dNone, *args, **kwargs):"},{"line_number":83,"context_line":"        super(RBDISCSIDriver, self).__init__(*args, **kwargs)"},{"line_number":84,"context_line":"        self.configuration.append_config_values(RBD_ISCSI_OPTS)"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_9f6b8e83","line":82,"in_reply_to":"9f560f44_9ea3bd9e","updated":"2020-08-05 19:14:57.000000000","message":"Done","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"19876ed40613f360de6c7f667f581bec82e506dd","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        if client is None:"},{"line_number":123,"context_line":"            msg \u003d _(\"You must install rbd-iscsi-client python package \""},{"line_number":124,"context_line":"                    \"before using this driver.\")"},{"line_number":125,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # Make sure we have the basic settings we need to talk to the"},{"line_number":128,"context_line":"        # iscsi api service"}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_dead3589","line":125,"updated":"2020-07-30 20:06:09.000000000","message":"Please, change to VolumeDriverException here","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"68a11738b11c9a3a6fef37b3de89d183e72c2367","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        if client is None:"},{"line_number":123,"context_line":"            msg \u003d _(\"You must install rbd-iscsi-client python package \""},{"line_number":124,"context_line":"                    \"before using this driver.\")"},{"line_number":125,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # Make sure we have the basic settings we need to talk to the"},{"line_number":128,"context_line":"        # iscsi api service"}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_3f72427c","line":125,"in_reply_to":"9f560f44_dead3589","updated":"2020-08-05 19:14:57.000000000","message":"Done","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"19876ed40613f360de6c7f667f581bec82e506dd","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                self.client.create_disk(self.configuration.rbd_pool,"},{"line_number":250,"context_line":"                                        volume_name)"},{"line_number":251,"context_line":"            except client_exceptions.ClientException as ex:"},{"line_number":252,"context_line":"                LOG.exception(ex)"},{"line_number":253,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":254,"context_line":"                    data\u003dex.get_description())"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_dec6d548","line":252,"range":{"start_line":252,"start_character":16,"end_line":252,"end_character":33},"updated":"2020-07-30 20:06:09.000000000","message":"We don\u0027t need to pass an exception instance to LOG.exteption. Python will do it itself. Please, add a corresponding log message here","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"68a11738b11c9a3a6fef37b3de89d183e72c2367","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                self.client.create_disk(self.configuration.rbd_pool,"},{"line_number":250,"context_line":"                                        volume_name)"},{"line_number":251,"context_line":"            except client_exceptions.ClientException as ex:"},{"line_number":252,"context_line":"                LOG.exception(ex)"},{"line_number":253,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":254,"context_line":"                    data\u003dex.get_description())"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_ff11ea05","line":252,"range":{"start_line":252,"start_character":16,"end_line":252,"end_character":33},"in_reply_to":"9f560f44_dec6d548","updated":"2020-08-05 19:14:57.000000000","message":"Done","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"19876ed40613f360de6c7f667f581bec82e506dd","unresolved":false,"context_lines":[{"line_number":306,"context_line":"            resp, iscsi_config \u003d self.client.get_config()"},{"line_number":307,"context_line":"            return self._get_lun(iscsi_config, lun_name, initiator_iqn)"},{"line_number":308,"context_line":"        except client_exceptions.ClientException as ex:"},{"line_number":309,"context_line":"            LOG.exception(ex)"},{"line_number":310,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":311,"context_line":"                data\u003dex.get_description())"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_1ede8d10","line":309,"range":{"start_line":309,"start_character":26,"end_line":309,"end_character":28},"updated":"2020-07-30 20:06:09.000000000","message":"The same as above","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"68a11738b11c9a3a6fef37b3de89d183e72c2367","unresolved":false,"context_lines":[{"line_number":306,"context_line":"            resp, iscsi_config \u003d self.client.get_config()"},{"line_number":307,"context_line":"            return self._get_lun(iscsi_config, lun_name, initiator_iqn)"},{"line_number":308,"context_line":"        except client_exceptions.ClientException as ex:"},{"line_number":309,"context_line":"            LOG.exception(ex)"},{"line_number":310,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":311,"context_line":"                data\u003dex.get_description())"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_9f00aead","line":309,"range":{"start_line":309,"start_character":26,"end_line":309,"end_character":28},"in_reply_to":"9f560f44_1ede8d10","updated":"2020-08-05 19:14:57.000000000","message":"Done","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"19876ed40613f360de6c7f667f581bec82e506dd","unresolved":false,"context_lines":[{"line_number":426,"context_line":""},{"line_number":427,"context_line":"            try:"},{"line_number":428,"context_line":"                self.client.delete_client(self.target_iqn, initiator_iqn)"},{"line_number":429,"context_line":"            except client_exceptions.ClientException:"},{"line_number":430,"context_line":"                LOG.warning(\"Tried to delete initiator %(iqn)s, but delete \""},{"line_number":431,"context_line":"                            \"failed.\", {\u0027iqns\u0027: initiator_iqn})"}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_1e2ccd00","line":429,"updated":"2020-07-30 20:06:09.000000000","message":"It would be useful to log exception details at least in the debug mode","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1efd94687056ab17ec62d393a9541b821e5bf070","unresolved":true,"context_lines":[{"line_number":47,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":48,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"},{"line_number":50,"context_line":"    cfg.BoolOpt(\u0027rbd_iscsi_api_debug\u0027,"},{"line_number":51,"context_line":"                default\u003dFalse,"},{"line_number":52,"context_line":"                help\u003d\u0027Enable client request debugging.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_target_iqn\u0027,"}],"source_content_type":"text/x-python","patch_set":40,"id":"5d71d146_3d278276","line":50,"range":{"start_line":50,"start_character":17,"end_line":50,"end_character":36},"updated":"2020-12-04 15:29:37.000000000","message":"I won\u0027t -1 on this, but I really don\u0027t want to introduce a new config option for this","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"82fef64b6271e1d22327b182ec6673ed0aa446b6","unresolved":true,"context_lines":[{"line_number":47,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_api_url\u0027,"},{"line_number":48,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027The url to the rbd_target_api service\u0027),"},{"line_number":50,"context_line":"    cfg.BoolOpt(\u0027rbd_iscsi_api_debug\u0027,"},{"line_number":51,"context_line":"                default\u003dFalse,"},{"line_number":52,"context_line":"                help\u003d\u0027Enable client request debugging.\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027rbd_iscsi_target_iqn\u0027,"}],"source_content_type":"text/x-python","patch_set":40,"id":"9577f1ec_2b27d447","line":50,"range":{"start_line":50,"start_character":17,"end_line":50,"end_character":36},"in_reply_to":"5d71d146_3d278276","updated":"2020-12-05 01:25:19.000000000","message":"This really is helpful to enable when you a dev is working on the driver and wants to see the interaction between the driver and the rbd iscsi api on the other side.   You don\u0027t always want to have this enabled, even when cinder debug is enabled, hence the new option.","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1efd94687056ab17ec62d393a9541b821e5bf070","unresolved":true,"context_lines":[{"line_number":100,"context_line":"        )"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        client_version \u003d rbd_iscsi_client.version"},{"line_number":103,"context_line":"        if (version.StrictVersion(client_version) \u003c"},{"line_number":104,"context_line":"                version.StrictVersion(MIN_CLIENT_VERSION)):"},{"line_number":105,"context_line":"            ex_msg \u003d (_(\u0027Invalid rbd_iscsi_client version found (%(found)s). \u0027"},{"line_number":106,"context_line":"                        \u0027Version %(min)s or greater required. Run \"pip\u0027"},{"line_number":107,"context_line":"                        \u0027 install --upgrade rbd-iscsi-client\" to upgrade\u0027"},{"line_number":108,"context_line":"                        \u0027 the client.\u0027)"},{"line_number":109,"context_line":"                      % {\u0027found\u0027: client_version,"},{"line_number":110,"context_line":"                         \u0027min\u0027: MIN_CLIENT_VERSION})"},{"line_number":111,"context_line":"            LOG.error(ex_msg)"},{"line_number":112,"context_line":"            raise exception.InvalidInput(reason\u003dex_msg)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        return cl"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"7df0662a_be69167b","line":112,"range":{"start_line":103,"start_character":8,"end_line":112,"end_character":55},"updated":"2020-12-04 15:29:37.000000000","message":"Please, move it into the beginning of this method","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"82fef64b6271e1d22327b182ec6673ed0aa446b6","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        )"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        client_version \u003d rbd_iscsi_client.version"},{"line_number":103,"context_line":"        if (version.StrictVersion(client_version) \u003c"},{"line_number":104,"context_line":"                version.StrictVersion(MIN_CLIENT_VERSION)):"},{"line_number":105,"context_line":"            ex_msg \u003d (_(\u0027Invalid rbd_iscsi_client version found (%(found)s). \u0027"},{"line_number":106,"context_line":"                        \u0027Version %(min)s or greater required. Run \"pip\u0027"},{"line_number":107,"context_line":"                        \u0027 install --upgrade rbd-iscsi-client\" to upgrade\u0027"},{"line_number":108,"context_line":"                        \u0027 the client.\u0027)"},{"line_number":109,"context_line":"                      % {\u0027found\u0027: client_version,"},{"line_number":110,"context_line":"                         \u0027min\u0027: MIN_CLIENT_VERSION})"},{"line_number":111,"context_line":"            LOG.error(ex_msg)"},{"line_number":112,"context_line":"            raise exception.InvalidInput(reason\u003dex_msg)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        return cl"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"3d28a727_435fe87c","line":112,"range":{"start_line":103,"start_character":8,"end_line":112,"end_character":55},"in_reply_to":"7df0662a_be69167b","updated":"2020-12-05 01:25:19.000000000","message":"Done","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1efd94687056ab17ec62d393a9541b821e5bf070","unresolved":true,"context_lines":[{"line_number":221,"context_line":"    def _get_lun(self, iscsi_config, lun_name, initiator_iqn):"},{"line_number":222,"context_line":"        lun \u003d None"},{"line_number":223,"context_line":"        target_info \u003d iscsi_config[\u0027targets\u0027][self.target_iqn]"},{"line_number":224,"context_line":"        LOG.warning(\"LUNS %s\", target_info[\u0027clients\u0027])"},{"line_number":225,"context_line":"        luns \u003d target_info[\u0027clients\u0027][initiator_iqn][\u0027luns\u0027]"},{"line_number":226,"context_line":"        if lun_name in luns:"},{"line_number":227,"context_line":"            lun \u003d {\u0027name\u0027: lun_name,"}],"source_content_type":"text/x-python","patch_set":40,"id":"10da0415_97207607","line":224,"range":{"start_line":224,"start_character":8,"end_line":224,"end_character":19},"updated":"2020-12-04 15:29:37.000000000","message":"LOG.warning \u003d\u003e LOG.info","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"82fef64b6271e1d22327b182ec6673ed0aa446b6","unresolved":false,"context_lines":[{"line_number":221,"context_line":"    def _get_lun(self, iscsi_config, lun_name, initiator_iqn):"},{"line_number":222,"context_line":"        lun \u003d None"},{"line_number":223,"context_line":"        target_info \u003d iscsi_config[\u0027targets\u0027][self.target_iqn]"},{"line_number":224,"context_line":"        LOG.warning(\"LUNS %s\", target_info[\u0027clients\u0027])"},{"line_number":225,"context_line":"        luns \u003d target_info[\u0027clients\u0027][initiator_iqn][\u0027luns\u0027]"},{"line_number":226,"context_line":"        if lun_name in luns:"},{"line_number":227,"context_line":"            lun \u003d {\u0027name\u0027: lun_name,"}],"source_content_type":"text/x-python","patch_set":40,"id":"46078009_611b1242","line":224,"range":{"start_line":224,"start_character":8,"end_line":224,"end_character":19},"in_reply_to":"10da0415_97207607","updated":"2020-12-05 01:25:19.000000000","message":"Done","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1efd94687056ab17ec62d393a9541b821e5bf070","unresolved":true,"context_lines":[{"line_number":280,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":281,"context_line":"                    data\u003dex.get_description())"},{"line_number":282,"context_line":"        except client_exceptions.ClientException as ex:"},{"line_number":283,"context_line":"            LOG.error(\"Couldn\u0027t register the volume to the target_iqn\")"},{"line_number":284,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":285,"context_line":"                data\u003dex.get_description())"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"988ab335_c3cf705f","line":283,"range":{"start_line":283,"start_character":16,"end_line":283,"end_character":21},"updated":"2020-12-04 15:29:37.000000000","message":"Do we want to have LOG.exception here?","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"82fef64b6271e1d22327b182ec6673ed0aa446b6","unresolved":false,"context_lines":[{"line_number":280,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":281,"context_line":"                    data\u003dex.get_description())"},{"line_number":282,"context_line":"        except client_exceptions.ClientException as ex:"},{"line_number":283,"context_line":"            LOG.error(\"Couldn\u0027t register the volume to the target_iqn\")"},{"line_number":284,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":285,"context_line":"                data\u003dex.get_description())"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"bbecbceb_6866b4ea","line":283,"range":{"start_line":283,"start_character":16,"end_line":283,"end_character":21},"in_reply_to":"988ab335_c3cf705f","updated":"2020-12-05 01:25:19.000000000","message":"Ack","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1efd94687056ab17ec62d393a9541b821e5bf070","unresolved":true,"context_lines":[{"line_number":291,"context_line":"        try:"},{"line_number":292,"context_line":"            self.client.unregister_disk(target_iqn, lun_name)"},{"line_number":293,"context_line":"        except client_exceptions.ClientException as ex:"},{"line_number":294,"context_line":"            LOG.error(\"Couldn\u0027t unregister the volume to the target_iqn\")"},{"line_number":295,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":296,"context_line":"                data\u003dex.get_description())"},{"line_number":297,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"8c388891_dc904d72","line":294,"range":{"start_line":294,"start_character":16,"end_line":294,"end_character":21},"updated":"2020-12-04 15:29:37.000000000","message":"The same as above","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"82fef64b6271e1d22327b182ec6673ed0aa446b6","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        try:"},{"line_number":292,"context_line":"            self.client.unregister_disk(target_iqn, lun_name)"},{"line_number":293,"context_line":"        except client_exceptions.ClientException as ex:"},{"line_number":294,"context_line":"            LOG.error(\"Couldn\u0027t unregister the volume to the target_iqn\")"},{"line_number":295,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":296,"context_line":"                data\u003dex.get_description())"},{"line_number":297,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"f6bfb836_ba58ac47","line":294,"range":{"start_line":294,"start_character":16,"end_line":294,"end_character":21},"in_reply_to":"8c388891_dc904d72","updated":"2020-12-05 01:25:19.000000000","message":"Ack","commit_id":"58871177e1dcd8208c765bb8fa5ccb448b9191e9"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9105cbda4713bcba8b150adfe1090c6d528d54a2","unresolved":true,"context_lines":[{"line_number":207,"context_line":"        \"\"\"Save the CHAP creds in the client on the gateway.\"\"\""},{"line_number":208,"context_line":"        # username is 8-64 chars"},{"line_number":209,"context_line":"        # Password has to be 12-16 chars"},{"line_number":210,"context_line":"        LOG.debug(\"Setting chap creds to %(user)s : %(pass)s\","},{"line_number":211,"context_line":"                  {\u0027user\u0027: username, \u0027pass\u0027: password})"},{"line_number":212,"context_line":"        try:"},{"line_number":213,"context_line":"            self.client.set_client_auth(self.target_iqn,"}],"source_content_type":"text/x-python","patch_set":43,"id":"b13c54d6_ef615417","line":210,"range":{"start_line":210,"start_character":52,"end_line":210,"end_character":61},"updated":"2021-01-14 13:54:53.000000000","message":"Do we want to put the password into the logs?  Think we should maybe remove this.","commit_id":"471036d2cd108289942b868c6d0fad0ac35677f4"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"4280ec8e9a1196aaba90aa85c54bbde2acb9a4a2","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        \"\"\"Save the CHAP creds in the client on the gateway.\"\"\""},{"line_number":208,"context_line":"        # username is 8-64 chars"},{"line_number":209,"context_line":"        # Password has to be 12-16 chars"},{"line_number":210,"context_line":"        LOG.debug(\"Setting chap creds to %(user)s : %(pass)s\","},{"line_number":211,"context_line":"                  {\u0027user\u0027: username, \u0027pass\u0027: password})"},{"line_number":212,"context_line":"        try:"},{"line_number":213,"context_line":"            self.client.set_client_auth(self.target_iqn,"}],"source_content_type":"text/x-python","patch_set":43,"id":"3d241757_809ff97a","line":210,"range":{"start_line":210,"start_character":52,"end_line":210,"end_character":61},"in_reply_to":"b13c54d6_ef615417","updated":"2021-01-14 15:14:08.000000000","message":"Done","commit_id":"471036d2cd108289942b868c6d0fad0ac35677f4"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9105cbda4713bcba8b150adfe1090c6d528d54a2","unresolved":true,"context_lines":[{"line_number":440,"context_line":"        # then delete the initiator"},{"line_number":441,"context_line":"        luns \u003d self.find_client_luns(target_iqn, initiator_iqn, config)"},{"line_number":442,"context_line":"        if not luns:"},{"line_number":443,"context_line":"            LOG.debug(\"There aren\u0027t any more LUNs attached to %(iqn)s.\""},{"line_number":444,"context_line":"                      \"So we unregister the volume and delete \""},{"line_number":445,"context_line":"                      \"the client entry\","},{"line_number":446,"context_line":"                      {\u0027iqn\u0027: initiator_iqn})"}],"source_content_type":"text/x-python","patch_set":43,"id":"e8db07b1_103b8ae7","line":443,"range":{"start_line":443,"start_character":69,"end_line":443,"end_character":71},"updated":"2021-01-14 13:54:53.000000000","message":"missing space here.","commit_id":"471036d2cd108289942b868c6d0fad0ac35677f4"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"4280ec8e9a1196aaba90aa85c54bbde2acb9a4a2","unresolved":false,"context_lines":[{"line_number":440,"context_line":"        # then delete the initiator"},{"line_number":441,"context_line":"        luns \u003d self.find_client_luns(target_iqn, initiator_iqn, config)"},{"line_number":442,"context_line":"        if not luns:"},{"line_number":443,"context_line":"            LOG.debug(\"There aren\u0027t any more LUNs attached to %(iqn)s.\""},{"line_number":444,"context_line":"                      \"So we unregister the volume and delete \""},{"line_number":445,"context_line":"                      \"the client entry\","},{"line_number":446,"context_line":"                      {\u0027iqn\u0027: initiator_iqn})"}],"source_content_type":"text/x-python","patch_set":43,"id":"a88b26b5_a8dae036","line":443,"range":{"start_line":443,"start_character":69,"end_line":443,"end_character":71},"in_reply_to":"e8db07b1_103b8ae7","updated":"2021-01-14 15:14:08.000000000","message":"Done","commit_id":"471036d2cd108289942b868c6d0fad0ac35677f4"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6fc26e4b6f2c32c4da645e28a9f3fab0786fe94e","unresolved":true,"context_lines":[{"line_number":107,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_user\u0027),"},{"line_number":108,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_password\u0027),"},{"line_number":109,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_url\u0027),"},{"line_number":110,"context_line":"            secure\u003dconfig.safe_get(\u0027driver_ssl_cert_verify\u0027),"},{"line_number":111,"context_line":"            suppress_ssl_warnings\u003dssl_warn"},{"line_number":112,"context_line":"        )"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":45,"id":"316e45a5_ed7e1f8f","line":110,"range":{"start_line":110,"start_character":36,"end_line":110,"end_character":58},"updated":"2021-01-27 04:24:38.000000000","message":"I think this and the option at line 105 aren\u0027t being reported by get_driver_options().  Also, the way you\u0027ve defined get_driver_options() above, you\u0027re missing the additional options that the base rbd driver uses:\nhttps://opendev.org/openstack/cinder/src/commit/02809ef4ec6112adb2bd960cb830503dab9a4c2a/cinder/volume/drivers/rbd.py#L290-L295","commit_id":"e87aab6dee5153f69890b4cf10e384429e667402"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1cd531360f45928f9d4b6cbe0afe8f0db7f9ef60","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_user\u0027),"},{"line_number":108,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_password\u0027),"},{"line_number":109,"context_line":"            config.safe_get(\u0027rbd_iscsi_api_url\u0027),"},{"line_number":110,"context_line":"            secure\u003dconfig.safe_get(\u0027driver_ssl_cert_verify\u0027),"},{"line_number":111,"context_line":"            suppress_ssl_warnings\u003dssl_warn"},{"line_number":112,"context_line":"        )"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":45,"id":"6d3f387a_703e6d4d","line":110,"range":{"start_line":110,"start_character":36,"end_line":110,"end_character":58},"in_reply_to":"316e45a5_ed7e1f8f","updated":"2021-01-27 13:59:06.000000000","message":"ok I\u0027ll update it.  This driver was written prior to those get_driver_options were updated to include cls argument.","commit_id":"e87aab6dee5153f69890b4cf10e384429e667402"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bf3f3bc556ab19a9d7e52feae7f97fad382380a4","unresolved":true,"context_lines":[{"line_number":89,"context_line":"        additional_opts \u003d cls._get_oslo_driver_opts("},{"line_number":90,"context_line":"            \u0027replication_device\u0027, \u0027reserved_percentage\u0027,"},{"line_number":91,"context_line":"            \u0027max_over_subscription_ratio\u0027, \u0027volume_dd_blocksize\u0027,"},{"line_number":92,"context_line":"            \u0027driver_ssl_cert_verify\u0027)"},{"line_number":93,"context_line":"        return rbd.RBD_OPTS + RBD_ISCSI_OPTS + additional_opts"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _create_client(self):"}],"source_content_type":"text/x-python","patch_set":46,"id":"39b65191_97b58f0c","line":92,"updated":"2021-01-27 23:35:51.000000000","message":"should \u0027suppress_requests_ssl_warnings\u0027 (line 109) also be in this list?","commit_id":"c0ea2f047e9944bc32fb6eb52ff13dce301cdac1"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"7f262b003e8efd9450bab8d1624c5da4f047d4a7","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        additional_opts \u003d cls._get_oslo_driver_opts("},{"line_number":90,"context_line":"            \u0027replication_device\u0027, \u0027reserved_percentage\u0027,"},{"line_number":91,"context_line":"            \u0027max_over_subscription_ratio\u0027, \u0027volume_dd_blocksize\u0027,"},{"line_number":92,"context_line":"            \u0027driver_ssl_cert_verify\u0027)"},{"line_number":93,"context_line":"        return rbd.RBD_OPTS + RBD_ISCSI_OPTS + additional_opts"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _create_client(self):"}],"source_content_type":"text/x-python","patch_set":46,"id":"56839403_793c2429","line":92,"in_reply_to":"39b65191_97b58f0c","updated":"2021-01-28 13:22:36.000000000","message":"Done","commit_id":"c0ea2f047e9944bc32fb6eb52ff13dce301cdac1"}],"driver-requirements.txt":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"9ac64c6115f87788b56c43d7b398e2847971484f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"rbd # LGPLv2.1"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"# RBD-iSCSI"},{"line_number":40,"context_line":"rbd-iscsi-client # Apache-2.0"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# Dell EMC VNX and Unity"},{"line_number":43,"context_line":"storops\u003e\u003d0.5.10 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":11,"id":"9fb8cfa7_b58cd035","line":40,"updated":"2019-06-19 21:39:15.000000000","message":"What kind of versioning guarantees is rbd-iscsi-client going to have?\n\nI\u0027m wondering how this plays out if we have to fix issues in rbd-iscsi-client for stable branches.","commit_id":"e4ddc65c231c6490646af60f65f81c476d299386"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"ecd18d44dafa5b48b10325c996a61bd17b7e496c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"rbd # LGPLv2.1"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"# RBD-iSCSI"},{"line_number":40,"context_line":"rbd-iscsi-client # Apache-2.0"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# Dell EMC VNX and Unity"},{"line_number":43,"context_line":"storops\u003e\u003d0.5.10 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":11,"id":"9fb8cfa7_a7ceddb1","line":40,"in_reply_to":"9fb8cfa7_b58cd035","updated":"2019-06-20 12:39:51.000000000","message":"I plan on having this client owned by cinder.  So it\u0027s up to us.","commit_id":"e4ddc65c231c6490646af60f65f81c476d299386"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a79ce40feae9e5dcd4e1216884167d6da855ab62","unresolved":false,"context_lines":[{"line_number":28,"context_line":"rbd # LGPLv2.1"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# RBD-iSCSI"},{"line_number":31,"context_line":"rbd-iscsi-client # Apache-2.0"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Dell EMC VNX and Unity"},{"line_number":34,"context_line":"storops\u003e\u003d1.2.3 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":21,"id":"9f560f44_ce63f0db","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":16},"updated":"2020-07-28 22:23:29.000000000","message":"The most recent version in pypi says it supports python 3.6 and 3.7; we need to support 3.8 in Victoria.  Maybe you can convince the maintainer to do a new release?  :)","commit_id":"da1584283a5d953491ef80d5d8160aba3eb85e16"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"336c1c96e93aa5d2b2147913531f2efa79e9fdaa","unresolved":false,"context_lines":[{"line_number":28,"context_line":"rbd # LGPLv2.1"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# RBD-iSCSI"},{"line_number":31,"context_line":"rbd-iscsi-client # Apache-2.0"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Dell EMC VNX and Unity"},{"line_number":34,"context_line":"storops\u003e\u003d1.2.3 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":21,"id":"9f560f44_06e77242","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":16},"in_reply_to":"9f560f44_ce63f0db","updated":"2020-07-30 12:47:08.000000000","message":"I\u0027ll ask him....see if he can get it done :)","commit_id":"da1584283a5d953491ef80d5d8160aba3eb85e16"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"89263517cabf233436f07cf3c30c8e8c1aaa34c8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"rbd # LGPLv2.1"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# RBD-iSCSI"},{"line_number":31,"context_line":"rbd-iscsi-client # Apache-2.0"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Dell EMC VNX and Unity"},{"line_number":34,"context_line":"storops\u003e\u003d1.2.3 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":26,"id":"9f560f44_473ae833","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":16},"updated":"2020-07-31 15:51:48.000000000","message":"I\u0027ve been thinking about this and for ongoing maintenance, I think it should be part of cinder, particularly given the wide range of people who work on the ceph driver.  There are two ways to go on this:\n\n1) Some of the drivers that currently rely on a rest client have the client code in-tree in the same directory as the driver.  That would be simplest, but it does limit re-use.\n\n2) If you think there\u0027s going to be interest in using your client for other projects, we can make it a project under the cinder umbrella (like cinderlib).  The downside is that it\u0027s more work (have to pick a release model, enhance the documentation, set up CI for it, etc.), but it\u0027s not an unreasonable amount of work if you anticipate independent use of the client.\n\nLet me know what your thoughts are about this.","commit_id":"07df11a57ec8212271dd3242ea346331e408a9db"}],"setup.cfg":[{"author":{"_account_id":22997,"name":"xinliang","email":"xinliang.liu@linaro.org","username":"xinliang.liu"},"change_message_id":"012551a86a68712d02577426e7164287cb69a943","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    storpool\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":117,"context_line":"    storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"},{"line_number":118,"context_line":"datera \u003d"},{"line_number":119,"context_line":"    dfs_sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":120,"context_line":"rbd_iscsi \u003d"},{"line_number":121,"context_line":"    rbd-iscsi-client\u003e\u003d0.1.8 # Apache-2.0"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":36,"id":"9f560f44_782f8ff5","line":119,"range":{"start_line":119,"start_character":4,"end_line":119,"end_character":11},"updated":"2020-09-09 09:03:16.000000000","message":"should be dfs-sdk?","commit_id":"ebd18497571a473fcb14de006de98a46e6d69573"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"486bb5f7b7456b37a0bb17d53f9d18fc7accf64f","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    storpool\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":117,"context_line":"    storpool.spopenstack\u003e\u003d2.2.1 # Apache-2.0"},{"line_number":118,"context_line":"datera \u003d"},{"line_number":119,"context_line":"    dfs_sdk\u003e\u003d1.2.25 # Apache-2.0"},{"line_number":120,"context_line":"rbd_iscsi \u003d"},{"line_number":121,"context_line":"    rbd-iscsi-client\u003e\u003d0.1.8 # Apache-2.0"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":36,"id":"5f681702_fe7cd0b6","line":119,"range":{"start_line":119,"start_character":4,"end_line":119,"end_character":11},"in_reply_to":"9f560f44_782f8ff5","updated":"2020-10-16 18:04:43.000000000","message":"Done","commit_id":"ebd18497571a473fcb14de006de98a46e6d69573"}]}
