)]}'
{"cinder/volume/drivers/hitachi/hbsd_replication.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from futurist import ThreadPoolExecutor"},{"line_number":23,"context_line":"import time"},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":"from oslo_log import log as logging"},{"line_number":26,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":2,"id":"65ac723e_767831a6","line":23,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: F811 redefinition of unused \u0027time\u0027 from line 20","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from futurist import ThreadPoolExecutor"},{"line_number":23,"context_line":"import time"},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":"from oslo_log import log as logging"},{"line_number":26,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":2,"id":"333dabb6_7740a97a","line":23,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: I100 Import statements are in the wrong order. \u0027import time\u0027 should be before \u0027from futurist import ThreadPoolExecutor\u0027 and in a different group.","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from futurist import ThreadPoolExecutor"},{"line_number":23,"context_line":"import time"},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":"from oslo_log import log as logging"},{"line_number":26,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":2,"id":"967a84bb_981b9600","line":23,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: I201 Missing newline between import groups. \u0027import time\u0027 is identified as Stdlib and \u0027from futurist import ThreadPoolExecutor\u0027 is identified as Third Party.","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from futurist import ThreadPoolExecutor"},{"line_number":23,"context_line":"import time"},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":"from oslo_log import log as logging"},{"line_number":26,"context_line":"from oslo_utils import excutils"},{"line_number":27,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":2,"id":"6443ec0e_db2d8333","line":24,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: H306: imports not in alphabetical order (time, oslo_config.cfg)","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from futurist import ThreadPoolExecutor"},{"line_number":23,"context_line":"import time"},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":"from oslo_log import log as logging"},{"line_number":26,"context_line":"from oslo_utils import excutils"},{"line_number":27,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":2,"id":"a24a3ce2_f66286a3","line":24,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: I201 Missing newline between import groups. \u0027from oslo_config import cfg\u0027 is identified as Third Party and \u0027import time\u0027 is identified as Stdlib.","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":275,"context_line":""},{"line_number":276,"context_line":"MSG \u003d utils.HBSDMsg"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"def _check_rep_ldev(self, volume, operation):"},{"line_number":279,"context_line":"    if ((\u0027group_id\u0027 in volume and volume.group_id) or"},{"line_number":280,"context_line":"            (\u0027consistencygroup_id\u0027 in volume and volume.consistencygroup_id)):"},{"line_number":281,"context_line":"        group \u003d (volume.group_id if \u0027group_id\u0027 in volume and"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f5dc5c2_de3541fb","line":278,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":654,"context_line":"        pool_id \u003d self.rep_secondary.storage_info[\u0027pool_id\u0027][0]"},{"line_number":655,"context_line":"        ldev_range \u003d self.rep_secondary.storage_info[\u0027ldev_range\u0027]"},{"line_number":656,"context_line":"        qos_specs \u003d utils.get_qos_specs_from_volume(volume)"},{"line_number":657,"context_line":"        thread \u003d spawn("},{"line_number":658,"context_line":"            self.rep_secondary.create_ldev, volume.size, extra_specs,"},{"line_number":659,"context_line":"            pool_id, ldev_range, qos_specs\u003dqos_specs)"},{"line_number":660,"context_line":"        if pvol is None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"885ded4c_866ca13c","line":657,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: F821 undefined name \u0027spawn\u0027","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":684,"context_line":"                else:"},{"line_number":685,"context_line":"                    instance.delete_ldev(vol)"},{"line_number":686,"context_line":"            self.raise_error(msg)"},{"line_number":687,"context_line":"        thread \u003d spawn("},{"line_number":688,"context_line":"            self.rep_secondary.modify_ldev_name,"},{"line_number":689,"context_line":"            svol, volume[\u0027id\u0027].replace(\"-\", \"\"))"},{"line_number":690,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"f8ace746_749a10e6","line":687,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: F821 undefined name \u0027spawn\u0027","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":951,"context_line":"        svol \u003d None"},{"line_number":952,"context_line":"        pvol, svol \u003d self._create_rep_ldev(volume, extra_specs, rep_type, pvol)"},{"line_number":953,"context_line":"        try:"},{"line_number":954,"context_line":"            thread \u003d spawn("},{"line_number":955,"context_line":"                self.rep_secondary.initialize_pair_connection, svol)"},{"line_number":956,"context_line":"            try:"},{"line_number":957,"context_line":"                self.rep_primary.initialize_pair_connection(pvol)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3eeda994_fe952938","line":954,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: F821 undefined name \u0027spawn\u0027","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"        # Delete LDEVs if they are valid."},{"line_number":1220,"context_line":"        thread \u003d None"},{"line_number":1221,"context_line":"        if not svol_is_invalid:"},{"line_number":1222,"context_line":"            thread \u003d spawn("},{"line_number":1223,"context_line":"                self.rep_secondary.delete_volume, volume)"},{"line_number":1224,"context_line":"        try:"},{"line_number":1225,"context_line":"            if not pvol_is_invalid:"}],"source_content_type":"text/x-python","patch_set":2,"id":"c0bab319_baa5f49b","line":1222,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: F821 undefined name \u0027spawn\u0027","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":1245,"context_line":"                self.driver_info[\u0027mirror_attr\u0027],"},{"line_number":1246,"context_line":"                pair_info[\u0027svol_info\u0027][0][\u0027rep_type\u0027] !\u003d"},{"line_number":1247,"context_line":"                self.driver_info[\u0027mirror_attr\u0027])"},{"line_number":1248,"context_line":"            th \u003d spawn(self.rep_secondary.delete_ldev,"},{"line_number":1249,"context_line":"                                   pair_info[\u0027svol_info\u0027][0][\u0027ldev\u0027])"},{"line_number":1250,"context_line":"            try:"},{"line_number":1251,"context_line":"                self.rep_primary.delete_ldev(ldev)"}],"source_content_type":"text/x-python","patch_set":2,"id":"a4dad418_f4fb4f88","line":1248,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: F821 undefined name \u0027spawn\u0027","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":1246,"context_line":"                pair_info[\u0027svol_info\u0027][0][\u0027rep_type\u0027] !\u003d"},{"line_number":1247,"context_line":"                self.driver_info[\u0027mirror_attr\u0027])"},{"line_number":1248,"context_line":"            th \u003d spawn(self.rep_secondary.delete_ldev,"},{"line_number":1249,"context_line":"                                   pair_info[\u0027svol_info\u0027][0][\u0027ldev\u0027])"},{"line_number":1250,"context_line":"            try:"},{"line_number":1251,"context_line":"                self.rep_primary.delete_ldev(ldev)"},{"line_number":1252,"context_line":"            finally:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7439fe4c_e302f1df","line":1249,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":1505,"context_line":"        self._delete_rep_pair("},{"line_number":1506,"context_line":"            ldev, pair_info[\u0027svol_info\u0027][0][\u0027ldev\u0027],"},{"line_number":1507,"context_line":"            rep_type \u003d\u003d self.driver_info[\u0027mirror_attr\u0027], delete_journal\u003dFalse)"},{"line_number":1508,"context_line":"        thread \u003d spawn("},{"line_number":1509,"context_line":"            self.rep_secondary.extend_volume, volume, new_size)"},{"line_number":1510,"context_line":"        try:"},{"line_number":1511,"context_line":"            self.rep_primary.extend_volume(volume, new_size)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9e3adc62_e1121254","line":1508,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: F821 undefined name \u0027spawn\u0027","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":1597,"context_line":"        if self._has_rep_pair(ldev):"},{"line_number":1598,"context_line":"            if self.conf.hitachi_mirror_storage_id:"},{"line_number":1599,"context_line":"                self._require_rep_secondary()"},{"line_number":1600,"context_line":"                th \u003d spawn("},{"line_number":1601,"context_line":"                    self.rep_secondary.discard_zero_page, volume)"},{"line_number":1602,"context_line":"                try:"},{"line_number":1603,"context_line":"                    self.rep_primary.discard_zero_page(volume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"771d3767_7440d011","line":1600,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: F821 undefined name \u0027spawn\u0027","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":2011,"context_line":""},{"line_number":2012,"context_line":"    def spawn(fn, *args, **kwargs):"},{"line_number":2013,"context_line":"        return HBSDREPLICATION.GreenThreadCompat("},{"line_number":2014,"context_line":"            HBSDREPLICATION.GreenThreadCompat._executor.submit(fn, *args, **kwargs)"},{"line_number":2015,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"bba3e74c_67913b16","line":2014,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"}],"cinder/volume/drivers/hitachi/hbsd_rest.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\"REST interface module for Hitachi HBSD Driver.\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from collections import defaultdict"},{"line_number":19,"context_line":"import futurist"},{"line_number":20,"context_line":"from itertools import count"},{"line_number":21,"context_line":"import json"},{"line_number":22,"context_line":"import re"}],"source_content_type":"text/x-python","patch_set":2,"id":"f782c7db_c738ffa2","line":19,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: I201 Missing newline between import groups. \u0027import futurist\u0027 is identified as Third Party and \u0027from collections import defaultdict\u0027 is identified as Stdlib.","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from collections import defaultdict"},{"line_number":19,"context_line":"import futurist"},{"line_number":20,"context_line":"from itertools import count"},{"line_number":21,"context_line":"import json"},{"line_number":22,"context_line":"import re"},{"line_number":23,"context_line":"import time"}],"source_content_type":"text/x-python","patch_set":2,"id":"26fac1b6_7e678101","line":20,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: I100 Import statements are in the wrong order. \u0027from itertools import count\u0027 should be before \u0027import futurist\u0027 and in a different group.","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from collections import defaultdict"},{"line_number":19,"context_line":"import futurist"},{"line_number":20,"context_line":"from itertools import count"},{"line_number":21,"context_line":"import json"},{"line_number":22,"context_line":"import re"},{"line_number":23,"context_line":"import time"}],"source_content_type":"text/x-python","patch_set":2,"id":"6c04e8ae_cc600591","line":20,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: I201 Missing newline between import groups. \u0027from itertools import count\u0027 is identified as Stdlib and \u0027import futurist\u0027 is identified as Third Party.","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1f8344171f34a35ffcab01b9f09bd65a0783bcfa","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\"\"\"REST interface module for Hitachi HBSD Driver.\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from collections import defaultdict"},{"line_number":19,"context_line":"from itertools import count"},{"line_number":20,"context_line":"import json"},{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa438724_5625e31a","line":19,"updated":"2026-08-13 17:03:19.000000000","message":"pep8: F401 \u0027itertools.count\u0027 imported but unused","commit_id":"e726eadd9272cc8a3af29d4d7a523b10a738ae35"}],"cinder/volume/drivers/hitachi/hbsd_rest_api.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae6babc3bd6d37d03b73f773513e42861b80ce0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import threading"},{"line_number":23,"context_line":"import time"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c PATCH SET (1fbcbc53b50a042bc9206e4e228b58b390d41b6e [Hitachi] Remove Eventlet)"},{"line_number":26,"context_line":"import time"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":"\u003e\u003e\u003e\u003e\u003e\u003e\u003e BASE      (dae90eec954411bae3689e029e9460a020bc50de [Hitachi] Small documentation updates)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3c62fa95_4be55f47","line":25,"updated":"2026-07-31 19:54:55.000000000","message":"pep8: E999 SyntaxError: invalid decimal literal","commit_id":"6f3e7c45c12b86c735ff0f79f9599e06925bbb89"}]}
