)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5adbe701a4df024493e53fe7f0b6db8e0b1f7766","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Driver supports Open-E disaster recovery feature and cascade volume"},{"line_number":11,"context_line":"deletion in addition to all required functions."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I72513ec2100f1f4cb7e3fdb57e69243aa01dba38"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"9f560f44_3809a1dc","line":13,"updated":"2020-09-08 19:08:25.000000000","message":"add: Implements: bp open-e-joviandss-driver","commit_id":"e0c82d0712041e1509f488da6b53c7b791e0fbc6"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"9fc65ecdcc4c499abf5c0eedf54a6551725aae23","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Cinder driver for Open-E JovianDSS data storage"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Added suport of Open-E JovianDSS data storage."},{"line_number":10,"context_line":"Driver supports Open-E disaster recovery feature and cascade volume"},{"line_number":11,"context_line":"deletion in addition to all required functions."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":34,"id":"9f560f44_7b619bd4","line":9,"range":{"start_line":9,"start_character":6,"end_line":9,"end_character":12},"updated":"2020-10-05 12:46:36.000000000","message":"support","commit_id":"988bf01a30beb88e5a5df67e6231ca795af047e9"}],"cinder/tests/unit/volume/drivers/open_e/test_iscsi.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import re"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from unittest import mock"},{"line_number":19,"context_line":"from unittest.mock import patch"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from cinder import context"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_087053dc","line":18,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: I202 Additional newline in a group of imports. \u0027from unittest import mock\u0027 is identified as Stdlib and \u0027import re\u0027 is identified as Stdlib.","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import re"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from unittest import mock"},{"line_number":19,"context_line":"from unittest.mock import patch"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from cinder import context"},{"line_number":22,"context_line":"from cinder import exception"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_68746fd1","line":19,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F401 \u0027unittest.mock.patch\u0027 imported but unused","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from cinder import context"},{"line_number":22,"context_line":"from cinder import exception"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from cinder.volume import configuration as config"},{"line_number":25,"context_line":"from cinder.volume.drivers.open_e import iscsi"},{"line_number":26,"context_line":"from cinder.volume.drivers.open_e.jovian_common import exception as jexc"},{"line_number":27,"context_line":"from cinder.volume.drivers.open_e.jovian_common import jdss_common as jcom"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_a87e87ac","line":24,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F401 \u0027cinder.volume.configuration as config\u0027 imported but unused","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from cinder import context"},{"line_number":22,"context_line":"from cinder import exception"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from cinder.volume import configuration as config"},{"line_number":25,"context_line":"from cinder.volume.drivers.open_e import iscsi"},{"line_number":26,"context_line":"from cinder.volume.drivers.open_e.jovian_common import exception as jexc"},{"line_number":27,"context_line":"from cinder.volume.drivers.open_e.jovian_common import jdss_common as jcom"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_4871abde","line":24,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: I202 Additional newline in a group of imports. \u0027from cinder.volume import configuration\u0027 is identified as Application and \u0027from cinder import exception\u0027 is identified as Application.","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cinder.volume import configuration as config"},{"line_number":25,"context_line":"from cinder.volume.drivers.open_e import iscsi"},{"line_number":26,"context_line":"from cinder.volume.drivers.open_e.jovian_common import exception as jexc"},{"line_number":27,"context_line":"from cinder.volume.drivers.open_e.jovian_common import jdss_common as jcom"},{"line_number":28,"context_line":"from cinder.volume.drivers.open_e.jovian_common import rest"},{"line_number":29,"context_line":"from cinder.volume.drivers.open_e import options"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_887bc3bc","line":27,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F401 \u0027cinder.volume.drivers.open_e.jovian_common.jdss_common as jcom\u0027 imported but unused","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from cinder.volume.drivers.open_e import iscsi"},{"line_number":26,"context_line":"from cinder.volume.drivers.open_e.jovian_common import exception as jexc"},{"line_number":27,"context_line":"from cinder.volume.drivers.open_e.jovian_common import jdss_common as jcom"},{"line_number":28,"context_line":"from cinder.volume.drivers.open_e.jovian_common import rest"},{"line_number":29,"context_line":"from cinder.volume.drivers.open_e import options"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from cinder.tests.unit import test"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_e8499f8e","line":28,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F401 \u0027cinder.volume.drivers.open_e.jovian_common.rest\u0027 imported but unused","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from cinder.volume.drivers.open_e.jovian_common import exception as jexc"},{"line_number":27,"context_line":"from cinder.volume.drivers.open_e.jovian_common import jdss_common as jcom"},{"line_number":28,"context_line":"from cinder.volume.drivers.open_e.jovian_common import rest"},{"line_number":29,"context_line":"from cinder.volume.drivers.open_e import options"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from cinder.tests.unit import test"},{"line_number":32,"context_line":"from cinder.tests.unit import fake_group"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_c84e5b95","line":29,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F401 \u0027cinder.volume.drivers.open_e.options\u0027 imported but unused","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from cinder.volume.drivers.open_e.jovian_common import rest"},{"line_number":29,"context_line":"from cinder.volume.drivers.open_e import options"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from cinder.tests.unit import test"},{"line_number":32,"context_line":"from cinder.tests.unit import fake_group"},{"line_number":33,"context_line":"from cinder.tests.unit import fake_group_snapshot"},{"line_number":34,"context_line":"from cinder.tests.unit import fake_snapshot"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_28443774","line":31,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: I202 Additional newline in a group of imports. \u0027from cinder.tests.unit import test\u0027 is identified as Application and \u0027from cinder.volume.drivers.open_e import options\u0027 is identified as Application.","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.volume.drivers.open_e import options"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from cinder.tests.unit import test"},{"line_number":32,"context_line":"from cinder.tests.unit import fake_group"},{"line_number":33,"context_line":"from cinder.tests.unit import fake_group_snapshot"},{"line_number":34,"context_line":"from cinder.tests.unit import fake_snapshot"},{"line_number":35,"context_line":"from cinder.tests.unit import fake_volume"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_685d8f47","line":32,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F401 \u0027cinder.tests.unit.fake_group\u0027 imported but unused","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.volume.drivers.open_e import options"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from cinder.tests.unit import test"},{"line_number":32,"context_line":"from cinder.tests.unit import fake_group"},{"line_number":33,"context_line":"from cinder.tests.unit import fake_group_snapshot"},{"line_number":34,"context_line":"from cinder.tests.unit import fake_snapshot"},{"line_number":35,"context_line":"from cinder.tests.unit import fake_volume"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_0849738a","line":32,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: H306: imports not in alphabetical order (cinder.tests.unit.test, cinder.tests.unit.fake_group)","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"from cinder.tests.unit import test"},{"line_number":32,"context_line":"from cinder.tests.unit import fake_group"},{"line_number":33,"context_line":"from cinder.tests.unit import fake_group_snapshot"},{"line_number":34,"context_line":"from cinder.tests.unit import fake_snapshot"},{"line_number":35,"context_line":"from cinder.tests.unit import fake_volume"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_485a4b50","line":33,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F401 \u0027cinder.tests.unit.fake_group_snapshot\u0027 imported but unused","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from cinder.tests.unit import test"},{"line_number":32,"context_line":"from cinder.tests.unit import fake_group"},{"line_number":33,"context_line":"from cinder.tests.unit import fake_group_snapshot"},{"line_number":34,"context_line":"from cinder.tests.unit import fake_snapshot"},{"line_number":35,"context_line":"from cinder.tests.unit import fake_volume"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"CONFIG_OK \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_a857a726","line":34,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F401 \u0027cinder.tests.unit.fake_snapshot\u0027 imported but unused","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"SNAPSHOTS_CASCADE_1 \u003d ["},{"line_number":56,"context_line":"        {\"name\": \"s_123456-1234-1234-000001\","},{"line_number":57,"context_line":"         \"clones\": \"Pool-0/s_123456-1234-1234-000001\"},"},{"line_number":58,"context_line":"        {\"name\": \"s_123456-1234-1234-000002\","},{"line_number":59,"context_line":"         \"clones\": \"Pool-0/s_123456-1234-1234-000002\"},"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_88546323","line":56,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"SNAPSHOTS_CASCADE_2 \u003d ["},{"line_number":65,"context_line":"        {\"name\": \"s_123456-1234-1234-000001\","},{"line_number":66,"context_line":"         \"clones\": \"Pool-0/s_123456-1234-1234-000001\"},"},{"line_number":67,"context_line":"        {\"name\": \"v_123456-1234-1234-000002\","},{"line_number":68,"context_line":"         \"clones\": \"Pool-0/v_123456-1234-1234-000002\"},"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_e82ebfa9","line":65,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":70,"context_line":"         \"clones\": \"Pool-0/s_123456-1234-1234-000003\"}]"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"SNAPSHOTS_CASCADE_3 \u003d ["},{"line_number":73,"context_line":"        {\"name\": \"v_123456-1234-1234-000004\","},{"line_number":74,"context_line":"         \"clones\": \"Pool-0/v_123456-1234-1234-000004\"}]"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"SNAPSHOTS_EMPTY \u003d []"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_c833fb12","line":73,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":76,"context_line":"SNAPSHOTS_EMPTY \u003d []"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"SNAPSHOTS_GARBAGE \u003d ["},{"line_number":79,"context_line":"                {\"name\": \"s_123456-1234-1234-000001\","},{"line_number":80,"context_line":"                 \"clones\": \"Pool-0/v_123456-1234-0001-000002\"},"},{"line_number":81,"context_line":"                {\"name\": \"s_123456-1234-1234-000002\","},{"line_number":82,"context_line":"                 \"clones\": \"\"}]"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_2839d7f1","line":79,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"class TestOpenEJovianDSSDriver(test.TestCase):"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def get_driver(self, config):"},{"line_number":122,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        cfg \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_083e93d9","line":121,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F811 redefinition of unused \u0027config\u0027 from line 24","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        vol.id \u003d \"123456-1234-1234-123456\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        patches \u003d [mock.patch.object("},{"line_number":171,"context_line":"                        jdssd.ra,"},{"line_number":172,"context_line":"                        \"create_lun\","},{"line_number":173,"context_line":"                        return_value\u003dNone),"},{"line_number":174,"context_line":"                   mock.patch.object("}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_6822afbc","line":171,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                        \"create_lun\","},{"line_number":173,"context_line":"                        return_value\u003dNone),"},{"line_number":174,"context_line":"                   mock.patch.object("},{"line_number":175,"context_line":"                        jdssd.ra,"},{"line_number":176,"context_line":"                        \"get_active_host\","},{"line_number":177,"context_line":"                        return_value\u003dCONFIG_OK[\u0027jovian_hosts\u0027][0])]"},{"line_number":178,"context_line":"        self.start_patches(patches)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_481feb6f","line":175,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self.assertEqual(ret[\u0027provider_location\u0027], location)"},{"line_number":196,"context_line":"        cred_format \u003d (r\"CHAP [0-9,a-z,A-Z]{{{name_len}}} \""},{"line_number":197,"context_line":"                       \"[0-9,a-z,A-Z]{{{pass_len}}}\").format("},{"line_number":198,"context_line":"                        name_len\u003d8,"},{"line_number":199,"context_line":"                        pass_len\u003dCONFIG_OK[\u0027jovian_chap_pass_len\u0027])"},{"line_number":200,"context_line":"        self.assertIsNotNone(re.match(cred_format, ret[\u0027provider_auth\u0027]))"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_a82cc7ac","line":198,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        vname \u003d \"v_123456-1234-1234-123456\""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        jdssd.ra.modify_lun.return_value \u003d None"},{"line_number":207,"context_line":"        ret \u003d jdssd._hide_object(vname)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        hidden_volume \u003d {\"name\": \"t_123456-1234-1234-123456\"}"},{"line_number":210,"context_line":"        jdssd.ra.modify_lun.assert_called_once_with(vname, hidden_volume)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_8829039d","line":207,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F841 local variable \u0027ret\u0027 is assigned to but never used","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            o_snaps \u003d SNAPSHOTS_GARBAGE.copy()"},{"line_number":225,"context_line":"            jdssd.ra.delete_snapshot.side_effect \u003d exc"},{"line_number":226,"context_line":"            try:"},{"line_number":227,"context_line":"                ret \u003d jdssd._clean_garbage_snapshots(o_vname, o_snaps)"},{"line_number":228,"context_line":"            except Exception as err:"},{"line_number":229,"context_line":"                self.assertIsInstance(err, exception.VolumeBackendAPIException)"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_e817df53","line":227,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F841 local variable \u0027ret\u0027 is assigned to but never used","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        jdssd.ra.modify_lun.return_value \u003d None"},{"line_number":241,"context_line":"        jdssd.ra.delete_snapshot.return_value \u003d None"},{"line_number":242,"context_line":"        jdssd.ra.get_snapshots.side_effect \u003d ["},{"line_number":243,"context_line":"                SNAPSHOTS_EMPTY,"},{"line_number":244,"context_line":"                SNAPSHOTS_EMPTY,"},{"line_number":245,"context_line":"                SNAPSHOTS_EMPTY]"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_c81c9b79","line":243,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":248,"context_line":"            jdssd._cascade_volume_delete(o_vname, o_snaps)"},{"line_number":249,"context_line":"            gc.assert_called_once_with(o_vname)"},{"line_number":250,"context_line":"        delete_snapshot_expected \u003d ["},{"line_number":251,"context_line":"                mock.call(o_vname,"},{"line_number":252,"context_line":"                          SNAPSHOTS_CASCADE_1[0][\"name\"],"},{"line_number":253,"context_line":"                          recursively_children\u003dTrue,"},{"line_number":254,"context_line":"                          recursively_dependents\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_28127763","line":251,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        jdssd.ra.modify_lun.return_value \u003d None"},{"line_number":277,"context_line":"        jdssd.ra.delete_snapshot.return_value \u003d None"},{"line_number":278,"context_line":"        jdssd.ra.get_snapshots.side_effect \u003d ["},{"line_number":279,"context_line":"                SNAPSHOTS_EMPTY,"},{"line_number":280,"context_line":"                SNAPSHOTS_EMPTY]"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        fake_gc \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_0817b353","line":279,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        jdssd.ra.modify_lun.return_value \u003d None"},{"line_number":317,"context_line":"        jdssd.ra.delete_snapshot.return_value \u003d None"},{"line_number":318,"context_line":"        jdssd.ra.get_snapshots.side_effect \u003d ["},{"line_number":319,"context_line":"                SNAPSHOTS_EMPTY,"},{"line_number":320,"context_line":"                SNAPSHOTS_CASCADE_3.copy(),"},{"line_number":321,"context_line":"                SNAPSHOTS_EMPTY]"},{"line_number":322,"context_line":"        get_snapshots \u003d ["}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_680bcf2a","line":319,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        jdssd, ctx \u003d self.get_driver(CONFIG_OK)"},{"line_number":403,"context_line":"        vol \u003d fake_volume.fake_volume_obj(ctx)"},{"line_number":404,"context_line":"        vol.id \u003d \"123456-1234-1234-123456\""},{"line_number":405,"context_line":"        vname \u003d \"v_123456-1234-1234-123456\""},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        patches \u003d [mock.patch.object(jdssd, \"_cascade_volume_delete\"),"},{"line_number":408,"context_line":"                   mock.patch.object(jdssd, \"_gc_delete\"),"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_48088b2c","line":405,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F841 local variable \u0027vname\u0027 is assigned to but never used","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8c4fe2373b82449611aec4e91ad76c0553a86773","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        self.start_patches(patches)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        for exc in get_jdss_exceptions():"},{"line_number":414,"context_line":"            o_snaps \u003d SNAPSHOTS_GARBAGE.copy()"},{"line_number":415,"context_line":"            jdssd.ra.get_snapshots.side_effect \u003d exc"},{"line_number":416,"context_line":"            try:"},{"line_number":417,"context_line":"                jdssd.delete_volume(vol, cascade\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf51134e_a805e716","line":414,"updated":"2020-07-20 15:10:14.000000000","message":"pep8: F841 local variable \u0027o_snaps\u0027 is assigned to but never used","commit_id":"c29a1a56e6ae4ed6af97707e7d2461337bbfaa66"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"91a1dc88fece794ba2a18782848bf45eb2cd3544","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import re"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from unittest 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":9,"id":"bf51134e_5172ef4a","line":18,"updated":"2020-07-20 20:37:24.000000000","message":"pep8: I202 Additional newline in a group of imports. \u0027from unittest import mock\u0027 is identified as Stdlib and \u0027import re\u0027 is identified as Stdlib.","commit_id":"a75c7fdbdb05f78243794a14051501f62dad4e69"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"91a1dc88fece794ba2a18782848bf45eb2cd3544","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from cinder import context"},{"line_number":21,"context_line":"from cinder import exception"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from cinder.tests.unit import fake_volume"},{"line_number":24,"context_line":"from cinder.tests.unit import test"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder.volume.drivers.open_e import iscsi"}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_b18c2b2f","line":23,"updated":"2020-07-20 20:37:24.000000000","message":"pep8: I202 Additional newline in a group of imports. \u0027from cinder.tests.unit import fake_volume\u0027 is identified as Application and \u0027from cinder import exception\u0027 is identified as Application.","commit_id":"a75c7fdbdb05f78243794a14051501f62dad4e69"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"91a1dc88fece794ba2a18782848bf45eb2cd3544","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from cinder.tests.unit import fake_volume"},{"line_number":24,"context_line":"from cinder.tests.unit import test"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder.volume.drivers.open_e import iscsi"},{"line_number":27,"context_line":"from cinder.volume.drivers.open_e.jovian_common import exception as jexc"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf51134e_9191274a","line":26,"updated":"2020-07-20 20:37:24.000000000","message":"pep8: I202 Additional newline in a group of imports. \u0027from cinder.volume.drivers.open_e import iscsi\u0027 is identified as Application and \u0027from cinder.tests.unit import test\u0027 is identified as Application.","commit_id":"a75c7fdbdb05f78243794a14051501f62dad4e69"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":626,"context_line":"        jdssd._clone_object.assert_called_once_with(origin_vname, clone_vname)"},{"line_number":627,"context_line":"        self.stop_patches(patches)"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"        self.assertEqual(ret[\u0027provider_location\u0027], location)"},{"line_number":630,"context_line":"        self.assertEqual(ret[\u0027provider_auth\u0027], cred_format)"},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"    def test_create_volume_from_snapshot(self):"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_26071684","line":629,"range":{"start_line":629,"start_character":25,"end_line":629,"end_character":60},"updated":"2020-09-02 22:31:51.000000000","message":"assertEqual argument order throughout should be (expected_value, actual_value)","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":626,"context_line":"        jdssd._clone_object.assert_called_once_with(origin_vname, clone_vname)"},{"line_number":627,"context_line":"        self.stop_patches(patches)"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"        self.assertEqual(ret[\u0027provider_location\u0027], location)"},{"line_number":630,"context_line":"        self.assertEqual(ret[\u0027provider_auth\u0027], cred_format)"},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"    def test_create_volume_from_snapshot(self):"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_9bf44b5d","line":629,"range":{"start_line":629,"start_character":25,"end_line":629,"end_character":60},"in_reply_to":"9f560f44_26071684","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"}],"cinder/tests/unit/volume/drivers/open_e/test_rest.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2344ea97f3f4efd91d3026f7d8c57c4aa8b309fc","unresolved":false,"context_lines":[{"line_number":862,"context_line":"        jrest.rproxy.pool_request.assert_has_calls(is_target_lun_expected)"},{"line_number":863,"context_line":""},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"    def test_attach_target_vol(self):"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"        jrest, ctx \u003d self.get_rest(CONFIG_OK)"},{"line_number":868,"context_line":"        # attach ok"}],"source_content_type":"text/x-python","patch_set":17,"id":"9f560f44_9c9e6a67","line":865,"updated":"2020-08-30 17:17:52.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"2070813441fbf33fbdce76e74c69056e8fa448a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cd498a7aedfa231e1d0ccc3ca3d4ae61984f5b09","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                \u0027error\u0027: None}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        jrest.rproxy.pool_request.return_value \u003d resp"},{"line_number":89,"context_line":"        self.assertEqual(True, jrest.is_pool_exists())"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        err \u003d {\u0027errorid\u0027: 12}"},{"line_number":92,"context_line":"        resp \u003d {\u0027code\u0027: 404,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_a84bb5ae","line":89,"updated":"2020-09-07 23:26:38.000000000","message":"pep8: C313: Unit tests should use assertTrue(value) instead of using assertEqual(True, value).","commit_id":"3db2b27881ec5df95366289e3bedb35c2e001c75"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cd498a7aedfa231e1d0ccc3ca3d4ae61984f5b09","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            \u0027code\u0027: 200,"},{"line_number":108,"context_line":"            \u0027error\u0027: None}"},{"line_number":109,"context_line":"        jrest.rproxy.pool_request.return_value \u003d resp"},{"line_number":110,"context_line":"        self.assertEqual(True, jrest.is_pool_exists())"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def test_get_luns(self):"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_884871b3","line":110,"updated":"2020-09-07 23:26:38.000000000","message":"pep8: C313: Unit tests should use assertTrue(value) instead of using assertEqual(True, value).","commit_id":"3db2b27881ec5df95366289e3bedb35c2e001c75"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cd498a7aedfa231e1d0ccc3ca3d4ae61984f5b09","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                \u0027code\u0027: 200}"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        jrest.rproxy.pool_request.return_value \u003d resp"},{"line_number":249,"context_line":"        self.assertEqual(True, jrest.is_lun(jcom.vname(UUID_1)))"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        err \u003d {\u0027errno\u0027: 1,"},{"line_number":252,"context_line":"               \u0027message\u0027: (\u0027Zfs resource: Pool-0/\u0027 + jcom.vname(UUID_1) +"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_e8c64d16","line":249,"updated":"2020-09-07 23:26:38.000000000","message":"pep8: C313: Unit tests should use assertTrue(value) instead of using assertEqual(True, value).","commit_id":"3db2b27881ec5df95366289e3bedb35c2e001c75"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cd498a7aedfa231e1d0ccc3ca3d4ae61984f5b09","unresolved":false,"context_lines":[{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        is_target_expected \u003d [mock.call(\u0027GET\u0027, addr)]"},{"line_number":470,"context_line":"        jrest.rproxy.pool_request.return_value \u003d resp"},{"line_number":471,"context_line":"        self.assertEqual(True, jrest.is_target(tname))"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"        msg \u003d \"Target {} not exists.\".format(tname)"},{"line_number":474,"context_line":"        url \u003d (\"http://{addr}:{port}/api/v3/pools/Pool-0/\""}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_c8cb891b","line":471,"updated":"2020-09-07 23:26:38.000000000","message":"pep8: C313: Unit tests should use assertTrue(value) instead of using assertEqual(True, value).","commit_id":"3db2b27881ec5df95366289e3bedb35c2e001c75"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cd498a7aedfa231e1d0ccc3ca3d4ae61984f5b09","unresolved":false,"context_lines":[{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        jrest.rproxy.pool_request.return_value \u003d resp"},{"line_number":822,"context_line":"        is_target_lun_expected \u003d [mock.call(\u0027GET\u0027, addr)]"},{"line_number":823,"context_line":"        self.assertEqual(True, jrest.is_target_lun(tname, vname))"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"        url \u003d \"http://{ip}:{port}/api/v3/pools/Pool-0{addr}\""},{"line_number":826,"context_line":"        url \u003d url.format(ip\u003dCONFIG_OK[\u0027san_hosts\u0027][0],"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_28cde52f","line":823,"updated":"2020-09-07 23:26:38.000000000","message":"pep8: C313: Unit tests should use assertTrue(value) instead of using assertEqual(True, value).","commit_id":"3db2b27881ec5df95366289e3bedb35c2e001c75"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        resp \u003d {\u0027code\u0027: 404,"},{"line_number":93,"context_line":"                \u0027error\u0027: err}"},{"line_number":94,"context_line":"        jrest.rproxy.pool_request.return_value \u003d resp"},{"line_number":95,"context_line":"        self.assertEqual(False, jrest.is_pool_exists())"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        pool_request_expected \u003d ["},{"line_number":98,"context_line":"            mock.call(\u0027GET\u0027, \u0027\u0027),"}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_fd4fbf32","line":95,"range":{"start_line":95,"start_character":13,"end_line":95,"end_character":24},"updated":"2020-09-28 15:45:52.000000000","message":"assertFalse would be better for these situations.","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"}],"cinder/volume/drivers/open_e/iscsi.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e26d02ab015a43d6e5a38a948de7a02ca3191d7","unresolved":false,"context_lines":[{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        except jexc.JDSSException:"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"            msg \u003d (\u0027Failed to create tmp snapshot %(snapshot)s\u0027"},{"line_number":305,"context_line":"                   \u0027for volume %(volume)s.\u0027.format("},{"line_number":306,"context_line":"                       snapshot\u003dtmp_snapshot_name,"},{"line_number":307,"context_line":"                       volume\u003dtmp_snapshot_name))"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_0de213d6","line":304,"updated":"2020-05-12 14:00:45.000000000","message":"pep8: F522 \u0027...\u0027.format(...) has unused named argument(s): snapshot, volume","commit_id":"27bd32e5a11a512a11404ca8b9dcbb7a88eb2c6f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e26d02ab015a43d6e5a38a948de7a02ca3191d7","unresolved":false,"context_lines":[{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        except jexc.JDSSException as err:"},{"line_number":353,"context_line":"            if \u0027unable to create volume\u0027 in err.args[0]:"},{"line_number":354,"context_line":"                msg \u003d (\u0027Failed to create volume %(vol)\u0027"},{"line_number":355,"context_line":"                       \u0027from snapshot %(snap)\u0027.format(vol\u003dvolume[\u0027id\u0027],"},{"line_number":356,"context_line":"                                                      snap\u003dsnapshot[\u0027id\u0027]))"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_6de74fe6","line":354,"updated":"2020-05-12 14:00:45.000000000","message":"pep8: F522 \u0027...\u0027.format(...) has unused named argument(s): snap, vol","commit_id":"27bd32e5a11a512a11404ca8b9dcbb7a88eb2c6f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e26d02ab015a43d6e5a38a948de7a02ca3191d7","unresolved":false,"context_lines":[{"line_number":573,"context_line":""},{"line_number":574,"context_line":"        except jexc.JDSSRESTException as ex:"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"            msg \u003d (\u0027Unable to create target %(target)s \u0027"},{"line_number":577,"context_line":"                   \u0027because of %(error)s.\u0027.format(target\u003dtarget_name,"},{"line_number":578,"context_line":"                                                  error\u003dex.message))"},{"line_number":579,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_4dec0bc7","line":576,"updated":"2020-05-12 14:00:45.000000000","message":"pep8: F522 \u0027...\u0027.format(...) has unused named argument(s): error, target","commit_id":"27bd32e5a11a512a11404ca8b9dcbb7a88eb2c6f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e26d02ab015a43d6e5a38a948de7a02ca3191d7","unresolved":false,"context_lines":[{"line_number":589,"context_line":""},{"line_number":590,"context_line":"            except jexc.JDSSRESTException as ex:"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"                err_msg \u003d (\u0027Unable to create\u0027"},{"line_number":593,"context_line":"                           \u0027 user %(user)s for target %(target)s\u0027"},{"line_number":594,"context_line":"                           \u0027 because of %(error)s.\u0027.format("},{"line_number":595,"context_line":"                               target\u003dtarget_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_add047f9","line":592,"updated":"2020-05-12 14:00:45.000000000","message":"pep8: F522 \u0027...\u0027.format(...) has unused named argument(s): error, target, user","commit_id":"27bd32e5a11a512a11404ca8b9dcbb7a88eb2c6f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e26d02ab015a43d6e5a38a948de7a02ca3191d7","unresolved":false,"context_lines":[{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        except jexc.JDSSRESTException as ex:"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"            err_msg \u003d (\u0027Unable to attach target %(target)s to\u0027"},{"line_number":611,"context_line":"                       \u0027volume %(volume)s because of %(error)s.\u0027.format("},{"line_number":612,"context_line":"                           target\u003dtarget_name,"},{"line_number":613,"context_line":"                           volume\u003dvolume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_8dcd835f","line":610,"updated":"2020-05-12 14:00:45.000000000","message":"pep8: F522 \u0027...\u0027.format(...) has unused named argument(s): error, target, volume","commit_id":"27bd32e5a11a512a11404ca8b9dcbb7a88eb2c6f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e26d02ab015a43d6e5a38a948de7a02ca3191d7","unresolved":false,"context_lines":[{"line_number":641,"context_line":"                        target_name,"},{"line_number":642,"context_line":"                        volume[\"id\"]) is False:"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"                    msg \u003d (\u0027Unable to attach volume %(vol)s to\u0027"},{"line_number":645,"context_line":"                           \u0027 target %(targ)s\u0027.format(vol\u003dvolume[id],"},{"line_number":646,"context_line":"                                                     targ\u003dtarget_name))"},{"line_number":647,"context_line":"                    LOG.debug(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_edda3f15","line":644,"updated":"2020-05-12 14:00:45.000000000","message":"pep8: F522 \u0027...\u0027.format(...) has unused named argument(s): targ, vol","commit_id":"27bd32e5a11a512a11404ca8b9dcbb7a88eb2c6f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":50,"context_line":"    CI_WIKI_NAME \u003d \"Open-E_JovianDSS_CI\""},{"line_number":51,"context_line":"    VERSION \u003d \"1.0.1\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":54,"context_line":"        super(JovianISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_c5a2cb4b","line":51,"range":{"start_line":51,"start_character":19,"end_line":51,"end_character":20},"updated":"2020-05-23 15:01:55.000000000","message":"This doesn\u0027t match your version history above. Assuming you have provided this out of tree ahead of now, and that is the reason for not just starting with 1.0.0.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":50,"context_line":"    CI_WIKI_NAME \u003d \"Open-E_JovianDSS_CI\""},{"line_number":51,"context_line":"    VERSION \u003d \"1.0.1\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":54,"context_line":"        super(JovianISCSIDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_bf7040dc","line":51,"range":{"start_line":51,"start_character":19,"end_line":51,"end_character":20},"in_reply_to":"ff570b3c_c5a2cb4b","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        self.ra \u003d None"},{"line_number":59,"context_line":"        self.conf \u003d dict()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        LOG.debug(\u0027Enter JovianISCSIDriver\u0027)"},{"line_number":62,"context_line":"        self.configuration.append_config_values("},{"line_number":63,"context_line":"            options.jdss_connection_opts)"},{"line_number":64,"context_line":"        self.configuration.append_config_values("}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_258747b9","line":61,"updated":"2020-05-23 15:01:55.000000000","message":"There is other tracing that happens on driver load, so this really isn\u0027t needed.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            \u0027jovian_target_group_prefix\u0027)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        self.jovian_chap_auth \u003d self.configuration.safe_get(\u0027jovian_chap_auth\u0027)"},{"line_number":94,"context_line":"        self.jovian_chap_username \u003d \\"},{"line_number":95,"context_line":"            self.configuration.safe_get(\u0027jovian_chap_username\u0027)"},{"line_number":96,"context_line":"        self.jovian_chap_pass_len \u003d self.configuration.safe_get("},{"line_number":97,"context_line":"            \u0027jovian_chap_pass_len\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_0584c3b0","line":94,"range":{"start_line":94,"start_character":36,"end_line":94,"end_character":37},"updated":"2020-05-23 15:01:55.000000000","message":"We\u0027ve made an effort to avoid using \\ to span multiple lines. Better to using the opening ( from the safe_get call as a point to break, or wrapping the assigned value in () so it can span multiple lines.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            \u0027jovian_target_group_prefix\u0027)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        self.jovian_chap_auth \u003d self.configuration.safe_get(\u0027jovian_chap_auth\u0027)"},{"line_number":94,"context_line":"        self.jovian_chap_username \u003d \\"},{"line_number":95,"context_line":"            self.configuration.safe_get(\u0027jovian_chap_username\u0027)"},{"line_number":96,"context_line":"        self.jovian_chap_pass_len \u003d self.configuration.safe_get("},{"line_number":97,"context_line":"            \u0027jovian_chap_pass_len\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_ff7ab8b7","line":94,"range":{"start_line":94,"start_character":36,"end_line":94,"end_character":37},"in_reply_to":"ff570b3c_0584c3b0","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        \"\"\"Verify that the pool exists.\"\"\""},{"line_number":107,"context_line":"        if not self.ra.is_pool_exists():"},{"line_number":108,"context_line":"            LOG.error(\"Setup is incorrect, please check connection settings.\")"},{"line_number":109,"context_line":"            raise exception.VolumeDriverException(\"Bad configuration expected\")"},{"line_number":110,"context_line":"    # TODO(andrei.perepiolkin@open-e.com): Provide additional checks"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def _get_zvol_name(self, volume_name):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_458ebbd0","line":109,"range":{"start_line":109,"start_character":49,"end_line":109,"end_character":51},"updated":"2020-05-23 15:01:55.000000000","message":"Any exception messages that are possibly raised to an end user should be wrapped in _() from i18n so they get translated.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                continue"},{"line_number":161,"context_line":"            if iface[\u0027address\u0027] not in self.jovian_ignore_tpath:"},{"line_number":162,"context_line":"                out.append(iface[\u0027address\u0027])"},{"line_number":163,"context_line":"        LOG.debug(\u0027interfaces found %s\u0027, str(out))"},{"line_number":164,"context_line":"        return out"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def create_volume(self, volume):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_a5bcf76c","line":163,"range":{"start_line":163,"start_character":41,"end_line":163,"end_character":45},"updated":"2020-05-23 15:01:55.000000000","message":"No need to convert to string ahead of time. You are formatting into %s, so just pass in out and let the logger handle it if and when needed.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            LOG.error(\"Create volume error. Because %(err).\","},{"line_number":185,"context_line":"                      {\"err\": ex.message})"},{"line_number":186,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":187,"context_line":"                message\u003d(\u0027Failed to create volume %s.\u0027,"},{"line_number":188,"context_line":"                         volume[\u0027id\u0027]))"},{"line_number":189,"context_line":"        ret \u003d {}"},{"line_number":190,"context_line":"        if provider_auth is not None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_e5b6ef8a","line":187,"range":{"start_line":187,"start_character":54,"end_line":187,"end_character":55},"updated":"2020-05-23 15:01:55.000000000","message":"The exception init call does not take care of string formatting like logging calls do. You will need to switch \u0027,\u0027 to \u0027%\u0027 so this error string gets formatted and isn\u0027t set to a tuple.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                origin_volume \u003d jcom.origin_volume(self.pool,"},{"line_number":239,"context_line":"                                                   volume_info[\"origin\"])"},{"line_number":240,"context_line":"                origin_snapshot \u003d jcom.origin_snapshot(volume_info[\"origin\"])"},{"line_number":241,"context_line":"                LOG.debug(\"Original vol %(orig_vol)s\""},{"line_number":242,"context_line":"                          \"original snap %(orig_snap)s \""},{"line_number":243,"context_line":"                          \"replication_driver_data %(rdd)s\", {"},{"line_number":244,"context_line":"                              \"orig_vol\": jcom.origin_volume("}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_25b0e78b","line":241,"range":{"start_line":241,"start_character":52,"end_line":241,"end_character":53},"updated":"2020-05-23 15:01:55.000000000","message":"Missing trailing space.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                origin_volume \u003d jcom.origin_volume(self.pool,"},{"line_number":239,"context_line":"                                                   volume_info[\"origin\"])"},{"line_number":240,"context_line":"                origin_snapshot \u003d jcom.origin_snapshot(volume_info[\"origin\"])"},{"line_number":241,"context_line":"                LOG.debug(\"Original vol %(orig_vol)s\""},{"line_number":242,"context_line":"                          \"original snap %(orig_snap)s \""},{"line_number":243,"context_line":"                          \"replication_driver_data %(rdd)s\", {"},{"line_number":244,"context_line":"                              \"orig_vol\": jcom.origin_volume("}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_df5ed443","line":241,"range":{"start_line":241,"start_character":52,"end_line":241,"end_character":53},"in_reply_to":"ff570b3c_25b0e78b","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":263,"context_line":"                                \"err\": err})"},{"line_number":264,"context_line":"                        raise exception.SnapshotIsBusy(err)"},{"line_number":265,"context_line":"                    return"},{"line_number":266,"context_line":"        return"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def extend_volume(self, volume, new_size):"},{"line_number":269,"context_line":"        \"\"\"Extend an existing volume."}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_05ade330","line":266,"range":{"start_line":266,"start_character":8,"end_line":266,"end_character":14},"updated":"2020-05-23 15:01:55.000000000","message":"Remove this line, not needed.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":263,"context_line":"                                \"err\": err})"},{"line_number":264,"context_line":"                        raise exception.SnapshotIsBusy(err)"},{"line_number":265,"context_line":"                    return"},{"line_number":266,"context_line":"        return"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def extend_volume(self, volume, new_size):"},{"line_number":269,"context_line":"        \"\"\"Extend an existing volume."}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_bf59605c","line":266,"range":{"start_line":266,"start_character":8,"end_line":266,"end_character":14},"in_reply_to":"ff570b3c_05ade330","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            self.extend_volume(volume, int(volume[\u0027size\u0027]))"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        ddata \u003d dict()"},{"line_number":327,"context_line":"        ddata[\u0027replication_driver_data\u0027] \u003d (\u0027tmp_snapshot:\u0027 +"},{"line_number":328,"context_line":"                                            + tmp_snapshot_name +"},{"line_number":329,"context_line":"                                            + \u0027,\u0027)"},{"line_number":330,"context_line":"        return ddata"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_65aadf19","line":327,"range":{"start_line":327,"start_character":59,"end_line":327,"end_character":61},"updated":"2020-05-23 15:01:55.000000000","message":"A few extra + in here. Probably better to use string formatting instead of concatenation anyway.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            self.extend_volume(volume, int(volume[\u0027size\u0027]))"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        ddata \u003d dict()"},{"line_number":327,"context_line":"        ddata[\u0027replication_driver_data\u0027] \u003d (\u0027tmp_snapshot:\u0027 +"},{"line_number":328,"context_line":"                                            + tmp_snapshot_name +"},{"line_number":329,"context_line":"                                            + \u0027,\u0027)"},{"line_number":330,"context_line":"        return ddata"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_ff53d837","line":327,"range":{"start_line":327,"start_character":59,"end_line":327,"end_character":61},"in_reply_to":"ff570b3c_65aadf19","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        except jexc.JDSSException as err:"},{"line_number":352,"context_line":"            if \u0027unable to create volume\u0027 in err.args[0]:"},{"line_number":353,"context_line":"                msg \u003d _(\u0027Failed to create volume %(vol)s\u0027"},{"line_number":354,"context_line":"                        \u0027from snapshot %(snap)s\u0027) % {\u0027vol\u0027: volume[\u0027id\u0027],"},{"line_number":355,"context_line":"                                                     \u0027snap\u0027: snapshot[\u0027id\u0027]}"},{"line_number":356,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_45a7db50","line":353,"range":{"start_line":353,"start_character":56,"end_line":353,"end_character":57},"updated":"2020-05-23 15:01:55.000000000","message":"Missing trailing space.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        except jexc.JDSSException as err:"},{"line_number":352,"context_line":"            if \u0027unable to create volume\u0027 in err.args[0]:"},{"line_number":353,"context_line":"                msg \u003d _(\u0027Failed to create volume %(vol)s\u0027"},{"line_number":354,"context_line":"                        \u0027from snapshot %(snap)s\u0027) % {\u0027vol\u0027: volume[\u0027id\u0027],"},{"line_number":355,"context_line":"                                                     \u0027snap\u0027: snapshot[\u0027id\u0027]}"},{"line_number":356,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_9f3a9ce4","line":353,"range":{"start_line":353,"start_character":56,"end_line":353,"end_character":57},"in_reply_to":"ff570b3c_45a7db50","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":526,"context_line":"            \u0027location_info\u0027: location_info"},{"line_number":527,"context_line":"        }"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        LOG.debug(\u0027Total capacity: %d,\u0027"},{"line_number":530,"context_line":"                  \u0027Free %d.\u0027,"},{"line_number":531,"context_line":"                  self._stats[\u0027total_capacity_gb\u0027],"},{"line_number":532,"context_line":"                  self._stats[\u0027free_capacity_gb\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_a5619714","line":529,"range":{"start_line":529,"start_character":38,"end_line":529,"end_character":39},"updated":"2020-05-23 15:01:55.000000000","message":"Missing trailing space.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":526,"context_line":"            \u0027location_info\u0027: location_info"},{"line_number":527,"context_line":"        }"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        LOG.debug(\u0027Total capacity: %d,\u0027"},{"line_number":530,"context_line":"                  \u0027Free %d.\u0027,"},{"line_number":531,"context_line":"                  self._stats[\u0027total_capacity_gb\u0027],"},{"line_number":532,"context_line":"                  self._stats[\u0027free_capacity_gb\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_df2374bd","line":529,"range":{"start_line":529,"start_character":38,"end_line":529,"end_character":39},"in_reply_to":"ff570b3c_a5619714","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":606,"context_line":""},{"line_number":607,"context_line":"        except jexc.JDSSRESTException as ex:"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"            err_msg \u003d _(\u0027Unable to attach target %(target)s to\u0027"},{"line_number":610,"context_line":"                        \u0027volume %(volume)s because of %(error)s.\u0027) % {"},{"line_number":611,"context_line":"                \u0027target\u0027: target_name,"},{"line_number":612,"context_line":"                \u0027volume\u0027: volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_85661329","line":609,"range":{"start_line":609,"start_character":62,"end_line":609,"end_character":63},"updated":"2020-05-23 15:01:55.000000000","message":"Missing trailing space.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":606,"context_line":""},{"line_number":607,"context_line":"        except jexc.JDSSRESTException as ex:"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"            err_msg \u003d _(\u0027Unable to attach target %(target)s to\u0027"},{"line_number":610,"context_line":"                        \u0027volume %(volume)s because of %(error)s.\u0027) % {"},{"line_number":611,"context_line":"                \u0027target\u0027: target_name,"},{"line_number":612,"context_line":"                \u0027volume\u0027: volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_1f2e8ca4","line":609,"range":{"start_line":609,"start_character":62,"end_line":609,"end_character":63},"in_reply_to":"ff570b3c_85661329","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":"        target_name \u003d self.jovian_target_prefix + volume[\"id\"]"},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"        if self.ra.is_target(target_name) is True:"},{"line_number":633,"context_line":"            LOG.debug(\"Target %s exists.\", target_name)"},{"line_number":634,"context_line":"            if self.ra.is_target_lun(target_name,"},{"line_number":635,"context_line":"                                     volume[\"id\"])\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_c5700be0","line":632,"range":{"start_line":632,"start_character":41,"end_line":632,"end_character":50},"updated":"2020-05-23 15:01:55.000000000","message":"\"is True\" is redundant.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":"        target_name \u003d self.jovian_target_prefix + volume[\"id\"]"},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"        if self.ra.is_target(target_name) is True:"},{"line_number":633,"context_line":"            LOG.debug(\"Target %s exists.\", target_name)"},{"line_number":634,"context_line":"            if self.ra.is_target_lun(target_name,"},{"line_number":635,"context_line":"                                     volume[\"id\"])\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_ff28f897","line":632,"range":{"start_line":632,"start_character":41,"end_line":632,"end_character":50},"in_reply_to":"ff570b3c_c5700be0","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":651,"context_line":"        else:"},{"line_number":652,"context_line":"            self._create_new_target_volume(volume, target_name)"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"        return"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"    def _remove_target_volume(self, volume):"},{"line_number":657,"context_line":"        \"\"\"_remove_target_volume"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_257587cd","line":654,"range":{"start_line":654,"start_character":8,"end_line":654,"end_character":14},"updated":"2020-05-23 15:01:55.000000000","message":"Remove","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":651,"context_line":"        else:"},{"line_number":652,"context_line":"            self._create_new_target_volume(volume, target_name)"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"        return"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"    def _remove_target_volume(self, volume):"},{"line_number":657,"context_line":"        \"\"\"_remove_target_volume"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_5f192486","line":654,"range":{"start_line":654,"start_character":8,"end_line":654,"end_character":14},"in_reply_to":"ff570b3c_257587cd","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        \"\"\"_remove_target_volume"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        Ensure that volume is not attached to target and target do not exists."},{"line_number":660,"context_line":"        :param volume:"},{"line_number":661,"context_line":"        :return:"},{"line_number":662,"context_line":"        \"\"\""},{"line_number":663,"context_line":"        target_name \u003d self.jovian_target_prefix + volume[\u0027id\u0027]"},{"line_number":664,"context_line":"        LOG.debug(\"Remove_export.\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_057203e4","line":661,"range":{"start_line":660,"start_character":8,"end_line":661,"end_character":16},"updated":"2020-05-23 15:01:55.000000000","message":"Either populate these or remove them.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        \"\"\"_remove_target_volume"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        Ensure that volume is not attached to target and target do not exists."},{"line_number":660,"context_line":"        :param volume:"},{"line_number":661,"context_line":"        :return:"},{"line_number":662,"context_line":"        \"\"\""},{"line_number":663,"context_line":"        target_name \u003d self.jovian_target_prefix + volume[\u0027id\u0027]"},{"line_number":664,"context_line":"        LOG.debug(\"Remove_export.\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_9f13bc66","line":661,"range":{"start_line":660,"start_character":8,"end_line":661,"end_character":16},"in_reply_to":"ff570b3c_057203e4","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":676,"context_line":"        except jexc.JDSSRESTResourceNotFoundException as ex:"},{"line_number":677,"context_line":"            LOG.debug(\u0027Failed to remove resource %(targ) because of %(err).\u0027, {"},{"line_number":678,"context_line":"                \u0027targ\u0027: target_name,"},{"line_number":679,"context_line":"                \u0027err\u0027: str(ex.args[0])})"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        LOG.debug(\"Delete target: %s.\", target_name)"},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_a54a3780","line":679,"range":{"start_line":679,"start_character":23,"end_line":679,"end_character":26},"updated":"2020-05-23 15:01:55.000000000","message":"Remove all of these str() calls.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":676,"context_line":"        except jexc.JDSSRESTResourceNotFoundException as ex:"},{"line_number":677,"context_line":"            LOG.debug(\u0027Failed to remove resource %(targ) because of %(err).\u0027, {"},{"line_number":678,"context_line":"                \u0027targ\u0027: target_name,"},{"line_number":679,"context_line":"                \u0027err\u0027: str(ex.args[0])})"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        LOG.debug(\"Delete target: %s.\", target_name)"},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_7f16a857","line":679,"range":{"start_line":679,"start_character":23,"end_line":679,"end_character":26},"in_reply_to":"ff570b3c_a54a3780","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":799,"context_line":"    def terminate_connection(self, volume, connector, force\u003dFalse, **kwargs):"},{"line_number":800,"context_line":"        \"\"\"terminate_connection"},{"line_number":801,"context_line":""},{"line_number":802,"context_line":"        Disallow connection from connector by removing it\u0027s ip"},{"line_number":803,"context_line":"        from allowed ip list."},{"line_number":804,"context_line":"        \"\"\""},{"line_number":805,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_854f3391","line":802,"range":{"start_line":802,"start_character":55,"end_line":802,"end_character":59},"updated":"2020-05-23 15:01:55.000000000","message":"nit: its","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":799,"context_line":"    def terminate_connection(self, volume, connector, force\u003dFalse, **kwargs):"},{"line_number":800,"context_line":"        \"\"\"terminate_connection"},{"line_number":801,"context_line":""},{"line_number":802,"context_line":"        Disallow connection from connector by removing it\u0027s ip"},{"line_number":803,"context_line":"        from allowed ip list."},{"line_number":804,"context_line":"        \"\"\""},{"line_number":805,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_ff011808","line":802,"range":{"start_line":802,"start_character":55,"end_line":802,"end_character":59},"in_reply_to":"ff570b3c_854f3391","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":813,"context_line":"        if connector[\u0027ip\u0027] in ip_settings[\u0027allow_ip\u0027]:"},{"line_number":814,"context_line":"            ip_settings[\u0027allow_ip\u0027].remove(connector[\u0027ip\u0027])"},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"            LOG.debug(\"terminate_connection for %(volume)s %(ip)s.\""},{"line_number":817,"context_line":"                      \"from ip list %(ip_list)s.\","},{"line_number":818,"context_line":"                      {\u0027volume\u0027: volume[\u0027id\u0027],"},{"line_number":819,"context_line":"                       \u0027ip\u0027: connector[\u0027ip\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_e5442f77","line":816,"range":{"start_line":816,"start_character":66,"end_line":816,"end_character":67},"updated":"2020-05-23 15:01:55.000000000","message":"Missing trailing space.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":813,"context_line":"        if connector[\u0027ip\u0027] in ip_settings[\u0027allow_ip\u0027]:"},{"line_number":814,"context_line":"            ip_settings[\u0027allow_ip\u0027].remove(connector[\u0027ip\u0027])"},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"            LOG.debug(\"terminate_connection for %(volume)s %(ip)s.\""},{"line_number":817,"context_line":"                      \"from ip list %(ip_list)s.\","},{"line_number":818,"context_line":"                      {\u0027volume\u0027: volume[\u0027id\u0027],"},{"line_number":819,"context_line":"                       \u0027ip\u0027: connector[\u0027ip\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_1bffbf01","line":816,"range":{"start_line":816,"start_character":66,"end_line":816,"end_character":67},"in_reply_to":"ff570b3c_e5442f77","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import random"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import six"},{"line_number":21,"context_line":"from oslo_log import log as logging"},{"line_number":22,"context_line":"from oslo_utils import units as o_units"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from cinder import exception"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_a16ed6c5","line":21,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: H306: imports not in alphabetical order (six, oslo_log.log)","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        :param vname: physical volume name"},{"line_number":161,"context_line":"        \"\"\""},{"line_number":162,"context_line":"        rename \u003d {\u0027name\u0027: jcom.hidden(vname)}"},{"line_number":163,"context_line":"        deletable \u003d False"},{"line_number":164,"context_line":"        try:"},{"line_number":165,"context_line":"            self.ra.modify_lun(vname, rename)"},{"line_number":166,"context_line":"        except jexc.JDSSException as err:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_817112ab","line":163,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: F841 local variable \u0027deletable\u0027 is assigned to but never used","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"        try:"},{"line_number":394,"context_line":"            self.ra.create_snapshot(oname, coname)"},{"line_number":395,"context_line":"        except jexc.JDSSRESTSnapshotExistsException as err:"},{"line_number":396,"context_line":"            try:"},{"line_number":397,"context_line":"                self.ra.delete_snapshot(oname, coname)"},{"line_number":398,"context_line":"            except jexc.JDSSRESTSnapshotIsBusyException as err:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_e16baeb3","line":395,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: F841 local variable \u0027err\u0027 is assigned to but never used","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        except jexc.JDSSRESTSnapshotExistsException as err:"},{"line_number":396,"context_line":"            try:"},{"line_number":397,"context_line":"                self.ra.delete_snapshot(oname, coname)"},{"line_number":398,"context_line":"            except jexc.JDSSRESTSnapshotIsBusyException as err:"},{"line_number":399,"context_line":"                raise exception.Duplicate()"},{"line_number":400,"context_line":"            except jexc.JDSSException as err:"},{"line_number":401,"context_line":"                LOG.warning(err.message)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_c1666aed","line":398,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: F841 local variable \u0027err\u0027 is assigned to but never used","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":416,"context_line":"                coname,"},{"line_number":417,"context_line":"                oname,"},{"line_number":418,"context_line":"                sparse\u003dself.jovian_sparse)"},{"line_number":419,"context_line":"        except jexc.JDSSRESTVolumeExistsException as err:"},{"line_number":420,"context_line":"            raise exception.Duplicate()"},{"line_number":421,"context_line":"        except jexc.JDSSException as err:"},{"line_number":422,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_2162c6d8","line":419,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: F841 local variable \u0027err\u0027 is assigned to but never used","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":418,"context_line":"                sparse\u003dself.jovian_sparse)"},{"line_number":419,"context_line":"        except jexc.JDSSRESTVolumeExistsException as err:"},{"line_number":420,"context_line":"            raise exception.Duplicate()"},{"line_number":421,"context_line":"        except jexc.JDSSException as err:"},{"line_number":422,"context_line":"            try:"},{"line_number":423,"context_line":"                self.ra.delete_snapshot(oname, coname)"},{"line_number":424,"context_line":"            except jexc.JDSSRESTSnapshotIsBusyException as err:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_015d0214","line":421,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: F841 local variable \u0027err\u0027 is assigned to but never used","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        except jexc.JDSSException as err:"},{"line_number":422,"context_line":"            try:"},{"line_number":423,"context_line":"                self.ra.delete_snapshot(oname, coname)"},{"line_number":424,"context_line":"            except jexc.JDSSRESTSnapshotIsBusyException as err:"},{"line_number":425,"context_line":"                raise exception.Duplicate()"},{"line_number":426,"context_line":"            except jexc.JDSSException as err:"},{"line_number":427,"context_line":"                LOG.warning(err.message)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_619ddeba","line":424,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: F841 local variable \u0027err\u0027 is assigned to but never used","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":697,"context_line":"            LOG.error(emsg)"},{"line_number":698,"context_line":"            try:"},{"line_number":699,"context_line":"                self.ra.delete_target(target_name)"},{"line_number":700,"context_line":"            except jexc.JDSSException as ex:"},{"line_number":701,"context_line":"                raise exception.VolumeBackendAPIException(message\u003demsg)"},{"line_number":702,"context_line":"            raise exception.VolumeBackendAPIException(message\u003demsg)"},{"line_number":703,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_41a09af4","line":700,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: F841 local variable \u0027ex\u0027 is assigned to but never used","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":715,"context_line":"        except jexc.JDSSRESTException as ex:"},{"line_number":716,"context_line":"            try:"},{"line_number":717,"context_line":"                self.ra.delete_target(target_name)"},{"line_number":718,"context_line":"            except jexc.JDSSException as ex:"},{"line_number":719,"context_line":"                pass"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"            err_msg \u003d (_(\u0027Unable to create user %(user)s \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_a1a376ff","line":718,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: F841 local variable \u0027ex\u0027 is assigned to but never used","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":959,"context_line":"            err_msg \u003d (_(\u0027target %s do not exists\u0027) % target_name)"},{"line_number":960,"context_line":"            LOG.debug(err_msg)"},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"        except jexc.JDSSException as ex:"},{"line_number":963,"context_line":"            err_msg \u003d (_(\u0027Unable to deactivate target %(target)s\u0027) % {"},{"line_number":964,"context_line":"                \u0027target\u0027: target_name})"},{"line_number":965,"context_line":"            LOG.debug(err_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_81a6320e","line":962,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: F841 local variable \u0027ex\u0027 is assigned to but never used","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"91fb89b1307738c61179170d42bb4f3850fa98b4","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        :param volume: volume reference"},{"line_number":125,"context_line":"        :return: model update dict for volume reference"},{"line_number":126,"context_line":"        \"\"\""},{"line_number":127,"context_line":"        vname \u003d jcom.vname(volume[\u0027id\u0027])"},{"line_number":128,"context_line":"        LOG.debug(\u0027creating volume %s.\u0027, vname)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        provider_location \u003d self._get_provider_location(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_e6fd70b2","line":127,"range":{"start_line":127,"start_character":27,"end_line":127,"end_character":39},"updated":"2020-08-11 15:40:32.000000000","message":"volume.id instead of volume[\u0027id\u0027]","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        :param volume: volume reference"},{"line_number":125,"context_line":"        :return: model update dict for volume reference"},{"line_number":126,"context_line":"        \"\"\""},{"line_number":127,"context_line":"        vname \u003d jcom.vname(volume[\u0027id\u0027])"},{"line_number":128,"context_line":"        LOG.debug(\u0027creating volume %s.\u0027, vname)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        provider_location \u003d self._get_provider_location(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_95bceedc","line":127,"range":{"start_line":127,"start_character":27,"end_line":127,"end_character":39},"in_reply_to":"9f560f44_e6fd70b2","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"91fb89b1307738c61179170d42bb4f3850fa98b4","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        field +\u003d \"0123456789\""},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        chap_user \u003d \u0027\u0027.join(random.sample(field, 8))"},{"line_number":565,"context_line":"        chap_password \u003d \u0027\u0027.join(random.sample(field,"},{"line_number":566,"context_line":"                                              int(self.jovian_chap_pass_len)))"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        return \u0027CHAP {user} {passwd}\u0027.format("}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_061a2416","line":565,"range":{"start_line":565,"start_character":8,"end_line":565,"end_character":21},"updated":"2020-08-11 15:40:32.000000000","message":"Use\n    volume_utils.generate_password\nfor this instead of implementing it here.","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        field +\u003d \"0123456789\""},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"        chap_user \u003d \u0027\u0027.join(random.sample(field, 8))"},{"line_number":565,"context_line":"        chap_password \u003d \u0027\u0027.join(random.sample(field,"},{"line_number":566,"context_line":"                                              int(self.jovian_chap_pass_len)))"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        return \u0027CHAP {user} {passwd}\u0027.format("}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_35ea42d7","line":565,"range":{"start_line":565,"start_character":8,"end_line":565,"end_character":21},"in_reply_to":"9f560f44_061a2416","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import units as o_units"},{"line_number":22,"context_line":"import six"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from cinder import exception"},{"line_number":25,"context_line":"from cinder.i18n import _"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_66010e6b","line":22,"updated":"2020-09-02 22:31:51.000000000","message":"six usage should be dropped. We only support py3, so should not be needed anymore.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import units as o_units"},{"line_number":22,"context_line":"import six"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from cinder import exception"},{"line_number":25,"context_line":"from cinder.i18n import _"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_4107781e","line":22,"in_reply_to":"9f560f44_66010e6b","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class JovianISCSIDriver(driver.ISCSIDriver):"},{"line_number":37,"context_line":"    \"\"\"Executes volume driver commands on Open-E JovianDSS V7."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_e6419ea8","line":35,"updated":"2020-09-02 22:31:51.000000000","message":"Needs @interface.volumedriver decorator. See example here:\n\nhttps://opendev.org/openstack/cinder/src/branch/master/cinder/volume/drivers/lvm.py#L77\n\ntox -e compliance should be run too.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class JovianISCSIDriver(driver.ISCSIDriver):"},{"line_number":37,"context_line":"    \"\"\"Executes volume driver commands on Open-E JovianDSS V7."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_5c111b53","line":35,"in_reply_to":"9f560f44_e6419ea8","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        try:"},{"line_number":248,"context_line":"            snapshots \u003d self.ra.get_snapshots(vname)"},{"line_number":249,"context_line":"        except jexc.JDSSResourceNotFoundException:"},{"line_number":250,"context_line":"            LOG.debug(\u0027volume %s dne, it was already\u0027"},{"line_number":251,"context_line":"                      \u0027deleted.\u0027, vname)"},{"line_number":252,"context_line":"            return"},{"line_number":253,"context_line":"        except jexc.JDSSException as err:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_06aad217","line":250,"range":{"start_line":250,"start_character":52,"end_line":250,"end_character":53},"updated":"2020-09-02 22:31:51.000000000","message":"Missing trailing space.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        try:"},{"line_number":248,"context_line":"            snapshots \u003d self.ra.get_snapshots(vname)"},{"line_number":249,"context_line":"        except jexc.JDSSResourceNotFoundException:"},{"line_number":250,"context_line":"            LOG.debug(\u0027volume %s dne, it was already\u0027"},{"line_number":251,"context_line":"                      \u0027deleted.\u0027, vname)"},{"line_number":252,"context_line":"            return"},{"line_number":253,"context_line":"        except jexc.JDSSException as err:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_dbea4372","line":250,"range":{"start_line":250,"start_character":52,"end_line":250,"end_character":53},"in_reply_to":"9f560f44_06aad217","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":266,"context_line":"    def _gc_delete(self, vname):"},{"line_number":267,"context_line":"        \"\"\"Delete volume and its hidden parents"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        Deletes volume going recursivly to first active parent and cals"},{"line_number":270,"context_line":"        recursive deletion"},{"line_number":271,"context_line":"        \"\"\""},{"line_number":272,"context_line":"        vol \u003d None"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_e6a4fe4d","line":269,"range":{"start_line":269,"start_character":29,"end_line":269,"end_character":39},"updated":"2020-09-02 22:31:51.000000000","message":"recursively","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":266,"context_line":"    def _gc_delete(self, vname):"},{"line_number":267,"context_line":"        \"\"\"Delete volume and its hidden parents"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        Deletes volume going recursivly to first active parent and cals"},{"line_number":270,"context_line":"        recursive deletion"},{"line_number":271,"context_line":"        \"\"\""},{"line_number":272,"context_line":"        vol \u003d None"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_3c3a67c3","line":269,"range":{"start_line":269,"start_character":29,"end_line":269,"end_character":39},"in_reply_to":"9f560f44_e6a4fe4d","updated":"2020-09-07 21:30:42.000000000","message":"\u003e recursively","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        try:"},{"line_number":274,"context_line":"            vol \u003d self.ra.get_lun(vname)"},{"line_number":275,"context_line":"        except jexc.JDSSResourceNotFoundException:"},{"line_number":276,"context_line":"            LOG.debug(\u0027Volume %s does not exist, it was already\u0027"},{"line_number":277,"context_line":"                      \u0027deleted.\u0027, vname)"},{"line_number":278,"context_line":"            return"},{"line_number":279,"context_line":"        except jexc.JDSSException as err:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_26643621","line":276,"range":{"start_line":276,"start_character":63,"end_line":276,"end_character":64},"updated":"2020-09-02 22:31:51.000000000","message":"Missing trailing space.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        try:"},{"line_number":274,"context_line":"            vol \u003d self.ra.get_lun(vname)"},{"line_number":275,"context_line":"        except jexc.JDSSResourceNotFoundException:"},{"line_number":276,"context_line":"            LOG.debug(\u0027Volume %s does not exist, it was already\u0027"},{"line_number":277,"context_line":"                      \u0027deleted.\u0027, vname)"},{"line_number":278,"context_line":"            return"},{"line_number":279,"context_line":"        except jexc.JDSSException as err:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_1c6fa3c5","line":276,"range":{"start_line":276,"start_character":63,"end_line":276,"end_character":64},"in_reply_to":"9f560f44_26643621","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            source snapshot if such exists, or deletes it"},{"line_number":302,"context_line":"        If it is not hidden, trigers delete for snapshot"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        :param ovname: origin phisical volume name"},{"line_number":305,"context_line":"        :param osname: origin phisical snapshot name"},{"line_number":306,"context_line":"        \"\"\""},{"line_number":307,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_866b82ef","line":304,"range":{"start_line":304,"start_character":30,"end_line":304,"end_character":38},"updated":"2020-09-02 22:31:51.000000000","message":"physical","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":312,"context_line":"                snaps \u003d self.ra.get_snapshots(opvname)"},{"line_number":313,"context_line":"            except jexc.JDSSResourceNotFoundException:"},{"line_number":314,"context_line":"                LOG.debug(\u0027Unable to get physical snapshots related to \u0027"},{"line_number":315,"context_line":"                          \u0027 physical volume %s, volume do not exist\u0027, opvname)"},{"line_number":316,"context_line":"                return"},{"line_number":317,"context_line":"            except jexc.JDSSException as err:"},{"line_number":318,"context_line":"                raise exception.VolumeBackendAPIException(err)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_666e2e01","line":315,"range":{"start_line":315,"start_character":27,"end_line":315,"end_character":28},"updated":"2020-09-02 22:31:51.000000000","message":"Extra space","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        :param volume: volume reference"},{"line_number":367,"context_line":"        :param new_size: volume new size in GB"},{"line_number":368,"context_line":"        \"\"\""},{"line_number":369,"context_line":"        LOG.debug(\"Extend volume %s\", volume.id)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_1a16a24a","line":368,"updated":"2020-09-02 22:31:51.000000000","message":"Since this is called in a few places without checking, this should do the check and return if new_size is the same as the existing volume size.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        :param volume: volume reference"},{"line_number":367,"context_line":"        :param new_size: volume new size in GB"},{"line_number":368,"context_line":"        \"\"\""},{"line_number":369,"context_line":"        LOG.debug(\"Extend volume %s\", volume.id)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_9c6441bb","line":368,"in_reply_to":"9f560f44_1a16a24a","updated":"2020-09-07 21:30:42.000000000","message":"It raise exception if volume extension fails.\nIve added additional checks for this exception in other places.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":393,"context_line":"            except jexc.JDSSSnapshotIsBusyException:"},{"line_number":394,"context_line":"                raise exception.Duplicate()"},{"line_number":395,"context_line":"            except jexc.JDSSException:"},{"line_number":396,"context_line":"                LOG.warning(err)"},{"line_number":397,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":398,"context_line":"                    (_(\"Unable to create volume %s.\") % coname))"},{"line_number":399,"context_line":"        except jexc.JDSSResourceNotFoundException:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_067f72ab","line":396,"updated":"2020-09-02 22:31:51.000000000","message":"Warning messages should be things that trigger an operator to take action on. This just prints out the failure message. It should either be changed to debug, or it should include some details letting the operator know what to do to resolve.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":393,"context_line":"            except jexc.JDSSSnapshotIsBusyException:"},{"line_number":394,"context_line":"                raise exception.Duplicate()"},{"line_number":395,"context_line":"            except jexc.JDSSException:"},{"line_number":396,"context_line":"                LOG.warning(err)"},{"line_number":397,"context_line":"                raise exception.VolumeBackendAPIException("},{"line_number":398,"context_line":"                    (_(\"Unable to create volume %s.\") % coname))"},{"line_number":399,"context_line":"        except jexc.JDSSResourceNotFoundException:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_3a525068","line":396,"in_reply_to":"9f560f44_067f72ab","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            except jexc.JDSSException as terr:"},{"line_number":428,"context_line":"                LOG.warning(terr)"},{"line_number":429,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":430,"context_line":"                \"Unable to create volume {vol} because of {err}.\".format("},{"line_number":431,"context_line":"                    vol\u003dconame, err\u003derr))"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"    def create_cloned_volume(self, volume, src_vref):"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_c65d7a49","line":430,"range":{"start_line":430,"start_character":16,"end_line":430,"end_character":17},"updated":"2020-09-02 22:31:51.000000000","message":"Needs _() translation marker.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":543,"context_line":"        else:"},{"line_number":544,"context_line":"            self._gc_delete(sname)"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"    def local_path(self, volume):"},{"line_number":547,"context_line":"        \"\"\"Return local path to existing local volume."},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"        We never have local volumes, so it raises NotImplementedError."},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"        :raise: :py:exc:`NotImplementedError`"},{"line_number":552,"context_line":"        \"\"\""},{"line_number":553,"context_line":"        raise NotImplementedError"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def _get_provider_auth(self):"},{"line_number":556,"context_line":"        \"\"\"Get provider authentication for the volume."}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_06581254","line":553,"range":{"start_line":546,"start_character":4,"end_line":553,"end_character":33},"updated":"2020-09-02 22:31:51.000000000","message":"This can be removed.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":543,"context_line":"        else:"},{"line_number":544,"context_line":"            self._gc_delete(sname)"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"    def local_path(self, volume):"},{"line_number":547,"context_line":"        \"\"\"Return local path to existing local volume."},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"        We never have local volumes, so it raises NotImplementedError."},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"        :raise: :py:exc:`NotImplementedError`"},{"line_number":552,"context_line":"        \"\"\""},{"line_number":553,"context_line":"        raise NotImplementedError"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def _get_provider_auth(self):"},{"line_number":556,"context_line":"        \"\"\"Get provider authentication for the volume."}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_7cb4cd36","line":553,"range":{"start_line":546,"start_character":4,"end_line":553,"end_character":33},"in_reply_to":"9f560f44_06581254","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":611,"context_line":""},{"line_number":612,"context_line":"        self._remove_target_volume(volume)"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":615,"context_line":"        \"\"\"Get volume stats."},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        If \u0027refresh\u0027 is True, run update the stats first."},{"line_number":618,"context_line":"        \"\"\""},{"line_number":619,"context_line":"        if refresh or self._stats is None:"},{"line_number":620,"context_line":"            self._update_volume_stats()"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"        return self._stats"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"    def _update_volume_stats(self):"},{"line_number":625,"context_line":"        \"\"\"Retrieve stats info.\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_a61de678","line":622,"range":{"start_line":614,"start_character":3,"end_line":622,"end_character":26},"updated":"2020-09-02 22:31:51.000000000","message":"This can be removed as that is the base implementation.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":693,"context_line":"        except jexc.JDSSException as ex:"},{"line_number":694,"context_line":"            msg \u003d (\u0027Unable to attach volume to target {target} \u0027"},{"line_number":695,"context_line":"                   \u0027because of {error}.\u0027)"},{"line_number":696,"context_line":"            emsg \u003d msg.format(target\u003dtarget_name, error\u003dsix.text_type(ex))"},{"line_number":697,"context_line":"            LOG.error(emsg)"},{"line_number":698,"context_line":"            try:"},{"line_number":699,"context_line":"                self.ra.delete_target(target_name)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_c60bba28","line":696,"range":{"start_line":696,"start_character":22,"end_line":696,"end_character":29},"updated":"2020-09-02 22:31:51.000000000","message":"Log message should not be preformatted. Use \"%s\" style formatting and pass in the formatting values as args to the LOG.error() call so the logger can perform the formatting if and when needed.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":743,"context_line":"        auth \u003d volume.provider_auth"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"        if not auth:"},{"line_number":746,"context_line":"            msg \u003d \"Volume {} is missing provider_auth\".format(volume.id)"},{"line_number":747,"context_line":"            raise exception.VolumeDriverException(msg)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"        (_, auth_username, auth_secret) \u003d auth.split()"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_a6068620","line":746,"range":{"start_line":746,"start_character":18,"end_line":746,"end_character":19},"updated":"2020-09-02 22:31:51.000000000","message":"_()","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":746,"context_line":"            msg \u003d \"Volume {} is missing provider_auth\".format(volume.id)"},{"line_number":747,"context_line":"            raise exception.VolumeDriverException(msg)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"        (_, auth_username, auth_secret) \u003d auth.split()"},{"line_number":750,"context_line":"        chap_cred \u003d {\"name\": auth_username,"},{"line_number":751,"context_line":"                     \"password\": auth_secret}"},{"line_number":752,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_06065221","line":749,"range":{"start_line":749,"start_character":9,"end_line":749,"end_character":10},"updated":"2020-09-02 22:31:51.000000000","message":"Don\u0027t use _ as a placeholder as it hides the i18n _ import. Change this to double underscores instead.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":746,"context_line":"            msg \u003d \"Volume {} is missing provider_auth\".format(volume.id)"},{"line_number":747,"context_line":"            raise exception.VolumeDriverException(msg)"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"        (_, auth_username, auth_secret) \u003d auth.split()"},{"line_number":750,"context_line":"        chap_cred \u003d {\"name\": auth_username,"},{"line_number":751,"context_line":"                     \"password\": auth_secret}"},{"line_number":752,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_3c6387df","line":749,"range":{"start_line":749,"start_character":9,"end_line":749,"end_character":10},"in_reply_to":"9f560f44_06065221","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":771,"context_line":"        auth \u003d volume.provider_auth"},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"        if not auth:"},{"line_number":774,"context_line":"            msg \u003d \"Volume {} is missing provider_auth\".format(volume.id)"},{"line_number":775,"context_line":"            raise exception.VolumeDriverException(msg)"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"        (_, auth_username, auth_secret) \u003d auth.split()"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_e6007e05","line":774,"range":{"start_line":774,"start_character":18,"end_line":774,"end_character":19},"updated":"2020-09-02 22:31:51.000000000","message":"Make sure all exception messages use _().","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":963,"context_line":"            LOG.debug(err_msg)"},{"line_number":964,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":965,"context_line":""},{"line_number":966,"context_line":"    def attach_volume(self,"},{"line_number":967,"context_line":"                      context,"},{"line_number":968,"context_line":"                      volume,"},{"line_number":969,"context_line":"                      instance_uuid,"},{"line_number":970,"context_line":"                      host_name,"},{"line_number":971,"context_line":"                      mount_point):"},{"line_number":972,"context_line":"        \"\"\"Callback for volume attached to instance or host.\"\"\""},{"line_number":973,"context_line":"        LOG.debug(\"Attach volume:\""},{"line_number":974,"context_line":"                  \" context: %(context)s,\""},{"line_number":975,"context_line":"                  \" volume: %(volume)s,\""},{"line_number":976,"context_line":"                  \" instance_uuid: %(uuid)s,\""},{"line_number":977,"context_line":"                  \" host_name: %(host)s,\""},{"line_number":978,"context_line":"                  \" mount point: %(mount)s.\", {"},{"line_number":979,"context_line":"                      \u0027context\u0027: context,"},{"line_number":980,"context_line":"                      \u0027volume\u0027: volume,"},{"line_number":981,"context_line":"                      \u0027uuid\u0027: instance_uuid,"},{"line_number":982,"context_line":"                      \u0027host\u0027: host_name,"},{"line_number":983,"context_line":"                      \u0027mount\u0027: mount_point})"},{"line_number":984,"context_line":""},{"line_number":985,"context_line":"    def detach_volume(self,"},{"line_number":986,"context_line":"                      context,"},{"line_number":987,"context_line":"                      volume,"},{"line_number":988,"context_line":"                      attachment\u003dNone):"},{"line_number":989,"context_line":"        \"\"\"Callback for volume detached.\"\"\""},{"line_number":990,"context_line":"        LOG.debug(\"Detach volume: %s.\", volume.id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_fa100e52","line":990,"range":{"start_line":966,"start_character":4,"end_line":990,"end_character":50},"updated":"2020-09-02 22:31:51.000000000","message":"Remove these.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":963,"context_line":"            LOG.debug(err_msg)"},{"line_number":964,"context_line":"            raise exception.VolumeBackendAPIException(err_msg)"},{"line_number":965,"context_line":""},{"line_number":966,"context_line":"    def attach_volume(self,"},{"line_number":967,"context_line":"                      context,"},{"line_number":968,"context_line":"                      volume,"},{"line_number":969,"context_line":"                      instance_uuid,"},{"line_number":970,"context_line":"                      host_name,"},{"line_number":971,"context_line":"                      mount_point):"},{"line_number":972,"context_line":"        \"\"\"Callback for volume attached to instance or host.\"\"\""},{"line_number":973,"context_line":"        LOG.debug(\"Attach volume:\""},{"line_number":974,"context_line":"                  \" context: %(context)s,\""},{"line_number":975,"context_line":"                  \" volume: %(volume)s,\""},{"line_number":976,"context_line":"                  \" instance_uuid: %(uuid)s,\""},{"line_number":977,"context_line":"                  \" host_name: %(host)s,\""},{"line_number":978,"context_line":"                  \" mount point: %(mount)s.\", {"},{"line_number":979,"context_line":"                      \u0027context\u0027: context,"},{"line_number":980,"context_line":"                      \u0027volume\u0027: volume,"},{"line_number":981,"context_line":"                      \u0027uuid\u0027: instance_uuid,"},{"line_number":982,"context_line":"                      \u0027host\u0027: host_name,"},{"line_number":983,"context_line":"                      \u0027mount\u0027: mount_point})"},{"line_number":984,"context_line":""},{"line_number":985,"context_line":"    def detach_volume(self,"},{"line_number":986,"context_line":"                      context,"},{"line_number":987,"context_line":"                      volume,"},{"line_number":988,"context_line":"                      attachment\u003dNone):"},{"line_number":989,"context_line":"        \"\"\"Callback for volume detached.\"\"\""},{"line_number":990,"context_line":"        LOG.debug(\"Detach volume: %s.\", volume.id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_fc710faa","line":990,"range":{"start_line":966,"start_character":4,"end_line":990,"end_character":50},"in_reply_to":"9f560f44_fa100e52","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            self.ra.modify_lun(vname, rename)"},{"line_number":161,"context_line":"        except jexc.JDSSException as err:"},{"line_number":162,"context_line":"            msg \u003d _(\u0027Failure in hidding {object}, err: {error},\u0027"},{"line_number":163,"context_line":"                    \u0027 object have to be removed manualy\u0027)"},{"line_number":164,"context_line":"            emsg \u003d msg.format(object\u003dvname, error\u003derr)"},{"line_number":165,"context_line":"            LOG.warning(msg, {\"object\": vname, \"error\": err})"},{"line_number":166,"context_line":"            raise exception.VolumeBackendAPIException(emsg)"}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_dd13db00","line":163,"range":{"start_line":163,"start_character":48,"end_line":163,"end_character":55},"updated":"2020-09-28 15:45:52.000000000","message":"manually","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            msg \u003d _(\u0027Failure in hidding {object}, err: {error},\u0027"},{"line_number":163,"context_line":"                    \u0027 object have to be removed manualy\u0027)"},{"line_number":164,"context_line":"            emsg \u003d msg.format(object\u003dvname, error\u003derr)"},{"line_number":165,"context_line":"            LOG.warning(msg, {\"object\": vname, \"error\": err})"},{"line_number":166,"context_line":"            raise exception.VolumeBackendAPIException(emsg)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def _clean_garbage_snapshots(self, vname, snapshots):"}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_5d0fcbdf","line":165,"range":{"start_line":165,"start_character":24,"end_line":165,"end_character":61},"updated":"2020-09-28 15:45:52.000000000","message":"You are mixing two styles for string formatting here. THis will not work. In this case, just pass emsg into the LOG.warning call:\n\nLOG.warning(emsg)","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        \"\"\"Delete or hides volume(if it is busy)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        Go over snapshots and deletes them if possible"},{"line_number":190,"context_line":"        Calls for recursiv evolume deletion if volume do not have childs"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":"        vsnaps \u003d []"},{"line_number":193,"context_line":"        deletable \u003d True"}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_bde1c700","line":190,"range":{"start_line":190,"start_character":66,"end_line":190,"end_character":72},"updated":"2020-09-28 15:45:52.000000000","message":"children","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        \"\"\"Delete or hides volume(if it is busy)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        Go over snapshots and deletes them if possible"},{"line_number":190,"context_line":"        Calls for recursiv evolume deletion if volume do not have childs"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":"        vsnaps \u003d []"},{"line_number":193,"context_line":"        deletable \u003d True"}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_7dd8cf51","line":190,"range":{"start_line":190,"start_character":18,"end_line":190,"end_character":26},"updated":"2020-09-28 15:45:52.000000000","message":"recursive volume","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                except jexc.JDSSException as err:"},{"line_number":231,"context_line":"                    LOG.warning(\u0027Failure during deletion of physical \u0027"},{"line_number":232,"context_line":"                                \u0027snapshot %s, err: %s\u0027, vsnap[0], err)"},{"line_number":233,"context_line":"                    msg \u003d (_(\u0027Failure during deletin of virtual snapshot \u0027"},{"line_number":234,"context_line":"                             \u0027%s\u0027) % vsnap[1])"},{"line_number":235,"context_line":"                    raise exception.VolumeBackendAPIException(msg)"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_1dbc33da","line":233,"range":{"start_line":233,"start_character":45,"end_line":233,"end_character":52},"updated":"2020-09-28 15:45:52.000000000","message":"deletion","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":441,"context_line":"                                        force_umount\u003dTrue)"},{"line_number":442,"context_line":"            except jexc.JDSSException as terr:"},{"line_number":443,"context_line":"                LOG.warning(\"Because of %s phisical snapshot %s of volume\""},{"line_number":444,"context_line":"                            \" %s have to be removed manualy\","},{"line_number":445,"context_line":"                            terr,"},{"line_number":446,"context_line":"                            coname,"},{"line_number":447,"context_line":"                            oname)"}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_dd963b4a","line":444,"range":{"start_line":444,"start_character":52,"end_line":444,"end_character":59},"updated":"2020-09-28 15:45:52.000000000","message":"manually","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":467,"context_line":"        self._clone_object(vname, cvname)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        try:"},{"line_number":470,"context_line":"            self.extend_volume(volume, int(volume.size))"},{"line_number":471,"context_line":"        except exception.VolumeBackendAPIException:"},{"line_number":472,"context_line":"            # If volume can\u0027t be set to a proper size make sure to clean it"},{"line_number":473,"context_line":"            # before failing"}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_dd191bd2","line":470,"range":{"start_line":470,"start_character":17,"end_line":470,"end_character":30},"updated":"2020-09-28 15:45:52.000000000","message":"Since this blindly calls the rest API, you should really check the original versus the requested size and only attempt to extend the volume is the new size is actually larger.","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        self._remove_target_volume(volume)"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":645,"context_line":"        \"\"\"Get volume stats."},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"        If \u0027refresh\u0027 is True, run update the stats first."}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_3dd81723","line":644,"updated":"2020-09-28 15:45:52.000000000","message":"You can remove this call and just implement _update_volume_stats.\n\nhttps://opendev.org/openstack/cinder/src/branch/master/cinder/volume/driver.py#L632-L640","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"9fc65ecdcc4c499abf5c0eedf54a6551725aae23","unresolved":false,"context_lines":[{"line_number":612,"context_line":""},{"line_number":613,"context_line":"        :return: string of auth method and credentials"},{"line_number":614,"context_line":"        \"\"\""},{"line_number":615,"context_line":"        field \u003d \"abcdefghijklmnopqrstuvwxyz\""},{"line_number":616,"context_line":"        field +\u003d \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\""},{"line_number":617,"context_line":"        field +\u003d \"0123456789\""},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"        chap_user \u003d volume_utils.generate_password("},{"line_number":620,"context_line":"            length\u003d8,"}],"source_content_type":"text/x-python","patch_set":34,"id":"9f560f44_5b6db7ca","line":617,"range":{"start_line":615,"start_character":0,"end_line":617,"end_character":29},"updated":"2020-10-05 12:46:36.000000000","message":"This seems to be unused.","commit_id":"988bf01a30beb88e5a5df67e6231ca795af047e9"}],"cinder/volume/drivers/open_e/jovian_common/exception.py":[{"author":{"_account_id":31016,"name":"Ivan Pchelintsev","email":"i.pchelintsev@yadro.com","username":"pcheli"},"change_message_id":"af2242a381acde7f8e4e111a1e4fab32692752f4","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class JDSSRESTException(JDSSException):"},{"line_number":25,"context_line":"    message \u003d _(\"JDSS REST request %(request) faild: %(reason)s.\")"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class JDSSRESTProxyException(JDSSException):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_bd856709","line":25,"range":{"start_line":25,"start_character":34,"end_line":25,"end_character":45},"updated":"2020-05-20 18:11:28.000000000","message":"s missed after closing bracket.","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class JDSSRESTException(JDSSException):"},{"line_number":25,"context_line":"    message \u003d _(\"JDSS REST request %(request) faild: %(reason)s.\")"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class JDSSRESTProxyException(JDSSException):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_7b719bde","line":25,"range":{"start_line":25,"start_character":34,"end_line":25,"end_character":45},"in_reply_to":"ff570b3c_bd856709","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"},{"author":{"_account_id":31016,"name":"Ivan Pchelintsev","email":"i.pchelintsev@yadro.com","username":"pcheli"},"change_message_id":"af2242a381acde7f8e4e111a1e4fab32692752f4","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class JDSSRESTProxyException(JDSSException):"},{"line_number":29,"context_line":"    message \u003d _(\"JDSS connection with %(host) failed: %(reason)s.\")"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class JDSSRESTResourceNotFoundException(JDSSException):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_3d715745","line":29,"range":{"start_line":29,"start_character":38,"end_line":29,"end_character":45},"updated":"2020-05-20 18:11:28.000000000","message":"s missed after closing bracket.","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class JDSSRESTProxyException(JDSSException):"},{"line_number":29,"context_line":"    message \u003d _(\"JDSS connection with %(host) failed: %(reason)s.\")"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class JDSSRESTResourceNotFoundException(JDSSException):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_bb7b33bc","line":29,"range":{"start_line":29,"start_character":38,"end_line":29,"end_character":45},"in_reply_to":"ff570b3c_3d715745","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"}],"cinder/volume/drivers/open_e/jovian_common/jdss_common.py":[{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":20,"context_line":"def is_volume(name):"},{"line_number":21,"context_line":"    \"\"\"Return True if volume\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    if name[:2] \u003d\u003d \"v_\":"},{"line_number":24,"context_line":"        return True"},{"line_number":25,"context_line":"    return False"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def idname(name):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_742e7343","line":25,"range":{"start_line":23,"start_character":0,"end_line":25,"end_character":16},"updated":"2020-08-24 16:16:11.000000000","message":"nit:\n\n    return name.startswith(\"v_\")","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"def is_volume(name):"},{"line_number":21,"context_line":"    \"\"\"Return True if volume\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    if name[:2] \u003d\u003d \"v_\":"},{"line_number":24,"context_line":"        return True"},{"line_number":25,"context_line":"    return False"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def idname(name):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_9c2b0a32","line":25,"range":{"start_line":23,"start_character":0,"end_line":25,"end_character":16},"in_reply_to":"9f560f44_742e7343","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":28,"context_line":"def idname(name):"},{"line_number":29,"context_line":"    \"\"\"Convert id into snapshot name\"\"\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    if name[:2] \u003d\u003d \u0027s_\u0027:"},{"line_number":32,"context_line":"        return name[2:]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    if name[:2] \u003d\u003d \u0027v_\u0027:"},{"line_number":35,"context_line":"        return name[2:]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    if name[:2] \u003d\u003d \u0027t_\u0027:"},{"line_number":38,"context_line":"        return name[2:]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    msg \u003d _(\u0027Object name %s is incorrect\u0027) % name"},{"line_number":41,"context_line":"    raise exception.VolumeBackendAPIException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_b4fc8b72","line":38,"range":{"start_line":31,"start_character":0,"end_line":38,"end_character":23},"updated":"2020-08-24 16:16:11.000000000","message":"nit:\n\n    if name.startswith((\u0027s_\u0027, \u0027v_\u0027, \u0027t_\u0027)):\n        return name[2:]","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":28,"context_line":"def idname(name):"},{"line_number":29,"context_line":"    \"\"\"Convert id into snapshot name\"\"\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    if name[:2] \u003d\u003d \u0027s_\u0027:"},{"line_number":32,"context_line":"        return name[2:]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    if name[:2] \u003d\u003d \u0027v_\u0027:"},{"line_number":35,"context_line":"        return name[2:]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    if name[:2] \u003d\u003d \u0027t_\u0027:"},{"line_number":38,"context_line":"        return name[2:]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    msg \u003d _(\u0027Object name %s is incorrect\u0027) % name"},{"line_number":41,"context_line":"    raise exception.VolumeBackendAPIException(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_7c30b69f","line":38,"range":{"start_line":31,"start_character":0,"end_line":38,"end_character":23},"in_reply_to":"9f560f44_b4fc8b72","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":78,"context_line":"def is_hidden(name):"},{"line_number":79,"context_line":"    \"\"\"Check if object is active or no\"\"\""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    if len(name) \u003c 2:"},{"line_number":82,"context_line":"        return False"},{"line_number":83,"context_line":"    if name[:2] \u003d\u003d \u0027t_\u0027:"},{"line_number":84,"context_line":"        return True"},{"line_number":85,"context_line":"    return False"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"def origin_snapshot(origin_str):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_742b13ea","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":16},"updated":"2020-08-24 16:16:11.000000000","message":"nit:\n\n    return name.startswith(\u0027t_\u0027)","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"def is_hidden(name):"},{"line_number":79,"context_line":"    \"\"\"Check if object is active or no\"\"\""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    if len(name) \u003c 2:"},{"line_number":82,"context_line":"        return False"},{"line_number":83,"context_line":"    if name[:2] \u003d\u003d \u0027t_\u0027:"},{"line_number":84,"context_line":"        return True"},{"line_number":85,"context_line":"    return False"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"def origin_snapshot(origin_str):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_dc25825e","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":16},"in_reply_to":"9f560f44_742b13ea","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2344ea97f3f4efd91d3026f7d8c57c4aa8b309fc","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    return name.startswith(\"v_\")"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def is_snapshot(name):"},{"line_number":26,"context_line":"    \"\"\"Return True if volume\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    return name.startswith(\"s_\")"}],"source_content_type":"text/x-python","patch_set":17,"id":"9f560f44_7ca396b2","line":25,"updated":"2020-08-30 17:17:52.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"2070813441fbf33fbdce76e74c69056e8fa448a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2344ea97f3f4efd91d3026f7d8c57c4aa8b309fc","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    return name.startswith(\"s_\")"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def idname(name):"},{"line_number":31,"context_line":"    \"\"\"Convert id into snapshot name\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    if name.startswith((\u0027s_\u0027, \u0027v_\u0027, \u0027t_\u0027)):"}],"source_content_type":"text/x-python","patch_set":17,"id":"9f560f44_dca8e28d","line":30,"updated":"2020-08-30 17:17:52.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"2070813441fbf33fbdce76e74c69056e8fa448a6"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright (c) 2016 Open-E, Inc."},{"line_number":2,"context_line":"#    All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":32,"id":"9f560f44_bd39c741","line":1,"range":{"start_line":1,"start_character":19,"end_line":1,"end_character":23},"updated":"2020-09-28 15:45:52.000000000","message":"Maybe better to update this?","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"}],"cinder/volume/drivers/open_e/jovian_common/rest.py":[{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def _general_error(self, url, resp):"},{"line_number":44,"context_line":"        reason \u003d \"Request {} failure\".format(url)"},{"line_number":45,"context_line":"        if \u0027error\u0027 in resp:"},{"line_number":46,"context_line":"            c \u003d \u0027Unknown\u0027"},{"line_number":47,"context_line":"            msg \u003d \u0027Unknown\u0027"},{"line_number":48,"context_line":"            code \u003d \u0027Unknown\u0027"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"            if \u0027class\u0027 in resp:"},{"line_number":51,"context_line":"                c \u003d resp[\u0027class\u0027]"},{"line_number":52,"context_line":"            if \u0027message\u0027 in resp:"},{"line_number":53,"context_line":"                msg \u003d resp[\u0027message\u0027]"},{"line_number":54,"context_line":"            if \u0027code\u0027 in resp:"},{"line_number":55,"context_line":"                code \u003d resp[\u0027code\u0027]"},{"line_number":56,"context_line":"            if \u0027url\u0027 in resp:"},{"line_number":57,"context_line":"                url \u003d resp[\u0027url\u0027]"},{"line_number":58,"context_line":"            reason \u003d (\"Request to {url} failed with code:%{code} \""},{"line_number":59,"context_line":"                      \"of type:{eclass} reason:{message}\")"},{"line_number":60,"context_line":"            reason \u003d reason.format(eclass\u003dc, code\u003dcode, message\u003dmsg, url\u003durl)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_37199d79","line":57,"range":{"start_line":46,"start_character":12,"end_line":57,"end_character":33},"updated":"2020-08-24 16:16:11.000000000","message":"You can use Python dict get method with default values [0]:\n\n    c \u003d resp.get(\u0027class\u0027, \u0027Unknown\u0027)\n    msg \u003d resp.get(\u0027message\u0027, \u0027Unknwon\u0027)\n    code \u003d resp.get(\u0027code\u0027, \u0027Unknwon\u0027)\n    url \u003d resp.get(\u0027url\u0027, url)\n\n[0] https://docs.python.org/3/library/stdtypes.html#dict.get","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def _general_error(self, url, resp):"},{"line_number":44,"context_line":"        reason \u003d \"Request {} failure\".format(url)"},{"line_number":45,"context_line":"        if \u0027error\u0027 in resp:"},{"line_number":46,"context_line":"            c \u003d \u0027Unknown\u0027"},{"line_number":47,"context_line":"            msg \u003d \u0027Unknown\u0027"},{"line_number":48,"context_line":"            code \u003d \u0027Unknown\u0027"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"            if \u0027class\u0027 in resp:"},{"line_number":51,"context_line":"                c \u003d resp[\u0027class\u0027]"},{"line_number":52,"context_line":"            if \u0027message\u0027 in resp:"},{"line_number":53,"context_line":"                msg \u003d resp[\u0027message\u0027]"},{"line_number":54,"context_line":"            if \u0027code\u0027 in resp:"},{"line_number":55,"context_line":"                code \u003d resp[\u0027code\u0027]"},{"line_number":56,"context_line":"            if \u0027url\u0027 in resp:"},{"line_number":57,"context_line":"                url \u003d resp[\u0027url\u0027]"},{"line_number":58,"context_line":"            reason \u003d (\"Request to {url} failed with code:%{code} \""},{"line_number":59,"context_line":"                      \"of type:{eclass} reason:{message}\")"},{"line_number":60,"context_line":"            reason \u003d reason.format(eclass\u003dc, code\u003dcode, message\u003dmsg, url\u003durl)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_bc2a4e29","line":57,"range":{"start_line":46,"start_character":12,"end_line":57,"end_character":33},"in_reply_to":"9f560f44_37199d79","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027GET\u0027, req)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        if resp[\"code\"] !\u003d 200 or resp[\"error\"] is not None:"},{"line_number":82,"context_line":"            return False"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_5767f14d","line":81,"range":{"start_line":81,"start_character":33,"end_line":81,"end_character":60},"updated":"2020-08-24 16:16:11.000000000","message":"None is falsy in Python, so you can just check `resp[\"error\"]` instead of `resp[\"error\"] is not None` (unless you\u0027re expect other falsy values such as an empty list, empty string or boolean False).\n\nHere and elsewhere.","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027GET\u0027, req)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        if resp[\"code\"] !\u003d 200 or resp[\"error\"] is not None:"},{"line_number":82,"context_line":"            return False"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        return True"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def get_iface_info(self):"},{"line_number":87,"context_line":"        \"\"\"get_iface_info"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_d785c1ae","line":84,"range":{"start_line":81,"start_character":7,"end_line":84,"end_character":19},"updated":"2020-08-24 16:16:11.000000000","message":"return resp[\"code\"] \u003d\u003d 200 and not resp[\"error\"]","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027GET\u0027, req)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        if resp[\"code\"] !\u003d 200 or resp[\"error\"] is not None:"},{"line_number":82,"context_line":"            return False"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        return True"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def get_iface_info(self):"},{"line_number":87,"context_line":"        \"\"\"get_iface_info"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_fce046fb","line":84,"range":{"start_line":81,"start_character":7,"end_line":84,"end_character":19},"in_reply_to":"9f560f44_d785c1ae","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        LOG.debug(\"create volume %s\", str(jbody))"},{"line_number":142,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027POST\u0027, req, json_data\u003djbody)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if resp[\"error\"] is None and ("},{"line_number":145,"context_line":"                resp[\"code\"] \u003d\u003d 200 or resp[\"code\"] \u003d\u003d 201):"},{"line_number":146,"context_line":"            return"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if resp[\"error\"] is not None:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_d76661ed","line":145,"range":{"start_line":144,"start_character":8,"end_line":145,"end_character":59},"updated":"2020-08-24 16:16:11.000000000","message":"nit:\n\n    if not resp[\"error\"] and resp[\"code\"] in (200, 201):","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        LOG.debug(\"create volume %s\", str(jbody))"},{"line_number":142,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027POST\u0027, req, json_data\u003djbody)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if resp[\"error\"] is None and ("},{"line_number":145,"context_line":"                resp[\"code\"] \u003d\u003d 200 or resp[\"code\"] \u003d\u003d 201):"},{"line_number":146,"context_line":"            return"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if resp[\"error\"] is not None:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_fc1b2619","line":145,"range":{"start_line":144,"start_character":8,"end_line":145,"end_character":59},"in_reply_to":"9f560f44_d76661ed","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                resp[\"code\"] \u003d\u003d 200 or resp[\"code\"] \u003d\u003d 201):"},{"line_number":146,"context_line":"            return"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if resp[\"error\"] is not None:"},{"line_number":149,"context_line":"            if resp[\"error\"][\"errno\"] \u003d\u003d str(5):"},{"line_number":150,"context_line":"                raise jexc.JDSSRESTException("},{"line_number":151,"context_line":"                    \u0027Failed to create volume. {}.\u0027.format("},{"line_number":152,"context_line":"                        resp[\u0027error\u0027][\u0027message\u0027]))"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_57d89151","line":149,"range":{"start_line":148,"start_character":8,"end_line":149,"end_character":48},"updated":"2020-08-24 16:16:11.000000000","message":"nit:\n\n    if resp.get(\"error\") and resp[\"error\"][\"errno\"] \u003d\u003d str(5):","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                resp[\"code\"] \u003d\u003d 200 or resp[\"code\"] \u003d\u003d 201):"},{"line_number":146,"context_line":"            return"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if resp[\"error\"] is not None:"},{"line_number":149,"context_line":"            if resp[\"error\"][\"errno\"] \u003d\u003d str(5):"},{"line_number":150,"context_line":"                raise jexc.JDSSRESTException("},{"line_number":151,"context_line":"                    \u0027Failed to create volume. {}.\u0027.format("},{"line_number":152,"context_line":"                        resp[\u0027error\u0027][\u0027message\u0027]))"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_5c197220","line":149,"range":{"start_line":148,"start_character":8,"end_line":149,"end_character":48},"in_reply_to":"9f560f44_57d89151","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        if resp[\u0027error\u0027] is None and resp[\u0027code\u0027] \u003d\u003d 200:"},{"line_number":250,"context_line":"            return resp[\u0027data\u0027]"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if resp[\u0027error\u0027] is not None:"},{"line_number":253,"context_line":"            if \u0027message\u0027 in resp[\u0027error\u0027]:"},{"line_number":254,"context_line":"                if self.resource_dne_msg.match(resp[\u0027error\u0027][\u0027message\u0027]):"},{"line_number":255,"context_line":"                    raise jexc.JDSSResourceNotFoundException(res\u003dvolume_name)"},{"line_number":256,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_77a155a9","line":253,"range":{"start_line":252,"start_character":8,"end_line":253,"end_character":42},"updated":"2020-08-24 16:16:11.000000000","message":"nit: if resp.get(\u0027error\u0027) and \u0027message\u0027 in resp[\u0027error\u0027]):","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        if resp[\u0027error\u0027] is None and resp[\u0027code\u0027] \u003d\u003d 200:"},{"line_number":250,"context_line":"            return resp[\u0027data\u0027]"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        if resp[\u0027error\u0027] is not None:"},{"line_number":253,"context_line":"            if \u0027message\u0027 in resp[\u0027error\u0027]:"},{"line_number":254,"context_line":"                if self.resource_dne_msg.match(resp[\u0027error\u0027][\u0027message\u0027]):"},{"line_number":255,"context_line":"                    raise jexc.JDSSResourceNotFoundException(res\u003dvolume_name)"},{"line_number":256,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_bcdfee38","line":253,"range":{"start_line":252,"start_character":8,"end_line":253,"end_character":42},"in_reply_to":"9f560f44_77a155a9","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027PUT\u0027, req, json_data\u003dprop)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        if ((resp[\"code\"] \u003d\u003d 200) or"},{"line_number":311,"context_line":"                (resp[\"code\"] \u003d\u003d 201) or"},{"line_number":312,"context_line":"                (resp[\"code\"] \u003d\u003d 204)):"},{"line_number":313,"context_line":"            LOG.debug("},{"line_number":314,"context_line":"                \"volume %s properties updated\", volume_name)"},{"line_number":315,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_37b51d33","line":312,"range":{"start_line":310,"start_character":0,"end_line":312,"end_character":39},"updated":"2020-08-24 16:16:11.000000000","message":"if resp[\"code\"] in (200, 201, 204):","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027PUT\u0027, req, json_data\u003dprop)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        if ((resp[\"code\"] \u003d\u003d 200) or"},{"line_number":311,"context_line":"                (resp[\"code\"] \u003d\u003d 201) or"},{"line_number":312,"context_line":"                (resp[\"code\"] \u003d\u003d 204)):"},{"line_number":313,"context_line":"            LOG.debug("},{"line_number":314,"context_line":"                \"volume %s properties updated\", volume_name)"},{"line_number":315,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_3c163ef3","line":312,"range":{"start_line":310,"start_character":0,"end_line":312,"end_character":39},"in_reply_to":"9f560f44_37b51d33","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        LOG.debug(\"check if targe %s exists\", target_name)"},{"line_number":389,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027GET\u0027, req)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        if resp[\"error\"] is not None or not ("},{"line_number":392,"context_line":"                resp[\"code\"] \u003d\u003d 200 or resp[\"code\"] \u003d\u003d 201):"},{"line_number":393,"context_line":"            return False"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        if \"name\" in resp[\"data\"]:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_d7c2e184","line":392,"range":{"start_line":391,"start_character":8,"end_line":392,"end_character":60},"updated":"2020-08-24 16:16:11.000000000","message":"if resp[\"error\"] or resp[\"code\"] not in (200, 201):","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        LOG.debug(\"check if targe %s exists\", target_name)"},{"line_number":389,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027GET\u0027, req)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        if resp[\"error\"] is not None or not ("},{"line_number":392,"context_line":"                resp[\"code\"] \u003d\u003d 200 or resp[\"code\"] \u003d\u003d 201):"},{"line_number":393,"context_line":"            return False"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        if \"name\" in resp[\"data\"]:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_7cd5561b","line":392,"range":{"start_line":391,"start_character":8,"end_line":392,"end_character":60},"in_reply_to":"9f560f44_d7c2e184","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"73462335b35c82f199e59d572e262762620e15cf","unresolved":false,"context_lines":[{"line_number":456,"context_line":""},{"line_number":457,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027DELETE\u0027, req)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"        if ((resp[\"code\"] \u003d\u003d 200) or"},{"line_number":460,"context_line":"                (resp[\"code\"] \u003d\u003d 201) or"},{"line_number":461,"context_line":"                (resp[\"code\"] \u003d\u003d 204)):"},{"line_number":462,"context_line":"            LOG.debug("},{"line_number":463,"context_line":"                \"target %s deleted\", target_name)"},{"line_number":464,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_176739b9","line":461,"range":{"start_line":459,"start_character":0,"end_line":461,"end_character":39},"updated":"2020-08-24 16:16:11.000000000","message":"nit:\n\n    if resp[\"code\"] in (200, 201, 204):\n\nhere and elsewhere.","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"122c19036b5373f9d802226724559d78853cf23c","unresolved":false,"context_lines":[{"line_number":456,"context_line":""},{"line_number":457,"context_line":"        resp \u003d self.rproxy.pool_request(\u0027DELETE\u0027, req)"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"        if ((resp[\"code\"] \u003d\u003d 200) or"},{"line_number":460,"context_line":"                (resp[\"code\"] \u003d\u003d 201) or"},{"line_number":461,"context_line":"                (resp[\"code\"] \u003d\u003d 204)):"},{"line_number":462,"context_line":"            LOG.debug("},{"line_number":463,"context_line":"                \"target %s deleted\", target_name)"},{"line_number":464,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_dcdaa249","line":461,"range":{"start_line":459,"start_character":0,"end_line":461,"end_character":39},"in_reply_to":"9f560f44_176739b9","updated":"2020-08-31 20:24:23.000000000","message":"Done","commit_id":"291238c895c7e8b12af357c1bfb08d981d9adc7b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2344ea97f3f4efd91d3026f7d8c57c4aa8b309fc","unresolved":false,"context_lines":[{"line_number":654,"context_line":"        if resp[\u0027code\u0027] \u003d\u003d 404:"},{"line_number":655,"context_line":"            raise jexc.JDSSResourceNotFoundException(res\u003dlun_name)"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":"        #if resp[\"code\"] \u003d\u003d 500 and \\"},{"line_number":658,"context_line":"        #        resp[\"error\"][\"class\"] \u003d\u003d \\"},{"line_number":659,"context_line":"        #        \"opene.san.iscsi.TargetNotFoundError\":"},{"line_number":660,"context_line":"        #    return"}],"source_content_type":"text/x-python","patch_set":17,"id":"9f560f44_bcad2e9d","line":657,"updated":"2020-08-30 17:17:52.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"2070813441fbf33fbdce76e74c69056e8fa448a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2344ea97f3f4efd91d3026f7d8c57c4aa8b309fc","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        #        \"opene.san.iscsi.TargetNotFoundError\":"},{"line_number":660,"context_line":"        #    return"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        #if resp[\"code\"] \u003d\u003d 500 and \\"},{"line_number":663,"context_line":"        #        resp[\"error\"][\"class\"] \u003d\u003d \\"},{"line_number":664,"context_line":"        #        \"opene.san.iscsi.ZvolNotAssignedToTarget\":"},{"line_number":665,"context_line":"        #    return"}],"source_content_type":"text/x-python","patch_set":17,"id":"9f560f44_1c925a59","line":662,"updated":"2020-08-30 17:17:52.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"2070813441fbf33fbdce76e74c69056e8fa448a6"}],"cinder/volume/drivers/open_e/jovian_common/rest_proxy.py":[{"author":{"_account_id":31016,"name":"Ivan Pchelintsev","email":"i.pchelintsev@yadro.com","username":"pcheli"},"change_message_id":"af2242a381acde7f8e4e111a1e4fab32692752f4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                       \u0027authorization\u0027: \u0027Basic \u0027}"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _get_pool_url(self, host):"},{"line_number":69,"context_line":"        url \u003d self.proto + \u0027://\u0027 + \\"},{"line_number":70,"context_line":"            host + \u0027:\u0027 + \\"},{"line_number":71,"context_line":"            self.port + \\"},{"line_number":72,"context_line":"            \"/api/v3\" + \\"},{"line_number":73,"context_line":"            \"/pools/\" + \\"},{"line_number":74,"context_line":"            self.pool"},{"line_number":75,"context_line":"        return url"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _get_url(self, host):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_fd0fdf2a","line":74,"range":{"start_line":69,"start_character":0,"end_line":74,"end_character":21},"updated":"2020-05-20 18:11:28.000000000","message":"I suggest to use string formatting, e.g. \n\u0027{proto}://{host}:{port}{api_path}/pools/{pool}\u0027.format(...) or formatting with %.","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"},{"author":{"_account_id":31016,"name":"Ivan Pchelintsev","email":"i.pchelintsev@yadro.com","username":"pcheli"},"change_message_id":"af2242a381acde7f8e4e111a1e4fab32692752f4","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            self.pool"},{"line_number":75,"context_line":"        return url"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _get_url(self, host):"},{"line_number":78,"context_line":"        url \u003d (self.proto"},{"line_number":79,"context_line":"               + \u0027://\u0027"},{"line_number":80,"context_line":"               + host"},{"line_number":81,"context_line":"               + \u0027:\u0027"},{"line_number":82,"context_line":"               + self.port"},{"line_number":83,"context_line":"               + \"/api/v3\")"},{"line_number":84,"context_line":"        return url"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def request(self, request_method, req, json_data\u003dNone):"},{"line_number":87,"context_line":"        \"\"\"Send request to the specific url."}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_7d2d8f93","line":84,"range":{"start_line":77,"start_character":1,"end_line":84,"end_character":18},"updated":"2020-05-20 18:11:28.000000000","message":"The same as above.","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"},{"author":{"_account_id":31016,"name":"Ivan Pchelintsev","email":"i.pchelintsev@yadro.com","username":"pcheli"},"change_message_id":"af2242a381acde7f8e4e111a1e4fab32692752f4","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        \"\"\""},{"line_number":93,"context_line":"        for i in range(int(str(self.retry_n))):"},{"line_number":94,"context_line":"            for i in range(len(self.hosts)):"},{"line_number":95,"context_line":"                host \u003d self.hosts[self.active_host]"},{"line_number":96,"context_line":"                url \u003d self._get_url(host) + req"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_1dd29328","line":95,"range":{"start_line":95,"start_character":23,"end_line":95,"end_character":51},"updated":"2020-05-20 18:11:28.000000000","message":"self.get_active_host()","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"},{"author":{"_account_id":31016,"name":"Ivan Pchelintsev","email":"i.pchelintsev@yadro.com","username":"pcheli"},"change_message_id":"af2242a381acde7f8e4e111a1e4fab32692752f4","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"                if \u0027{\u0027 in response_obj.text and \u0027}\u0027 in response_obj.text:"},{"line_number":189,"context_line":"                    if \"error\" in response_obj.text:"},{"line_number":190,"context_line":"                        ret[\"error\"] \u003d json.loads(response_obj.text)[\"error\"]"},{"line_number":191,"context_line":"                    else:"},{"line_number":192,"context_line":"                        ret[\"error\"] \u003d None"},{"line_number":193,"context_line":"                    if \"data\" in response_obj.text:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_7dd8ef51","line":190,"range":{"start_line":190,"start_character":24,"end_line":190,"end_character":77},"updated":"2020-05-20 18:11:28.000000000","message":"Try to use response.json() method.","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"},{"author":{"_account_id":31016,"name":"Ivan Pchelintsev","email":"i.pchelintsev@yadro.com","username":"pcheli"},"change_message_id":"af2242a381acde7f8e4e111a1e4fab32692752f4","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"                if ret[\"code\"] \u003d\u003d 500:"},{"line_number":199,"context_line":"                    if ret[\"error\"] is not None:"},{"line_number":200,"context_line":"                        if (\"errno\" in ret[\"error\"]) and \\"},{"line_number":201,"context_line":"                                (\"class\" in ret[\"error\"]):"},{"line_number":202,"context_line":"                            if (ret[\"error\"][\"errno\"] \u003d\u003d 2) and\\"},{"line_number":203,"context_line":"                                    (ret[\"error\"][\"class\"] \u003d\u003d"},{"line_number":204,"context_line":"                                        \"exceptions.OSError\"):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_7d33cfab","line":201,"range":{"start_line":200,"start_character":23,"end_line":201,"end_character":58},"updated":"2020-05-20 18:11:28.000000000","message":"May be combined in one brackets.","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"},{"author":{"_account_id":31016,"name":"Ivan Pchelintsev","email":"i.pchelintsev@yadro.com","username":"pcheli"},"change_message_id":"af2242a381acde7f8e4e111a1e4fab32692752f4","unresolved":false,"context_lines":[{"line_number":199,"context_line":"                    if ret[\"error\"] is not None:"},{"line_number":200,"context_line":"                        if (\"errno\" in ret[\"error\"]) and \\"},{"line_number":201,"context_line":"                                (\"class\" in ret[\"error\"]):"},{"line_number":202,"context_line":"                            if (ret[\"error\"][\"errno\"] \u003d\u003d 2) and\\"},{"line_number":203,"context_line":"                                    (ret[\"error\"][\"class\"] \u003d\u003d"},{"line_number":204,"context_line":"                                        \"exceptions.OSError\"):"},{"line_number":205,"context_line":"                                LOG.debug("},{"line_number":206,"context_line":"                                    \"Internal JDSS error retrying!\")"},{"line_number":207,"context_line":"                                continue"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_1d24535d","line":204,"range":{"start_line":202,"start_character":24,"end_line":204,"end_character":62},"updated":"2020-05-20 18:11:28.000000000","message":"The same as above.","commit_id":"03660db8a654a66a00b2911694f9e12d14281a37"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        for host in self.hosts:"},{"line_number":46,"context_line":"            if o_netutils.is_valid_ip(host) is False:"},{"line_number":47,"context_line":"                err_msg \u003d (\u0027Invalid value of jovian_host property:\u0027"},{"line_number":48,"context_line":"                           \u0027%(addr)s, IP address expected.\u0027 %"},{"line_number":49,"context_line":"                           {\u0027addr\u0027: host})"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_255e2745","line":47,"range":{"start_line":47,"start_character":66,"end_line":47,"end_character":67},"updated":"2020-05-23 15:01:55.000000000","message":"Missing trailing space.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"                if json_data is not None:"},{"line_number":103,"context_line":"                    LOG.debug("},{"line_number":104,"context_line":"                        \"sending data: %s.\", str(json_data))"},{"line_number":105,"context_line":"                try:"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"                    ret \u003d self._request_routine(url, request_method, json_data)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_055b2354","line":104,"range":{"start_line":104,"start_character":45,"end_line":104,"end_character":49},"updated":"2020-05-23 15:01:55.000000000","message":"Remove str() calls from log statements.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import time"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import urllib3"},{"line_number":22,"context_line":"import requests"},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from oslo_utils import netutils as o_netutils"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_61783e8f","line":22,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: H306: imports not in alphabetical order (urllib3, requests)","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cb6f69a47354b27198d218b0fb2c7c82a121ecee","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import urllib3"},{"line_number":22,"context_line":"import requests"},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from oslo_utils import netutils as o_netutils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder import exception"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_417b7a8a","line":23,"updated":"2020-06-28 20:27:22.000000000","message":"pep8: H306: imports not in alphabetical order (requests, oslo_log.log)","commit_id":"b0f86df7559dc80f1a8849bd6af9004b2bc7d806"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                url \u003d self._get_pool_url(host) + req"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"                LOG.debug("},{"line_number":140,"context_line":"                    \"sending pool request of type %(type)s to %(url)s \\"},{"line_number":141,"context_line":"                    attempt: %(num)s.\","},{"line_number":142,"context_line":"                    {\u0027type\u0027: request_method,"},{"line_number":143,"context_line":"                     \u0027url\u0027: url,"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_7a4b5e5e","line":140,"range":{"start_line":140,"start_character":70,"end_line":140,"end_character":71},"updated":"2020-09-02 22:31:51.000000000","message":"Don\u0027t use \\ to span lines as that can cause some subtle bugs. Just end with a quote on this line and open with a quote on the next line.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                url \u003d self._get_pool_url(host) + req"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"                LOG.debug("},{"line_number":140,"context_line":"                    \"sending pool request of type %(type)s to %(url)s \\"},{"line_number":141,"context_line":"                    attempt: %(num)s.\","},{"line_number":142,"context_line":"                    {\u0027type\u0027: request_method,"},{"line_number":143,"context_line":"                     \u0027url\u0027: url,"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_d504c7c8","line":140,"range":{"start_line":140,"start_character":70,"end_line":140,"end_character":71},"in_reply_to":"9f560f44_7a4b5e5e","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"                if json_data is not None:"},{"line_number":147,"context_line":"                    LOG.debug("},{"line_number":148,"context_line":"                        \"JovianDSS: Sending data: %s.\", str(json_data))"},{"line_number":149,"context_line":"                try:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"                    ret \u003d self._request_routine(url, request_method, json_data)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_5a4e5a6e","line":148,"range":{"start_line":148,"start_character":56,"end_line":148,"end_character":59},"updated":"2020-09-02 22:31:51.000000000","message":"This is being formatted into a string, so don\u0027t need to double convert it.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"                if json_data is not None:"},{"line_number":147,"context_line":"                    LOG.debug("},{"line_number":148,"context_line":"                        \"JovianDSS: Sending data: %s.\", str(json_data))"},{"line_number":149,"context_line":"                try:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"                    ret \u003d self._request_routine(url, request_method, json_data)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_b50953de","line":148,"range":{"start_line":148,"start_character":56,"end_line":148,"end_character":59},"in_reply_to":"9f560f44_5a4e5a6e","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"                if ret[\"code\"] \u003d\u003d 500:"},{"line_number":198,"context_line":"                    if ret[\"error\"] is not None:"},{"line_number":199,"context_line":"                        if (\"errno\" in ret[\"error\"]) and \\"},{"line_number":200,"context_line":"                                (\"class\" in ret[\"error\"]):"},{"line_number":201,"context_line":"                            if (ret[\"error\"][\"errno\"] \u003d\u003d 1) and\\"},{"line_number":202,"context_line":"                                    (ret[\"error\"][\"class\"] \u003d\u003d"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_1a5d0215","line":199,"range":{"start_line":199,"start_character":57,"end_line":199,"end_character":58},"updated":"2020-09-02 22:31:51.000000000","message":"Enclose all conditionals in () to allow spanning multiple lines.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"                if ret[\"code\"] \u003d\u003d 500:"},{"line_number":198,"context_line":"                    if ret[\"error\"] is not None:"},{"line_number":199,"context_line":"                        if (\"errno\" in ret[\"error\"]) and \\"},{"line_number":200,"context_line":"                                (\"class\" in ret[\"error\"]):"},{"line_number":201,"context_line":"                            if (ret[\"error\"][\"errno\"] \u003d\u003d 1) and\\"},{"line_number":202,"context_line":"                                    (ret[\"error\"][\"class\"] \u003d\u003d"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_150bdfd4","line":199,"range":{"start_line":199,"start_character":57,"end_line":199,"end_character":58},"in_reply_to":"9f560f44_1a5d0215","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                            if (ret[\"error\"][\"errno\"] \u003d\u003d 2) and\\"},{"line_number":208,"context_line":"                                    (ret[\"error\"][\"class\"] \u003d\u003d"},{"line_number":209,"context_line":"                                     \"exceptions.OSError\"):"},{"line_number":210,"context_line":"                                LOG.warning("},{"line_number":211,"context_line":"                                    \"Internal JDSS error retrying!\")"},{"line_number":212,"context_line":"                                continue"},{"line_number":213,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_9aa6320f","line":210,"range":{"start_line":210,"start_character":36,"end_line":210,"end_character":43},"updated":"2020-09-02 22:31:51.000000000","message":"This should probably be a debug level message as there is nothing the operator can act upon with this.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                            if (ret[\"error\"][\"errno\"] \u003d\u003d 2) and\\"},{"line_number":208,"context_line":"                                    (ret[\"error\"][\"class\"] \u003d\u003d"},{"line_number":209,"context_line":"                                     \"exceptions.OSError\"):"},{"line_number":210,"context_line":"                                LOG.warning("},{"line_number":211,"context_line":"                                    \"Internal JDSS error retrying!\")"},{"line_number":212,"context_line":"                                continue"},{"line_number":213,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_f50f4bdd","line":210,"range":{"start_line":210,"start_character":36,"end_line":210,"end_character":43},"in_reply_to":"9f560f44_9aa6320f","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"9fc65ecdcc4c499abf5c0eedf54a6551725aae23","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        :param url: where to send"},{"line_number":93,"context_line":"        :param json_data: data"},{"line_number":94,"context_line":"        \"\"\""},{"line_number":95,"context_line":"        for j in range(int(str(self.retry_n))):"},{"line_number":96,"context_line":"            for i in range(len(self.hosts)):"},{"line_number":97,"context_line":"                host \u003d self.hosts[self.active_host]"},{"line_number":98,"context_line":"                url \u003d self._get_url(host) + req"}],"source_content_type":"text/x-python","patch_set":34,"id":"9f560f44_9b474f1f","line":95,"range":{"start_line":95,"start_character":23,"end_line":95,"end_character":44},"updated":"2020-10-05 12:46:36.000000000","message":"you may convert it in L67 upon assignment","commit_id":"988bf01a30beb88e5a5df67e6231ca795af047e9"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"9fc65ecdcc4c499abf5c0eedf54a6551725aae23","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param json_data: data"},{"line_number":135,"context_line":"        \"\"\""},{"line_number":136,"context_line":"        url \u003d \"\""},{"line_number":137,"context_line":"        for j in range(int(str(self.retry_n))):"},{"line_number":138,"context_line":"            for i in range(len(self.hosts)):"},{"line_number":139,"context_line":"                host \u003d self.hosts[self.active_host]"},{"line_number":140,"context_line":"                url \u003d self._get_pool_url(host) + req"}],"source_content_type":"text/x-python","patch_set":34,"id":"9f560f44_bb4cd33f","line":137,"range":{"start_line":137,"start_character":23,"end_line":137,"end_character":44},"updated":"2020-10-05 12:46:36.000000000","message":"same as above","commit_id":"988bf01a30beb88e5a5df67e6231ca795af047e9"}],"cinder/volume/drivers/open_e/options.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    cfg.IntOpt(\u0027jovian_recovery_delay\u0027,"},{"line_number":33,"context_line":"               default\u003d60,"},{"line_number":34,"context_line":"               help\u003d\u0027Time before HA cluster failure.\u0027),"},{"line_number":35,"context_line":"    cfg.StrOpt(\u0027jovian_user\u0027,"},{"line_number":36,"context_line":"               default\u003d\u0027admin\u0027,"},{"line_number":37,"context_line":"               help\u003d\u0027User name to connect to Open-E JovianDSS SA\u0027),"},{"line_number":38,"context_line":"    cfg.StrOpt(\u0027jovian_password\u0027,"},{"line_number":39,"context_line":"               default\u003d\u0027password\u0027,"},{"line_number":40,"context_line":"               help\u003d\u0027Password to connect to Open-E JovianDSS SA\u0027,"},{"line_number":41,"context_line":"               secret\u003dTrue),"},{"line_number":42,"context_line":"    cfg.ListOpt(\u0027jovian_ignore_tpath\u0027,"},{"line_number":43,"context_line":"                default\u003d[],"},{"line_number":44,"context_line":"                help\u003d\u0027List of multipath ip addresses to ignore.\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_45551b1d","line":41,"range":{"start_line":35,"start_character":0,"end_line":41,"end_character":28},"updated":"2020-05-23 15:01:55.000000000","message":"Please use existing common san_username and san_password config options instead of introducing new driver specific ones.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    cfg.IntOpt(\u0027jovian_recovery_delay\u0027,"},{"line_number":33,"context_line":"               default\u003d60,"},{"line_number":34,"context_line":"               help\u003d\u0027Time before HA cluster failure.\u0027),"},{"line_number":35,"context_line":"    cfg.StrOpt(\u0027jovian_user\u0027,"},{"line_number":36,"context_line":"               default\u003d\u0027admin\u0027,"},{"line_number":37,"context_line":"               help\u003d\u0027User name to connect to Open-E JovianDSS SA\u0027),"},{"line_number":38,"context_line":"    cfg.StrOpt(\u0027jovian_password\u0027,"},{"line_number":39,"context_line":"               default\u003d\u0027password\u0027,"},{"line_number":40,"context_line":"               help\u003d\u0027Password to connect to Open-E JovianDSS SA\u0027,"},{"line_number":41,"context_line":"               secret\u003dTrue),"},{"line_number":42,"context_line":"    cfg.ListOpt(\u0027jovian_ignore_tpath\u0027,"},{"line_number":43,"context_line":"                default\u003d[],"},{"line_number":44,"context_line":"                help\u003d\u0027List of multipath ip addresses to ignore.\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_5b09372a","line":41,"range":{"start_line":35,"start_character":0,"end_line":41,"end_character":28},"in_reply_to":"ff570b3c_45551b1d","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a871dee136ec825b7c944c65066c5965b03918b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"jdss_iscsi_opts \u003d ["},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027jovian_iscsi_target_portal_port\u0027,"},{"line_number":49,"context_line":"               default\u003d3260,"},{"line_number":50,"context_line":"               help\u003d\u0027Open-E JovianDSS target portal port\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027jovian_pool\u0027,"},{"line_number":52,"context_line":"               default\u003d\u0027Cinder-Pool-0\u0027,"},{"line_number":53,"context_line":"               help\u003d\u0027JovianDSS pool that holds all cinder volumes\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_a52fd7a5","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":59},"updated":"2020-05-23 15:01:55.000000000","message":"Use existing config option.","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"jdss_iscsi_opts \u003d ["},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027jovian_iscsi_target_portal_port\u0027,"},{"line_number":49,"context_line":"               default\u003d3260,"},{"line_number":50,"context_line":"               help\u003d\u0027Open-E JovianDSS target portal port\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027jovian_pool\u0027,"},{"line_number":52,"context_line":"               default\u003d\u0027Cinder-Pool-0\u0027,"},{"line_number":53,"context_line":"               help\u003d\u0027JovianDSS pool that holds all cinder volumes\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_81c0827e","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":59},"in_reply_to":"ff570b3c_a52fd7a5","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"e35862ecab5d52b38a59e27bfdce8ccd016d7470"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"91fb89b1307738c61179170d42bb4f3850fa98b4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    cfg.ListOpt(\u0027jovian_hosts\u0027,"},{"line_number":20,"context_line":"                default\u003d\u0027\u0027,"},{"line_number":21,"context_line":"                help\u003d\u0027IP address of Open-E JovianDSS SA\u0027),"},{"line_number":22,"context_line":"    cfg.IntOpt(\u0027jovian_rest_port\u0027,"},{"line_number":23,"context_line":"               default\u003d82,"},{"line_number":24,"context_line":"               help\u003d\u0027HTTP port to connect to OpenE JovianDSS REST API server\u0027),"},{"line_number":25,"context_line":"    cfg.StrOpt(\u0027jovian_rest_protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_86f11405","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":14},"updated":"2020-08-11 15:40:32.000000000","message":"Better to use PortOpt","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    cfg.ListOpt(\u0027jovian_hosts\u0027,"},{"line_number":20,"context_line":"                default\u003d\u0027\u0027,"},{"line_number":21,"context_line":"                help\u003d\u0027IP address of Open-E JovianDSS SA\u0027),"},{"line_number":22,"context_line":"    cfg.IntOpt(\u0027jovian_rest_port\u0027,"},{"line_number":23,"context_line":"               default\u003d82,"},{"line_number":24,"context_line":"               help\u003d\u0027HTTP port to connect to OpenE JovianDSS REST API server\u0027),"},{"line_number":25,"context_line":"    cfg.StrOpt(\u0027jovian_rest_protocol\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_9f6c5c09","line":22,"range":{"start_line":22,"start_character":8,"end_line":22,"end_character":14},"in_reply_to":"9f560f44_86f11405","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"91fb89b1307738c61179170d42bb4f3850fa98b4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"               default\u003d\u0027admin\u0027,"},{"line_number":37,"context_line":"               help\u003d\u0027User name to connect to Open-E JovianDSS SA\u0027),"},{"line_number":38,"context_line":"    cfg.StrOpt(\u0027jovian_password\u0027,"},{"line_number":39,"context_line":"               default\u003d\u0027password\u0027,"},{"line_number":40,"context_line":"               help\u003d\u0027Password to connect to Open-E JovianDSS SA\u0027,"},{"line_number":41,"context_line":"               secret\u003dTrue),"},{"line_number":42,"context_line":"    cfg.ListOpt(\u0027jovian_ignore_tpath\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_a6d7f84f","line":39,"range":{"start_line":39,"start_character":24,"end_line":39,"end_character":32},"updated":"2020-08-11 15:40:32.000000000","message":"This should probably not default to \"password\".","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"               default\u003d\u0027admin\u0027,"},{"line_number":37,"context_line":"               help\u003d\u0027User name to connect to Open-E JovianDSS SA\u0027),"},{"line_number":38,"context_line":"    cfg.StrOpt(\u0027jovian_password\u0027,"},{"line_number":39,"context_line":"               default\u003d\u0027password\u0027,"},{"line_number":40,"context_line":"               help\u003d\u0027Password to connect to Open-E JovianDSS SA\u0027,"},{"line_number":41,"context_line":"               secret\u003dTrue),"},{"line_number":42,"context_line":"    cfg.ListOpt(\u0027jovian_ignore_tpath\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_ffa59848","line":39,"range":{"start_line":39,"start_character":24,"end_line":39,"end_character":32},"in_reply_to":"9f560f44_a6d7f84f","updated":"2020-08-20 10:06:12.000000000","message":"It was renamed to default password on the storage \u0027admin\u0027","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"91fb89b1307738c61179170d42bb4f3850fa98b4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"jdss_iscsi_opts \u003d ["},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027jovian_iscsi_target_portal_port\u0027,"},{"line_number":49,"context_line":"               default\u003d\u00273260\u0027,"},{"line_number":50,"context_line":"               help\u003d\u0027Open-E JovianDSS target portal port\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027jovian_pool\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_06906495","line":48,"range":{"start_line":48,"start_character":8,"end_line":48,"end_character":14},"updated":"2020-08-11 15:40:32.000000000","message":"PortOpt","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"jdss_iscsi_opts \u003d ["},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027jovian_iscsi_target_portal_port\u0027,"},{"line_number":49,"context_line":"               default\u003d\u00273260\u0027,"},{"line_number":50,"context_line":"               help\u003d\u0027Open-E JovianDSS target portal port\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027jovian_pool\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_bfab201c","line":48,"range":{"start_line":48,"start_character":8,"end_line":48,"end_character":14},"in_reply_to":"9f560f44_06906495","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"91fb89b1307738c61179170d42bb4f3850fa98b4","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.StrOpt(\u0027jovian_target_prefix\u0027,"},{"line_number":55,"context_line":"               default\u003d\u0027iqn.2020-04.com.open-e.cinder:\u0027,"},{"line_number":56,"context_line":"               help\u003d\u0027IQN prefix for iSCSI targets\u0027),"},{"line_number":57,"context_line":"    cfg.StrOpt(\u0027jovian_chap_pass_len\u0027,"},{"line_number":58,"context_line":"               default\u003d12,"},{"line_number":59,"context_line":"               help\u003d\u0027Length of the random string for CHAP password.\u0027),"},{"line_number":60,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_26876864","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":14},"updated":"2020-08-11 15:40:32.000000000","message":"IntOpt","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.StrOpt(\u0027jovian_target_prefix\u0027,"},{"line_number":55,"context_line":"               default\u003d\u0027iqn.2020-04.com.open-e.cinder:\u0027,"},{"line_number":56,"context_line":"               help\u003d\u0027IQN prefix for iSCSI targets\u0027),"},{"line_number":57,"context_line":"    cfg.StrOpt(\u0027jovian_chap_pass_len\u0027,"},{"line_number":58,"context_line":"               default\u003d12,"},{"line_number":59,"context_line":"               help\u003d\u0027Length of the random string for CHAP password.\u0027),"},{"line_number":60,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_dfb0948e","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":14},"in_reply_to":"9f560f44_26876864","updated":"2020-08-20 10:06:12.000000000","message":"Done","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"91fb89b1307738c61179170d42bb4f3850fa98b4","unresolved":false,"context_lines":[{"line_number":60,"context_line":"]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"jdss_volume_opts \u003d ["},{"line_number":63,"context_line":"    cfg.StrOpt(\u0027jovian_blocksize\u0027,"},{"line_number":64,"context_line":"               default\u003d\u00278KB\u0027,"},{"line_number":65,"context_line":"               help\u003d\u0027Block size for volumes (512B - 128KB)\u0027),"},{"line_number":66,"context_line":"    cfg.BoolOpt(\u0027jovian_provisioning_thin\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_46e7fc47","line":63,"updated":"2020-08-11 15:40:32.000000000","message":"Is this option used?","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":31868,"name":"Open-E CI","email":"open-e-ci-joviandss@open-e.com","username":"open-e-ci-joviandss","tags":["SERVICE_USER"]},"change_message_id":"d1a64480b976897dfcfe8da1bca9e3f5b12b7da4","unresolved":false,"context_lines":[{"line_number":60,"context_line":"]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"jdss_volume_opts \u003d ["},{"line_number":63,"context_line":"    cfg.StrOpt(\u0027jovian_blocksize\u0027,"},{"line_number":64,"context_line":"               default\u003d\u00278KB\u0027,"},{"line_number":65,"context_line":"               help\u003d\u0027Block size for volumes (512B - 128KB)\u0027),"},{"line_number":66,"context_line":"    cfg.BoolOpt(\u0027jovian_provisioning_thin\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_7fba286e","line":63,"in_reply_to":"9f560f44_46e7fc47","updated":"2020-08-20 10:06:12.000000000","message":"thanks for pointing it out","commit_id":"8746fb2414246b2dada482bd6d18b73b0504c558"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1386f23f389e0d982d2fdf0a8609484f7d7e7953","unresolved":false,"context_lines":[{"line_number":20,"context_line":"                default\u003d\u0027\u0027,"},{"line_number":21,"context_line":"                help\u003d\u0027IP address of Open-E JovianDSS SA\u0027),"},{"line_number":22,"context_line":"    cfg.PortOpt(\u0027san_api_port\u0027,"},{"line_number":23,"context_line":"               default\u003d82,"},{"line_number":24,"context_line":"               help\u003d\u0027HTTP port to connect to OpenE JovianDSS REST API server\u0027),"},{"line_number":25,"context_line":"    cfg.StrOpt(\u0027jovian_rest_protocol\u0027,"},{"line_number":26,"context_line":"               default\u003d\u0027https\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f560f44_5eb80575","line":23,"updated":"2020-08-18 19:25:39.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"f97e556c50eb1c403f5e0b0ad71038fd82c95fb8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1386f23f389e0d982d2fdf0a8609484f7d7e7953","unresolved":false,"context_lines":[{"line_number":21,"context_line":"                help\u003d\u0027IP address of Open-E JovianDSS SA\u0027),"},{"line_number":22,"context_line":"    cfg.PortOpt(\u0027san_api_port\u0027,"},{"line_number":23,"context_line":"               default\u003d82,"},{"line_number":24,"context_line":"               help\u003d\u0027HTTP port to connect to OpenE JovianDSS REST API server\u0027),"},{"line_number":25,"context_line":"    cfg.StrOpt(\u0027jovian_rest_protocol\u0027,"},{"line_number":26,"context_line":"               default\u003d\u0027https\u0027,"},{"line_number":27,"context_line":"               choices\u003d[\u0027http\u0027, \u0027https\u0027],"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f560f44_3ebb9172","line":24,"updated":"2020-08-18 19:25:39.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"f97e556c50eb1c403f5e0b0ad71038fd82c95fb8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1386f23f389e0d982d2fdf0a8609484f7d7e7953","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"jdss_iscsi_opts \u003d ["},{"line_number":48,"context_line":"    cfg.PortOpt(\u0027jovian_iscsi_target_portal_port\u0027,"},{"line_number":49,"context_line":"               default\u003d3260,"},{"line_number":50,"context_line":"               help\u003d\u0027Open-E JovianDSS target portal port\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027jovian_pool\u0027,"},{"line_number":52,"context_line":"               default\u003d\u0027Pool-0\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f560f44_9eb1fd92","line":49,"updated":"2020-08-18 19:25:39.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"f97e556c50eb1c403f5e0b0ad71038fd82c95fb8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1386f23f389e0d982d2fdf0a8609484f7d7e7953","unresolved":false,"context_lines":[{"line_number":47,"context_line":"jdss_iscsi_opts \u003d ["},{"line_number":48,"context_line":"    cfg.PortOpt(\u0027jovian_iscsi_target_portal_port\u0027,"},{"line_number":49,"context_line":"               default\u003d3260,"},{"line_number":50,"context_line":"               help\u003d\u0027Open-E JovianDSS target portal port\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027jovian_pool\u0027,"},{"line_number":52,"context_line":"               default\u003d\u0027Pool-0\u0027,"},{"line_number":53,"context_line":"               help\u003d\u0027JovianDSS pool that holds all cinder volumes\u0027),"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f560f44_7eace934","line":50,"updated":"2020-08-18 19:25:39.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"f97e556c50eb1c403f5e0b0ad71038fd82c95fb8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    cfg.ListOpt(\u0027san_hosts\u0027,"},{"line_number":20,"context_line":"                default\u003d\u0027\u0027,"},{"line_number":21,"context_line":"                help\u003d\u0027IP address of Open-E JovianDSS SA\u0027),"},{"line_number":22,"context_line":"    cfg.StrOpt(\u0027jovian_rest_protocol\u0027,"},{"line_number":23,"context_line":"               default\u003d\u0027https\u0027,"},{"line_number":24,"context_line":"               choices\u003d[\u0027http\u0027, \u0027https\u0027],"},{"line_number":25,"context_line":"               help\u003d\u0027Use http or https for REST connection (default https)\u0027),"},{"line_number":26,"context_line":"    cfg.StrOpt(\u0027jovian_rest_send_repeats\u0027,"},{"line_number":27,"context_line":"               default\u003d3,"},{"line_number":28,"context_line":"               help\u003d\u0027Number of retries to send REST request.\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_faac8eef","line":25,"range":{"start_line":22,"start_character":4,"end_line":25,"end_character":77},"updated":"2020-09-02 22:31:51.000000000","message":"Use the existing driver_use_ssl option instead.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    cfg.ListOpt(\u0027san_hosts\u0027,"},{"line_number":20,"context_line":"                default\u003d\u0027\u0027,"},{"line_number":21,"context_line":"                help\u003d\u0027IP address of Open-E JovianDSS SA\u0027),"},{"line_number":22,"context_line":"    cfg.StrOpt(\u0027jovian_rest_protocol\u0027,"},{"line_number":23,"context_line":"               default\u003d\u0027https\u0027,"},{"line_number":24,"context_line":"               choices\u003d[\u0027http\u0027, \u0027https\u0027],"},{"line_number":25,"context_line":"               help\u003d\u0027Use http or https for REST connection (default https)\u0027),"},{"line_number":26,"context_line":"    cfg.StrOpt(\u0027jovian_rest_send_repeats\u0027,"},{"line_number":27,"context_line":"               default\u003d3,"},{"line_number":28,"context_line":"               help\u003d\u0027Number of retries to send REST request.\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_557d571a","line":25,"range":{"start_line":22,"start_character":4,"end_line":25,"end_character":77},"in_reply_to":"9f560f44_faac8eef","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.StrOpt(\u0027jovian_pool\u0027,"},{"line_number":39,"context_line":"               default\u003d\u0027Pool-0\u0027,"},{"line_number":40,"context_line":"               help\u003d\u0027JovianDSS pool that holds all cinder volumes\u0027),"},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027jovian_target_prefix\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027iqn.2020-04.com.open-e.cinder:\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027IQN prefix for iSCSI targets\u0027),"},{"line_number":44,"context_line":"    cfg.IntOpt(\u0027chap_password_len\u0027,"},{"line_number":45,"context_line":"               default\u003d12,"},{"line_number":46,"context_line":"               help\u003d\u0027Length of the random string for CHAP password.\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_7ae7de47","line":43,"range":{"start_line":41,"start_character":4,"end_line":43,"end_character":52},"updated":"2020-09-02 22:31:51.000000000","message":"Use existing target_prefix option.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    cfg.StrOpt(\u0027jovian_pool\u0027,"},{"line_number":39,"context_line":"               default\u003d\u0027Pool-0\u0027,"},{"line_number":40,"context_line":"               help\u003d\u0027JovianDSS pool that holds all cinder volumes\u0027),"},{"line_number":41,"context_line":"    cfg.StrOpt(\u0027jovian_target_prefix\u0027,"},{"line_number":42,"context_line":"               default\u003d\u0027iqn.2020-04.com.open-e.cinder:\u0027,"},{"line_number":43,"context_line":"               help\u003d\u0027IQN prefix for iSCSI targets\u0027),"},{"line_number":44,"context_line":"    cfg.IntOpt(\u0027chap_password_len\u0027,"},{"line_number":45,"context_line":"               default\u003d12,"},{"line_number":46,"context_line":"               help\u003d\u0027Length of the random string for CHAP password.\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_f5846b0d","line":43,"range":{"start_line":41,"start_character":4,"end_line":43,"end_character":52},"in_reply_to":"9f560f44_7ae7de47","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"98358a9e92f3c949ed3730780c0b337760659197","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    cfg.StrOpt(\u0027jovian_block_size\u0027,"},{"line_number":51,"context_line":"               default\u003d\u0027128K\u0027,"},{"line_number":52,"context_line":"               help\u003d\u0027Block size for volumes (512 - 128K)\u0027),"},{"line_number":53,"context_line":"    cfg.BoolOpt(\u0027jovian_provisioning_thin\u0027,"},{"line_number":54,"context_line":"                default\u003dFalse,"},{"line_number":55,"context_line":"                help\u003d\u0027Enables or disables the creation of sparse\u0027"},{"line_number":56,"context_line":"                     \u0027 (thin-provisioned) volumes\u0027),"},{"line_number":57,"context_line":"]"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_baf17604","line":56,"range":{"start_line":53,"start_character":4,"end_line":56,"end_character":52},"updated":"2020-09-02 22:31:51.000000000","message":"Use existing san_thin_provision option.","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"5b975d6173ace66e452afaf3394ed06be4a8b937","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    cfg.StrOpt(\u0027jovian_block_size\u0027,"},{"line_number":51,"context_line":"               default\u003d\u0027128K\u0027,"},{"line_number":52,"context_line":"               help\u003d\u0027Block size for volumes (512 - 128K)\u0027),"},{"line_number":53,"context_line":"    cfg.BoolOpt(\u0027jovian_provisioning_thin\u0027,"},{"line_number":54,"context_line":"                default\u003dFalse,"},{"line_number":55,"context_line":"                help\u003d\u0027Enables or disables the creation of sparse\u0027"},{"line_number":56,"context_line":"                     \u0027 (thin-provisioned) volumes\u0027),"},{"line_number":57,"context_line":"]"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f560f44_1580fff6","line":56,"range":{"start_line":53,"start_character":4,"end_line":56,"end_character":52},"in_reply_to":"9f560f44_baf17604","updated":"2020-09-07 21:30:42.000000000","message":"Done","commit_id":"0e4a22e7309442b1b70cbac7c3e494d6c55e5c63"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"819d8b1d4d10865cdc06b3f6dca228c1dc4e5255","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    cfg.ListOpt(\u0027san_hosts\u0027,"},{"line_number":20,"context_line":"                default\u003d\u0027\u0027,"},{"line_number":21,"context_line":"                help\u003d\u0027IP address of Open-E JovianDSS SA\u0027),"},{"line_number":22,"context_line":"    cfg.IntOpt(\u0027jovian_rest_send_repeats\u0027,"},{"line_number":23,"context_line":"               default\u003d3,"},{"line_number":24,"context_line":"               help\u003d\u0027Number of retries to send REST request.\u0027),"},{"line_number":25,"context_line":"    cfg.IntOpt(\u0027jovian_recovery_delay\u0027,"}],"source_content_type":"text/x-python","patch_set":36,"id":"9f560f44_7b1bf21a","line":22,"updated":"2020-10-12 12:02:32.000000000","message":"\u0027jovian_rest_retries\u0027 might make more sense, but this is fine. Just mentioning in case there is another need to update this patchset.","commit_id":"e1e289ca8b12e3f6dfd9982d2cc5946104283ca7"}],"doc/source/configuration/block-storage/drivers/open-e-joviandss-driver.rst":[{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"8dc15cbed60701d75c6bbb4ab85e8f91aba6a63c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Edit with your favourite editor Cinder config file. It can be found at"},{"line_number":25,"context_line":"/etc/cinder/cinder.conf"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Add the field enabled\\_backends with value joviandss:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"::"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"9f560f44_4037dfb0","line":27,"range":{"start_line":27,"start_character":43,"end_line":27,"end_character":52},"updated":"2020-09-28 20:37:05.000000000","message":"In the examples below you specified \u0027jdss-0\u0027.","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"8dc15cbed60701d75c6bbb4ab85e8f91aba6a63c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"     - Location of the driver source code"},{"line_number":89,"context_line":"   * - ``san_hosts``"},{"line_number":90,"context_line":"     -"},{"line_number":91,"context_line":"     - Coma separated list of IP address of the JovianDSS"},{"line_number":92,"context_line":"   * - ``san_login``"},{"line_number":93,"context_line":"     - admin"},{"line_number":94,"context_line":"     - Must be set according to the settings in [1]"}],"source_content_type":"text/x-rst","patch_set":32,"id":"9f560f44_a0551bc5","line":91,"range":{"start_line":91,"start_character":7,"end_line":91,"end_character":11},"updated":"2020-09-28 20:37:05.000000000","message":"Comma","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"8dc15cbed60701d75c6bbb4ab85e8f91aba6a63c","unresolved":false,"context_lines":[{"line_number":93,"context_line":"     - admin"},{"line_number":94,"context_line":"     - Must be set according to the settings in [1]"},{"line_number":95,"context_line":"   * - ``san_password``"},{"line_number":96,"context_line":"     - admin"},{"line_number":97,"context_line":"     - Must be set according to the settings in [1]"},{"line_number":98,"context_line":"   * - ``san_thin_provision``"},{"line_number":99,"context_line":"     - False"}],"source_content_type":"text/x-rst","patch_set":32,"id":"9f560f44_c0192f24","line":96,"range":{"start_line":96,"start_character":7,"end_line":96,"end_character":12},"updated":"2020-09-28 20:37:05.000000000","message":"I\u0027m not sure if it\u0027s a good idea to have default login/password instead of making them mandatory.\n\nThe user might feel inclined to use the default ones, which are hardcoded in the driver and therefore are too easy to guess.","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"9fc65ecdcc4c499abf5c0eedf54a6551725aae23","unresolved":false,"context_lines":[{"line_number":93,"context_line":"     - admin"},{"line_number":94,"context_line":"     - Must be set according to the settings in [1]"},{"line_number":95,"context_line":"   * - ``san_password``"},{"line_number":96,"context_line":"     - admin"},{"line_number":97,"context_line":"     - Must be set according to the settings in [1]"},{"line_number":98,"context_line":"   * - ``san_thin_provision``"},{"line_number":99,"context_line":"     - False"}],"source_content_type":"text/x-rst","patch_set":32,"id":"9f560f44_7b8fdb75","line":96,"range":{"start_line":96,"start_character":7,"end_line":96,"end_character":12},"in_reply_to":"9f560f44_0cffd935","updated":"2020-10-05 12:46:36.000000000","message":"It\u0027s up to you, but I recommend adding a note telling the users to change the credentials in production, so they won\u0027t blame you if an incident happens.","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"60b63ebf354e532f0882157d899c5a9df4d6b78e","unresolved":false,"context_lines":[{"line_number":93,"context_line":"     - admin"},{"line_number":94,"context_line":"     - Must be set according to the settings in [1]"},{"line_number":95,"context_line":"   * - ``san_password``"},{"line_number":96,"context_line":"     - admin"},{"line_number":97,"context_line":"     - Must be set according to the settings in [1]"},{"line_number":98,"context_line":"   * - ``san_thin_provision``"},{"line_number":99,"context_line":"     - False"}],"source_content_type":"text/x-rst","patch_set":32,"id":"9f560f44_0cffd935","line":96,"range":{"start_line":96,"start_character":7,"end_line":96,"end_character":12},"in_reply_to":"9f560f44_c0192f24","updated":"2020-10-03 14:41:53.000000000","message":"yes, but whole idea is to make test deployment easy for users. So it will work with default configurations of JovianDSS. Im sure that for production deployment people will change it(if they at least any understanding of cybersecurity)","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"8dc15cbed60701d75c6bbb4ab85e8f91aba6a63c","unresolved":false,"context_lines":[{"line_number":112,"context_line":"Multiple Pools"},{"line_number":113,"context_line":"~~~~~~~~~~~~~~"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"In order to to add another JovianDSS Pool is to create a copy of"},{"line_number":116,"context_line":"JovianDSS config in cinder.conf file."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"For instance if you want to add ``Pool-1`` located on the same host as"}],"source_content_type":"text/x-rst","patch_set":32,"id":"9f560f44_c08c8f3b","line":115,"range":{"start_line":115,"start_character":42,"end_line":115,"end_character":47},"updated":"2020-09-28 20:37:05.000000000","message":"I believe you can remove this and say \"In order to add another JovianDSS Pool, create a copy of JovianDSS config in cinder.conf file.\"","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"8dc15cbed60701d75c6bbb4ab85e8f91aba6a63c","unresolved":false,"context_lines":[{"line_number":112,"context_line":"Multiple Pools"},{"line_number":113,"context_line":"~~~~~~~~~~~~~~"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"In order to to add another JovianDSS Pool is to create a copy of"},{"line_number":116,"context_line":"JovianDSS config in cinder.conf file."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"For instance if you want to add ``Pool-1`` located on the same host as"}],"source_content_type":"text/x-rst","patch_set":32,"id":"9f560f44_00c20754","line":115,"range":{"start_line":115,"start_character":9,"end_line":115,"end_character":14},"updated":"2020-09-28 20:37:05.000000000","message":"to","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"819d8b1d4d10865cdc06b3f6dca228c1dc4e5255","unresolved":false,"context_lines":[{"line_number":94,"context_line":"     - Must be set according to the settings in [1]"},{"line_number":95,"context_line":"   * - ``san_password``"},{"line_number":96,"context_line":"     - admin"},{"line_number":97,"context_line":"     - Jovian password [1], **should be changed** for security purpouses"},{"line_number":98,"context_line":"   * - ``san_thin_provision``"},{"line_number":99,"context_line":"     - False"},{"line_number":100,"context_line":"     - Using thin provisioning for new volumes"}],"source_content_type":"text/x-rst","patch_set":36,"id":"9f560f44_5bd8ae50","line":97,"range":{"start_line":97,"start_character":63,"end_line":97,"end_character":72},"updated":"2020-10-12 12:02:32.000000000","message":"purposes\n\nCould be a quick follow on fix if there aren\u0027t any other important things to address here.","commit_id":"e1e289ca8b12e3f6dfd9982d2cc5946104283ca7"}],"releasenotes/notes/joviandss-iscsi-driver-0becc6ee6a0b3c0a.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"568274c2f275765ac1db4036e568f24d974e7fd5","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added suport of Open-E JovianDSS data storage."},{"line_number":5,"context_line":"    Driver supports Open-E disaster recovery feature and cascade volume"},{"line_number":6,"context_line":"    deletion in addition to minimal required functions."}],"source_content_type":"text/x-yaml","patch_set":32,"id":"9f560f44_9d4de3c7","line":6,"range":{"start_line":6,"start_character":25,"end_line":6,"end_character":44},"updated":"2020-09-28 15:45:52.000000000","message":"to support minimum required","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":22312,"name":"Andrei","email":"andrei.perepiolkin@open-e.com","username":"andrei.perepiolkin"},"change_message_id":"60b63ebf354e532f0882157d899c5a9df4d6b78e","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added suport of Open-E JovianDSS data storage."},{"line_number":5,"context_line":"    Driver supports Open-E disaster recovery feature and cascade volume"},{"line_number":6,"context_line":"    deletion in addition to minimal required functions."}],"source_content_type":"text/x-yaml","patch_set":32,"id":"9f560f44_2c79fdc4","line":6,"range":{"start_line":6,"start_character":25,"end_line":6,"end_character":44},"in_reply_to":"9f560f44_9d4de3c7","updated":"2020-10-03 14:41:53.000000000","message":"Done","commit_id":"757bb957a7bf2502a6c18cfc163219e1ac57653e"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"9fc65ecdcc4c499abf5c0eedf54a6551725aae23","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added suport of Open-E JovianDSS data storage."},{"line_number":5,"context_line":"    Driver supports Open-E disaster recovery feature and cascade volume"},{"line_number":6,"context_line":"    deletion in addition to support minimum required functions."}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_9b3d8fbe","line":4,"range":{"start_line":4,"start_character":17,"end_line":4,"end_character":19},"updated":"2020-10-05 12:46:36.000000000","message":"nit: \"support for\" might sound better","commit_id":"988bf01a30beb88e5a5df67e6231ca795af047e9"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"9fc65ecdcc4c499abf5c0eedf54a6551725aae23","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added suport of Open-E JovianDSS data storage."},{"line_number":5,"context_line":"    Driver supports Open-E disaster recovery feature and cascade volume"},{"line_number":6,"context_line":"    deletion in addition to support minimum required functions."}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_df689423","line":4,"range":{"start_line":4,"start_character":10,"end_line":4,"end_character":16},"updated":"2020-10-05 12:46:36.000000000","message":"support","commit_id":"988bf01a30beb88e5a5df67e6231ca795af047e9"}]}
