)]}'
{"os_brick/encryptors/base.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ec7e67029348dcbb12e54988c17fc520cfeedde4","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from os_brick import executor"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class VolumeEncryptor(executor.Executor, metaclass\u003dabc.ABCMeta):"},{"line_number":22,"context_line":"    \"\"\"Base class to support encrypted volumes."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    A VolumeEncryptor provides hooks for attaching and detaching volumes, which"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_ccca1d4d","line":21,"updated":"2020-09-27 09:24:11.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"b40aea10ea0bd3fb08112332a7bf4694b5642c1f"}],"os_brick/exception.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c1652f00289d8dd6342c5415101cf7af89dffded","unresolved":true,"context_lines":[{"line_number":66,"context_line":"        self.msg \u003d message"},{"line_number":67,"context_line":"        super(BrickException, self).__init__(message)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def __unicode__(self):"},{"line_number":70,"context_line":"        return str(self.msg)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"4295fcbf_4a1ed64e","line":69,"range":{"start_line":69,"start_character":8,"end_line":69,"end_character":19},"updated":"2021-01-06 14:12:27.000000000","message":"Shouldn\u0027t __unicode__ be removed for python3?","commit_id":"4fdf1c62b9e422148df1b0174b4b1a847d521892"},{"author":{"_account_id":30092,"name":"Xuan Yandong","email":"xuanyd@outlook.com","username":"xuanyandong"},"change_message_id":"5b42ac3e3b7b650f7be92ac72659fa528b144e70","unresolved":true,"context_lines":[{"line_number":66,"context_line":"        self.msg \u003d message"},{"line_number":67,"context_line":"        super(BrickException, self).__init__(message)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def __unicode__(self):"},{"line_number":70,"context_line":"        return str(self.msg)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"63755a11_52911398","line":69,"range":{"start_line":69,"start_character":8,"end_line":69,"end_character":19},"in_reply_to":"4295fcbf_4a1ed64e","updated":"2021-01-15 00:53:32.000000000","message":"Ok, thanks, i  will remove it","commit_id":"4fdf1c62b9e422148df1b0174b4b1a847d521892"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"bc5a1f732756d2f7f1c09e153d32bf0c633dc010","unresolved":true,"context_lines":[{"line_number":196,"context_line":"                                   for i, t in enumerate(tracebacks))"},{"line_number":197,"context_line":"        return self._repr"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    __str__ \u003d __unicode__ \u003d __repr__"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def __nonzero__(self):"},{"line_number":202,"context_line":"        # We want to be able to do boolean checks on the exception"},{"line_number":203,"context_line":"        return bool(self._exceptions)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    __bool__ \u003d __nonzero__  # For Python 3"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def add_exception(self, exc_type, exc_val, exc_tb):"},{"line_number":208,"context_line":"        # Clear the representation cache"}],"source_content_type":"text/x-python","patch_set":6,"id":"236eba25_b8468e2b","line":205,"range":{"start_line":199,"start_character":0,"end_line":205,"end_character":42},"updated":"2021-01-13 22:40:00.000000000","message":"All of this appears to need a look as well.","commit_id":"5ddf7a166cbb8079e382a4bb6404c06160f5c797"},{"author":{"_account_id":30092,"name":"Xuan Yandong","email":"xuanyd@outlook.com","username":"xuanyandong"},"change_message_id":"5b42ac3e3b7b650f7be92ac72659fa528b144e70","unresolved":true,"context_lines":[{"line_number":196,"context_line":"                                   for i, t in enumerate(tracebacks))"},{"line_number":197,"context_line":"        return self._repr"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    __str__ \u003d __unicode__ \u003d __repr__"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def __nonzero__(self):"},{"line_number":202,"context_line":"        # We want to be able to do boolean checks on the exception"},{"line_number":203,"context_line":"        return bool(self._exceptions)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    __bool__ \u003d __nonzero__  # For Python 3"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def add_exception(self, exc_type, exc_val, exc_tb):"},{"line_number":208,"context_line":"        # Clear the representation cache"}],"source_content_type":"text/x-python","patch_set":6,"id":"70d413bc_33178774","line":205,"range":{"start_line":199,"start_character":0,"end_line":205,"end_character":42},"in_reply_to":"236eba25_b8468e2b","updated":"2021-01-15 00:53:32.000000000","message":"Fix it, thanks very much, please review again,","commit_id":"5ddf7a166cbb8079e382a4bb6404c06160f5c797"}],"os_brick/tests/initiator/connectors/test_fibre_channel.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f5a523328d97e145e41e61c9187a2eef3378de94","unresolved":true,"context_lines":[{"line_number":258,"context_line":"        # Should work for string, unicode, and list"},{"line_number":259,"context_line":"        wwns_luns \u003d ["},{"line_number":260,"context_line":"            (\u00271234567890123456\u0027, 1),"},{"line_number":261,"context_line":"            (str(\u00271234567890123456\u0027), 1),"},{"line_number":262,"context_line":"            ([\u00271234567890123456\u0027, \u00271234567890123457\u0027], 1),"},{"line_number":263,"context_line":"            ([\u00271234567890123456\u0027, \u00271234567890123457\u0027], 1),"},{"line_number":264,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":14,"id":"321726b2_b7b7b636","line":261,"range":{"start_line":261,"start_character":13,"end_line":261,"end_character":17},"updated":"2021-03-03 14:33:14.000000000","message":"This doesn\u0027t need a str() call.","commit_id":"a9011e5558590c1503bba09cdf39d87d707b385d"}],"os_brick/tests/privileged/test_rootwrap.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ec7e67029348dcbb12e54988c17fc520cfeedde4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from unittest import mock"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":16,"context_line":"import six"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from os_brick import exception"},{"line_number":19,"context_line":"from os_brick import privileged"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_8cadc585","line":16,"updated":"2020-09-27 09:24:11.000000000","message":"pep8: F401 \u0027six\u0027 imported but unused","commit_id":"b40aea10ea0bd3fb08112332a7bf4694b5642c1f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"14ecba83dcfc357d35405fc0336019adcba24698","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from unittest import mock"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":16,"context_line":"from os_brick import exception"},{"line_number":17,"context_line":"from os_brick import privileged"},{"line_number":18,"context_line":"from os_brick.privileged import rootwrap as priv_rootwrap"},{"line_number":19,"context_line":"from os_brick.tests import base"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_0c4b75b0","line":16,"updated":"2020-09-27 10:18:59.000000000","message":"pep8: H306: imports not in alphabetical order (oslo_concurrency.processutils, os_brick.exception)","commit_id":"0e6c23e88266291a1073b0287343948b579938ac"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"77a75b05ffef8acf2d479abf0545fd38ff6cb48f","unresolved":true,"context_lines":[{"line_number":14,"context_line":"from os_brick import privileged"},{"line_number":15,"context_line":"from os_brick.privileged import rootwrap as priv_rootwrap"},{"line_number":16,"context_line":"from os_brick.tests import base"},{"line_number":17,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":18,"context_line":"from unittest import mock"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class PrivRootwrapTestCase(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"edd5b827_ac569b3c","line":18,"range":{"start_line":17,"start_character":0,"end_line":18,"end_character":25},"updated":"2021-02-12 16:47:25.000000000","message":"these are now out of order:\nhttps://docs.openstack.org/hacking/latest/user/hacking.html#import-order-template\n\n(they are correct in the base patch)","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":true,"context_lines":[{"line_number":16,"context_line":"from os_brick import privileged"},{"line_number":17,"context_line":"from os_brick.privileged import rootwrap as priv_rootwrap"},{"line_number":18,"context_line":"from os_brick.tests import base"},{"line_number":19,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class PrivRootwrapTestCase(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":10,"id":"37a6c821_eecb9db8","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":51},"updated":"2021-03-02 00:20:19.000000000","message":"this should be up above, between the stdlib and os_brick (where it is on the base patch)","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"088320e02e8fa81cce6baf01951285dc3413ae51","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from os_brick import privileged"},{"line_number":17,"context_line":"from os_brick.privileged import rootwrap as priv_rootwrap"},{"line_number":18,"context_line":"from os_brick.tests import base"},{"line_number":19,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class PrivRootwrapTestCase(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":10,"id":"0c0b0926_7076d998","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":51},"in_reply_to":"37a6c821_eecb9db8","updated":"2021-03-02 12:47:04.000000000","message":"Done","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"}],"os_brick/tests/remotefs/test_remotefs.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ec7e67029348dcbb12e54988c17fc520cfeedde4","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from unittest import mock"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":18,"context_line":"import builtins"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from os_brick import exception"},{"line_number":21,"context_line":"from os_brick.privileged import rootwrap as priv_rootwrap"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_2cbab9be","line":18,"updated":"2020-09-27 09:24:11.000000000","message":"pep8: H306: imports not in alphabetical order (oslo_concurrency.processutils, builtins)","commit_id":"b40aea10ea0bd3fb08112332a7bf4694b5642c1f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"14ecba83dcfc357d35405fc0336019adcba24698","unresolved":false,"context_lines":[{"line_number":13,"context_line":"import os"},{"line_number":14,"context_line":"import tempfile"},{"line_number":15,"context_line":"from unittest import mock"},{"line_number":16,"context_line":"import builtins"},{"line_number":17,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from os_brick import exception"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_ac4fe9bb","line":16,"updated":"2020-09-27 10:18:59.000000000","message":"pep8: H306: imports not in alphabetical order (unittest.mock, builtins)","commit_id":"0e6c23e88266291a1073b0287343948b579938ac"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"77a75b05ffef8acf2d479abf0545fd38ff6cb48f","unresolved":true,"context_lines":[{"line_number":13,"context_line":"import builtins"},{"line_number":14,"context_line":"import os"},{"line_number":15,"context_line":"import tempfile"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from unittest import mock"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from os_brick import exception"}],"source_content_type":"text/x-python","patch_set":7,"id":"8d84bf04_65bb4e3c","line":16,"updated":"2021-02-12 16:47:25.000000000","message":"this blank line shouldn\u0027t be here because unittest is in the python standard library","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":false,"context_lines":[{"line_number":13,"context_line":"import builtins"},{"line_number":14,"context_line":"import os"},{"line_number":15,"context_line":"import tempfile"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from unittest import mock"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from os_brick import exception"}],"source_content_type":"text/x-python","patch_set":7,"id":"663b8ee5_e107f487","line":16,"in_reply_to":"8d84bf04_65bb4e3c","updated":"2021-03-02 00:20:19.000000000","message":"Done","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"77a75b05ffef8acf2d479abf0545fd38ff6cb48f","unresolved":true,"context_lines":[{"line_number":20,"context_line":"from os_brick.privileged import rootwrap as priv_rootwrap"},{"line_number":21,"context_line":"from os_brick.remotefs import remotefs"},{"line_number":22,"context_line":"from os_brick.tests import base"},{"line_number":23,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class RemoteFsClientTestCase(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"75ac1f3e_5fe88541","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":51},"updated":"2021-02-12 16:47:25.000000000","message":"this should be above in the third-party library section\n\nsee https://docs.openstack.org/hacking/latest/user/hacking.html#import-order-template","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from os_brick.privileged import rootwrap as priv_rootwrap"},{"line_number":21,"context_line":"from os_brick.remotefs import remotefs"},{"line_number":22,"context_line":"from os_brick.tests import base"},{"line_number":23,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class RemoteFsClientTestCase(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9c7e2375_4583554e","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":51},"in_reply_to":"75ac1f3e_5fe88541","updated":"2021-03-02 00:20:19.000000000","message":"Done","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":true,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import builtins"},{"line_number":14,"context_line":"import os"},{"line_number":15,"context_line":"import tempfile"},{"line_number":16,"context_line":"from unittest import mock"}],"source_content_type":"text/x-python","patch_set":10,"id":"ac3fbc2f_7d6e17e1","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":15},"updated":"2021-03-02 00:20:19.000000000","message":"remove this","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"088320e02e8fa81cce6baf01951285dc3413ae51","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import builtins"},{"line_number":14,"context_line":"import os"},{"line_number":15,"context_line":"import tempfile"},{"line_number":16,"context_line":"from unittest import mock"}],"source_content_type":"text/x-python","patch_set":10,"id":"e6f35ed9_59546318","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":15},"in_reply_to":"ac3fbc2f_7d6e17e1","updated":"2021-03-02 12:47:04.000000000","message":"Done","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":true,"context_lines":[{"line_number":61,"context_line":"    def test_read_mounts(self):"},{"line_number":62,"context_line":"        mounts \u003d \"\"\"device1 mnt_point1 ext4 rw,seclabel,relatime 0 0"},{"line_number":63,"context_line":"                    device2 mnt_point2 ext4 rw,seclabel,relatime 0 0\"\"\""},{"line_number":64,"context_line":"        mockopen \u003d mock.mock_open(read_data\u003dmounts)"},{"line_number":65,"context_line":"        mockopen.return_value.__iter__ \u003d lambda self: iter(self.readline, \u0027\u0027)"},{"line_number":66,"context_line":"        with mock.patch.object(builtins, \"open\", mockopen,"},{"line_number":67,"context_line":"                               create\u003dTrue):"},{"line_number":68,"context_line":"            client \u003d remotefs.RemoteFsClient(\"cifs\", root_helper\u003d\u0027true\u0027,"},{"line_number":69,"context_line":"                                             smbfs_mount_point_base\u003d\u0027/mnt\u0027)"},{"line_number":70,"context_line":"            ret \u003d client._read_mounts()"}],"source_content_type":"text/x-python","patch_set":10,"id":"00b2451d_9f012384","line":67,"range":{"start_line":64,"start_character":0,"end_line":67,"end_character":44},"updated":"2021-03-02 00:20:19.000000000","message":"replace these with:\n\n        with mock.patch(\u0027os_brick.remotefs.remotefs.open\u0027,\n                        mock.mock_open(read_data\u003dmounts)) as mock_open:","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"088320e02e8fa81cce6baf01951285dc3413ae51","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    def test_read_mounts(self):"},{"line_number":62,"context_line":"        mounts \u003d \"\"\"device1 mnt_point1 ext4 rw,seclabel,relatime 0 0"},{"line_number":63,"context_line":"                    device2 mnt_point2 ext4 rw,seclabel,relatime 0 0\"\"\""},{"line_number":64,"context_line":"        mockopen \u003d mock.mock_open(read_data\u003dmounts)"},{"line_number":65,"context_line":"        mockopen.return_value.__iter__ \u003d lambda self: iter(self.readline, \u0027\u0027)"},{"line_number":66,"context_line":"        with mock.patch.object(builtins, \"open\", mockopen,"},{"line_number":67,"context_line":"                               create\u003dTrue):"},{"line_number":68,"context_line":"            client \u003d remotefs.RemoteFsClient(\"cifs\", root_helper\u003d\u0027true\u0027,"},{"line_number":69,"context_line":"                                             smbfs_mount_point_base\u003d\u0027/mnt\u0027)"},{"line_number":70,"context_line":"            ret \u003d client._read_mounts()"}],"source_content_type":"text/x-python","patch_set":10,"id":"995b6fc0_92e580ff","line":67,"range":{"start_line":64,"start_character":0,"end_line":67,"end_character":44},"in_reply_to":"00b2451d_9f012384","updated":"2021-03-02 12:47:04.000000000","message":"Done","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":true,"context_lines":[{"line_number":67,"context_line":"                               create\u003dTrue):"},{"line_number":68,"context_line":"            client \u003d remotefs.RemoteFsClient(\"cifs\", root_helper\u003d\u0027true\u0027,"},{"line_number":69,"context_line":"                                             smbfs_mount_point_base\u003d\u0027/mnt\u0027)"},{"line_number":70,"context_line":"            ret \u003d client._read_mounts()"},{"line_number":71,"context_line":"        self.assertEqual(ret, {\u0027mnt_point1\u0027: \u0027device1\u0027,"},{"line_number":72,"context_line":"                               \u0027mnt_point2\u0027: \u0027device2\u0027})"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"d8371c9c_4a69d86d","line":70,"updated":"2021-03-02 00:20:19.000000000","message":"might as well check the mocked open, so add this line:\n\n           mock_open.assert_called_once_with(\u0027/proc/mounts\u0027, \u0027r\u0027)","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"088320e02e8fa81cce6baf01951285dc3413ae51","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                               create\u003dTrue):"},{"line_number":68,"context_line":"            client \u003d remotefs.RemoteFsClient(\"cifs\", root_helper\u003d\u0027true\u0027,"},{"line_number":69,"context_line":"                                             smbfs_mount_point_base\u003d\u0027/mnt\u0027)"},{"line_number":70,"context_line":"            ret \u003d client._read_mounts()"},{"line_number":71,"context_line":"        self.assertEqual(ret, {\u0027mnt_point1\u0027: \u0027device1\u0027,"},{"line_number":72,"context_line":"                               \u0027mnt_point2\u0027: \u0027device2\u0027})"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1ba60c95_87f348e2","line":70,"in_reply_to":"d8371c9c_4a69d86d","updated":"2021-03-02 12:47:04.000000000","message":"Done","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":true,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        with mock.patch.object(tempfile, \u0027mkdtemp\u0027,"},{"line_number":199,"context_line":"                               return_value\u003dtmp_dir):"},{"line_number":200,"context_line":"            mock_open \u003d mock.mock_open()"},{"line_number":201,"context_line":"            with mock.patch.object(builtins, \"open\","},{"line_number":202,"context_line":"                                   mock_open, create\u003dTrue):"},{"line_number":203,"context_line":"                client.mount(share)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"                write_calls \u003d [mock.call(tmp_dir + \u0027bs_list\u0027, \u0027w\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"295c3358_2befd6c7","line":202,"range":{"start_line":200,"start_character":0,"end_line":202,"end_character":59},"updated":"2021-03-02 00:20:19.000000000","message":"replace these with:\n\n            with mock.patch(\u0027os_brick.remotefs.remotefs.open\u0027,\n                            new_callable\u003dmock.mock_open) as mock_open:","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"088320e02e8fa81cce6baf01951285dc3413ae51","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        with mock.patch.object(tempfile, \u0027mkdtemp\u0027,"},{"line_number":199,"context_line":"                               return_value\u003dtmp_dir):"},{"line_number":200,"context_line":"            mock_open \u003d mock.mock_open()"},{"line_number":201,"context_line":"            with mock.patch.object(builtins, \"open\","},{"line_number":202,"context_line":"                                   mock_open, create\u003dTrue):"},{"line_number":203,"context_line":"                client.mount(share)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"                write_calls \u003d [mock.call(tmp_dir + \u0027bs_list\u0027, \u0027w\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"577bdf79_cd6ae7f1","line":202,"range":{"start_line":200,"start_character":0,"end_line":202,"end_character":59},"in_reply_to":"295c3358_2befd6c7","updated":"2021-03-02 12:47:04.000000000","message":"OK, except for initializing mock_open (see comment on PS 13).","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"088320e02e8fa81cce6baf01951285dc3413ae51","unresolved":true,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        with mock.patch.object(tempfile, \u0027mkdtemp\u0027,"},{"line_number":197,"context_line":"                               return_value\u003dtmp_dir):"},{"line_number":198,"context_line":"            mock_open \u003d mock.mock_open()"},{"line_number":199,"context_line":"            with mock.patch(\u0027os_brick.remotefs.remotefs.open\u0027,"},{"line_number":200,"context_line":"                            new_callable\u003dmock.mock_open) as mock_open:"},{"line_number":201,"context_line":"                client.mount(share)"}],"source_content_type":"text/x-python","patch_set":13,"id":"755fe7a1_9fffaad2","line":198,"range":{"start_line":198,"start_character":12,"end_line":198,"end_character":40},"updated":"2021-03-02 12:47:04.000000000","message":"You should remove this.  The mock_open object is being created in the patch statement at line 200, so it\u0027s not necessary to create it here.","commit_id":"293732ba58278fa93fca22cd6a2945b6ea8dd3a5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b85963b93d3fd076d36cec226d24efa258c1ba32","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        with mock.patch.object(tempfile, \u0027mkdtemp\u0027,"},{"line_number":197,"context_line":"                               return_value\u003dtmp_dir):"},{"line_number":198,"context_line":"            mock_open \u003d mock.mock_open()"},{"line_number":199,"context_line":"            with mock.patch(\u0027os_brick.remotefs.remotefs.open\u0027,"},{"line_number":200,"context_line":"                            new_callable\u003dmock.mock_open) as mock_open:"},{"line_number":201,"context_line":"                client.mount(share)"}],"source_content_type":"text/x-python","patch_set":13,"id":"8b82bfd1_b2270378","line":198,"range":{"start_line":198,"start_character":12,"end_line":198,"end_character":40},"in_reply_to":"755fe7a1_9fffaad2","updated":"2021-03-03 13:35:47.000000000","message":"Done","commit_id":"293732ba58278fa93fca22cd6a2945b6ea8dd3a5"}],"os_brick/tests/test_executor.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ec7e67029348dcbb12e54988c17fc520cfeedde4","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":20,"context_line":"from oslo_context import context as context_utils"},{"line_number":21,"context_line":"import six"},{"line_number":22,"context_line":"import testtools"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from os_brick import executor as brick_executor"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_eca28196","line":21,"updated":"2020-09-27 09:24:11.000000000","message":"pep8: F401 \u0027six\u0027 imported but unused","commit_id":"b40aea10ea0bd3fb08112332a7bf4694b5642c1f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ec7e67029348dcbb12e54988c17fc520cfeedde4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":20,"context_line":"from oslo_context import context as context_utils"},{"line_number":21,"context_line":"import six"},{"line_number":22,"context_line":"import testtools"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from os_brick import executor as brick_executor"},{"line_number":25,"context_line":"from os_brick.privileged import rootwrap"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_4cb72dd9","line":22,"updated":"2020-09-27 09:24:11.000000000","message":"pep8: F401 \u0027testtools\u0027 imported but unused","commit_id":"b40aea10ea0bd3fb08112332a7bf4694b5642c1f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"14ecba83dcfc357d35405fc0336019adcba24698","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":20,"context_line":"from oslo_context import context as context_utils"},{"line_number":21,"context_line":"from os_brick import executor as brick_executor"},{"line_number":22,"context_line":"from os_brick.privileged import rootwrap"},{"line_number":23,"context_line":"from os_brick.tests import base"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_cc54dd56","line":21,"updated":"2020-09-27 10:18:59.000000000","message":"pep8: H306: imports not in alphabetical order (oslo_context.context, os_brick.executor)","commit_id":"0e6c23e88266291a1073b0287343948b579938ac"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"77a75b05ffef8acf2d479abf0545fd38ff6cb48f","unresolved":true,"context_lines":[{"line_number":19,"context_line":"from os_brick import executor as brick_executor"},{"line_number":20,"context_line":"from os_brick.privileged import rootwrap"},{"line_number":21,"context_line":"from os_brick.tests import base"},{"line_number":22,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":23,"context_line":"from oslo_context import context as context_utils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TestExecutor(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"09d70f71_48db2cb4","line":23,"range":{"start_line":22,"start_character":0,"end_line":23,"end_character":49},"updated":"2021-02-12 16:47:25.000000000","message":"these should be in the third party library section\n\nsee https://docs.openstack.org/hacking/latest/user/hacking.html#import-order-template","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from os_brick import executor as brick_executor"},{"line_number":20,"context_line":"from os_brick.privileged import rootwrap"},{"line_number":21,"context_line":"from os_brick.tests import base"},{"line_number":22,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":23,"context_line":"from oslo_context import context as context_utils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TestExecutor(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"99a84b57_75ac8745","line":23,"range":{"start_line":22,"start_character":0,"end_line":23,"end_character":49},"in_reply_to":"09d70f71_48db2cb4","updated":"2021-03-02 00:20:19.000000000","message":"Done","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"}],"os_brick/tests/windows/test_base_connector.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ec7e67029348dcbb12e54988c17fc520cfeedde4","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import ddt"},{"line_number":19,"context_line":"import builtins"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from os_brick import exception"},{"line_number":22,"context_line":"from os_brick.initiator.windows import base as base_win_conn"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_6cb031dd","line":19,"updated":"2020-09-27 09:24:11.000000000","message":"pep8: H306: imports not in alphabetical order (ddt, builtins)","commit_id":"b40aea10ea0bd3fb08112332a7bf4694b5642c1f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"14ecba83dcfc357d35405fc0336019adcba24698","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":"import builtins"},{"line_number":18,"context_line":"import ddt"},{"line_number":19,"context_line":"from os_brick import exception"},{"line_number":20,"context_line":"from os_brick.initiator.windows import base as base_win_conn"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_ec45619c","line":17,"updated":"2020-09-27 10:18:59.000000000","message":"pep8: H306: imports not in alphabetical order (unittest.mock, builtins)","commit_id":"0e6c23e88266291a1073b0287343948b579938ac"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"77a75b05ffef8acf2d479abf0545fd38ff6cb48f","unresolved":true,"context_lines":[{"line_number":19,"context_line":"from os_brick.initiator.windows import base as base_win_conn"},{"line_number":20,"context_line":"from os_brick.tests.windows import fake_win_conn"},{"line_number":21,"context_line":"from os_brick.tests.windows import test_base"},{"line_number":22,"context_line":"from unittest import mock"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"@ddt.ddt"}],"source_content_type":"text/x-python","patch_set":7,"id":"4e1573db_b6dce35d","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":25},"updated":"2021-02-12 16:47:25.000000000","message":"this should be after line 16 followed by a space before what\u0027s currently at line 17","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from os_brick.initiator.windows import base as base_win_conn"},{"line_number":20,"context_line":"from os_brick.tests.windows import fake_win_conn"},{"line_number":21,"context_line":"from os_brick.tests.windows import test_base"},{"line_number":22,"context_line":"from unittest import mock"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"@ddt.ddt"}],"source_content_type":"text/x-python","patch_set":7,"id":"88da76cf_95d7b4d1","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":25},"in_reply_to":"4e1573db_b6dce35d","updated":"2021-03-02 00:20:19.000000000","message":"Done","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":true,"context_lines":[{"line_number":86,"context_line":"        mock_get_uid_and_type.assert_called_once_with(mock.sentinel.dev_num)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @ddt.data(None, IOError)"},{"line_number":89,"context_line":"    @mock.patch.object(builtins, \u0027open\u0027)"},{"line_number":90,"context_line":"    def test_check_valid_device(self, exc, mock_open):"},{"line_number":91,"context_line":"        mock_open.side_effect \u003d exc"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"65c92ce8_aa7ead32","line":89,"range":{"start_line":89,"start_character":0,"end_line":89,"end_character":40},"updated":"2021-03-02 00:20:19.000000000","message":"replace this with:\n\n    @mock.patch(\u0027os_brick.initiator.windows.base.open\u0027,\n                new_callable\u003dmock.mock_open)\n\n(and remove builtins from the imports)","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"088320e02e8fa81cce6baf01951285dc3413ae51","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        mock_get_uid_and_type.assert_called_once_with(mock.sentinel.dev_num)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @ddt.data(None, IOError)"},{"line_number":89,"context_line":"    @mock.patch.object(builtins, \u0027open\u0027)"},{"line_number":90,"context_line":"    def test_check_valid_device(self, exc, mock_open):"},{"line_number":91,"context_line":"        mock_open.side_effect \u003d exc"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"b04af1d3_8e7f18f5","line":89,"range":{"start_line":89,"start_character":0,"end_line":89,"end_character":40},"in_reply_to":"65c92ce8_aa7ead32","updated":"2021-03-02 12:47:04.000000000","message":"Done","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"}],"os_brick/utils.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ec7e67029348dcbb12e54988c17fc520cfeedde4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import time"},{"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 encodeutils"},{"line_number":22,"context_line":"from oslo_utils import strutils"},{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_0ca89575","line":21,"updated":"2020-09-27 09:24:11.000000000","message":"pep8: F401 \u0027oslo_utils.encodeutils\u0027 imported but unused","commit_id":"b40aea10ea0bd3fb08112332a7bf4694b5642c1f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"14ecba83dcfc357d35405fc0336019adcba24698","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import time"},{"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 encodeutils"},{"line_number":22,"context_line":"from oslo_utils import strutils"},{"line_number":23,"context_line":"from os_brick.i18n import _"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_2c647948","line":21,"updated":"2020-09-27 10:18:59.000000000","message":"pep8: F401 \u0027oslo_utils.encodeutils\u0027 imported but unused","commit_id":"0e6c23e88266291a1073b0287343948b579938ac"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"14ecba83dcfc357d35405fc0336019adcba24698","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":"from oslo_utils import encodeutils"},{"line_number":22,"context_line":"from oslo_utils import strutils"},{"line_number":23,"context_line":"from os_brick.i18n import _"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"_time_sleep \u003d time.sleep"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_8c57855a","line":23,"updated":"2020-09-27 10:18:59.000000000","message":"pep8: H306: imports not in alphabetical order (oslo_utils.strutils, os_brick.i18n._)","commit_id":"0e6c23e88266291a1073b0287343948b579938ac"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"14ecba83dcfc357d35405fc0336019adcba24698","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _decorator(f):"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        @six.wraps(f)"},{"line_number":57,"context_line":"        def _wrapper(*args, **kwargs):"},{"line_number":58,"context_line":"            r \u003d tenacity.Retrying("},{"line_number":59,"context_line":"                before_sleep\u003dtenacity.before_sleep_log(LOG, logging.DEBUG),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_6c5af181","line":56,"updated":"2020-09-27 10:18:59.000000000","message":"pep8: F821 undefined name \u0027six\u0027","commit_id":"0e6c23e88266291a1073b0287343948b579938ac"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"77a75b05ffef8acf2d479abf0545fd38ff6cb48f","unresolved":true,"context_lines":[{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from os_brick.i18n import _"},{"line_number":21,"context_line":"from oslo_log import log as logging"},{"line_number":22,"context_line":"from oslo_utils import strutils"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"_time_sleep \u003d time.sleep"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"6cbda692_d7475f41","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":31},"updated":"2021-02-12 16:47:25.000000000","message":"see https://docs.openstack.org/hacking/latest/user/hacking.html#import-order-template about the ordering","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"}],"tools/lintstack.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ec7e67029348dcbb12e54988c17fc520cfeedde4","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from pylint import lint"},{"line_number":24,"context_line":"from pylint.reporters import text"},{"line_number":25,"context_line":"from io import StringIO"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"ignore_codes \u003d ["},{"line_number":28,"context_line":"    # Note(maoy): E1103 is error code related to partial type inference"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_acc5293f","line":25,"updated":"2020-09-27 09:24:11.000000000","message":"pep8: H306: imports not in alphabetical order (pylint.reporters.text, io.stringio)","commit_id":"b40aea10ea0bd3fb08112332a7bf4694b5642c1f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"14ecba83dcfc357d35405fc0336019adcba24698","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import json"},{"line_number":20,"context_line":"import re"},{"line_number":21,"context_line":"import sys"},{"line_number":22,"context_line":"from io import StringIO"},{"line_number":23,"context_line":"from pylint import lint"},{"line_number":24,"context_line":"from pylint.reporters import text"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_4cc60d18","line":22,"updated":"2020-09-27 10:18:59.000000000","message":"pep8: H306: imports not in alphabetical order (sys, io.stringio)","commit_id":"0e6c23e88266291a1073b0287343948b579938ac"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"77a75b05ffef8acf2d479abf0545fd38ff6cb48f","unresolved":true,"context_lines":[{"line_number":20,"context_line":"import json"},{"line_number":21,"context_line":"from pylint import lint"},{"line_number":22,"context_line":"from pylint.reporters import text"},{"line_number":23,"context_line":"import re"},{"line_number":24,"context_line":"import sys"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"ignore_codes \u003d ["},{"line_number":27,"context_line":"    # Note(maoy): E1103 is error code related to partial type inference"}],"source_content_type":"text/x-python","patch_set":7,"id":"c0aa9dae_64577d6a","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":10},"updated":"2021-02-12 16:47:25.000000000","message":"these should be up in the standard library section\n\nsee https://docs.openstack.org/hacking/latest/user/hacking.html#import-order-template","commit_id":"01a3f1fb27a43d38f7a99f39bc4756d8e47df4d3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3831546682165222e7f6dd77d72974782690a15a","unresolved":true,"context_lines":[{"line_number":18,"context_line":"import re"},{"line_number":19,"context_line":"import sys"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from io import StringIO"},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"from pylint import lint"},{"line_number":24,"context_line":"from pylint.reporters import text"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"8097226a_e5c1c5fc","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":11},"updated":"2021-03-02 00:20:19.000000000","message":"these are standard modules and should be up top with re and sys (in order, though)","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"088320e02e8fa81cce6baf01951285dc3413ae51","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import re"},{"line_number":19,"context_line":"import sys"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from io import StringIO"},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"from pylint import lint"},{"line_number":24,"context_line":"from pylint.reporters import text"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"4538ffef_283d2804","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":11},"in_reply_to":"8097226a_e5c1c5fc","updated":"2021-03-02 12:47:04.000000000","message":"Done","commit_id":"6d38987419e980e6a15e8be33b952247a9f3e8ad"}]}
