)]}'
{"cinder/cmd/manage.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7482d25b16cb62a0aa710221823941f285e7f751","unresolved":false,"context_lines":[{"line_number":85,"context_line":"from cinder.scheduler import rpcapi as scheduler_rpcapi"},{"line_number":86,"context_line":"from cinder import version"},{"line_number":87,"context_line":"from cinder.volume import rpcapi as volume_rpcapi"},{"line_number":88,"context_line":"from cinder.volume import volume_utils as vutils"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_67ce735c","line":88,"range":{"start_line":88,"start_character":39,"end_line":88,"end_character":48},"updated":"2019-08-29 14:09:20.000000000","message":"I think we can remove this now (for consistency) and requires only one change in file at L#475","commit_id":"963ff0947ef1dae31b85cb79046e0772ab0a71ae"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7482d25b16cb62a0aa710221823941f285e7f751","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        \"\"\"Delete a volume, bypassing the check that it must be available.\"\"\""},{"line_number":473,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":474,"context_line":"        volume \u003d objects.Volume.get_by_id(ctxt, volume_id)"},{"line_number":475,"context_line":"        host \u003d vutils.extract_host(volume.host) if volume.host else None"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        if not host:"},{"line_number":478,"context_line":"            print(_(\"Volume not yet assigned to host.\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_a7fd4b6f","line":475,"range":{"start_line":475,"start_character":15,"end_line":475,"end_character":21},"updated":"2019-08-29 14:09:20.000000000","message":"here","commit_id":"963ff0947ef1dae31b85cb79046e0772ab0a71ae"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7482d25b16cb62a0aa710221823941f285e7f751","unresolved":false,"context_lines":[{"line_number":67,"context_line":"from cinder import objects"},{"line_number":68,"context_line":"from cinder.objects import fields"},{"line_number":69,"context_line":"from cinder import utils"},{"line_number":70,"context_line":"from cinder.volume import volume_utils as vol_utils"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"CONF \u003d cfg.CONF"},{"line_number":73,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_e7c4a310","line":70,"range":{"start_line":70,"start_character":39,"end_line":70,"end_character":51},"updated":"2019-08-29 14:09:20.000000000","message":"and removing this requires 2 changes, but good anyways","commit_id":"963ff0947ef1dae31b85cb79046e0772ab0a71ae"}],"cinder/tests/unit/scheduler/test_allocated_capacity_weigher.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7482d25b16cb62a0aa710221823941f285e7f751","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cinder.scheduler import weights"},{"line_number":25,"context_line":"from cinder import test"},{"line_number":26,"context_line":"from cinder.tests.unit.scheduler import fakes"},{"line_number":27,"context_line":"from cinder.volume import volume_utils as utils"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class AllocatedCapacityWeigherTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_c7eac772","line":27,"range":{"start_line":27,"start_character":26,"end_line":27,"end_character":47},"updated":"2019-08-29 14:09:20.000000000","message":"isn\u0027t this the opposite of what we\u0027re trying to achieve in this patch?","commit_id":"963ff0947ef1dae31b85cb79046e0772ab0a71ae"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"4e4ff6e78aafa11c96b94ad0e0ea8a5e90dd9c14","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cinder.scheduler import weights"},{"line_number":25,"context_line":"from cinder import test"},{"line_number":26,"context_line":"from cinder.tests.unit.scheduler import fakes"},{"line_number":27,"context_line":"from cinder.volume import volume_utils as utils"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class AllocatedCapacityWeigherTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_d15f7ae2","line":27,"range":{"start_line":27,"start_character":26,"end_line":27,"end_character":47},"in_reply_to":"7faddb67_c7eac772","updated":"2019-09-05 13:51:48.000000000","message":"Not the opposite, just not complete.","commit_id":"963ff0947ef1dae31b85cb79046e0772ab0a71ae"}],"cinder/tests/unit/volume/drivers/test_rbd.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"616bfd13a2fd302f2628fe95168e7f5997ce3760","unresolved":false,"context_lines":[{"line_number":2356,"context_line":"            self.assertEqual((True, None), ret)"},{"line_number":2357,"context_line":""},{"line_number":2358,"context_line":"    @mock.patch(\u0027tempfile.NamedTemporaryFile\u0027)"},{"line_number":2359,"context_line":"    @mock.patch(\u0027cinder.volume.utils.check_encryption_provider\u0027,"},{"line_number":2360,"context_line":"                return_value\u003d{\u0027encryption_key_id\u0027: fake.ENCRYPTION_KEY_ID})"},{"line_number":2361,"context_line":"    def test_create_encrypted_volume(self,"},{"line_number":2362,"context_line":"                                     mock_check_enc_prov,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_670d7836","line":2359,"range":{"start_line":2359,"start_character":17,"end_line":2359,"end_character":62},"updated":"2019-09-06 16:28:00.000000000","message":"cinder.volume.volume_utils.check_encryption_provider","commit_id":"03050d060ebe0e1298c5af067913c83c86132b0f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"cc8b2e9089d78e509ad228d92b4d1315d75cfc95","unresolved":false,"context_lines":[{"line_number":2356,"context_line":"            self.assertEqual((True, None), ret)"},{"line_number":2357,"context_line":""},{"line_number":2358,"context_line":"    @mock.patch(\u0027tempfile.NamedTemporaryFile\u0027)"},{"line_number":2359,"context_line":"    @mock.patch(\u0027cinder.volume.utils.check_encryption_provider\u0027,"},{"line_number":2360,"context_line":"                return_value\u003d{\u0027encryption_key_id\u0027: fake.ENCRYPTION_KEY_ID})"},{"line_number":2361,"context_line":"    def test_create_encrypted_volume(self,"},{"line_number":2362,"context_line":"                                     mock_check_enc_prov,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_430a8bd2","line":2359,"range":{"start_line":2359,"start_character":17,"end_line":2359,"end_character":62},"in_reply_to":"5faad753_670d7836","updated":"2019-09-09 19:12:27.000000000","message":"Thanks... I really need a one-liner tool that runs unit tests for each patch I have pending in a series.","commit_id":"03050d060ebe0e1298c5af067913c83c86132b0f"}]}
