)]}'
{"nova/tests/fixtures.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"98a71a1086b9d6f9ce6ef42e9b8398199eafa599","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        # NOTE(gibi): this depends on the internals of the fixtures.FakeLogger."},{"line_number":198,"context_line":"        # This could be enhanced once the PR"},{"line_number":199,"context_line":"        # https://github.com/testing-cabal/fixtures/pull/42 merges"},{"line_number":200,"context_line":"        self.logger._output.seek(0)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"class DatabasePoisonFixture(fixtures.Fixture):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_c0208faf","line":200,"updated":"2020-11-08 10:30:58.000000000","message":"While truncate did reduce the log output to subunit it wasn\u0027t reducing to zero length for some reason. seek(0) does that perfectly.","commit_id":"a7b35164e120bd6dc4fc592d1c0c5940f574777c"}],"nova/tests/functional/compute/test_compute_rpc.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4a09b0ac3cc3652cb1829fb80e9d450b9fe47684","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            # for each RPC minor version in the last major version"},{"line_number":103,"context_line":"            for rpc_minor in reversed(range(0, max_rpc_minor + 1)):"},{"line_number":104,"context_line":"                version \u003d max_rpc_major + \u0027.\u0027 + str(rpc_minor)"},{"line_number":105,"context_line":"                # run the RPC version while the RPC pinned to the given version"},{"line_number":106,"context_line":"                self._run_rpc(method, version)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"                # if this test step did not raised then we consider the step as"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_42576759","line":105,"range":{"start_line":105,"start_character":30,"end_line":105,"end_character":37},"updated":"2020-11-07 16:02:41.000000000","message":"method","commit_id":"c5ef183ffb941e6c9e2681a0dadf049ab97d8188"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4a09b0ac3cc3652cb1829fb80e9d450b9fe47684","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            if param_name in [\u0027host\u0027, \u0027destination\u0027]:"},{"line_number":167,"context_line":"                args.append(self.hostname)"},{"line_number":168,"context_line":"            elif param_name \u003d\u003d \u0027instance\u0027:"},{"line_number":169,"context_line":"                from nova.tests.unit import fake_instance"},{"line_number":170,"context_line":"                args.append(fake_instance.fake_instance_obj("},{"line_number":171,"context_line":"                    ctxt, host\u003dself.hostname))"},{"line_number":172,"context_line":"            elif param_name \u003d\u003d \u0027migration\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_e25e7374","line":169,"range":{"start_line":169,"start_character":16,"end_line":169,"end_character":57},"updated":"2020-11-07 16:02:41.000000000","message":"move it to the top","commit_id":"c5ef183ffb941e6c9e2681a0dadf049ab97d8188"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4a09b0ac3cc3652cb1829fb80e9d450b9fe47684","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            else:"},{"line_number":179,"context_line":"                args.append(param_name)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        # we assume that the first argument of each rpc method is a context"},{"line_number":182,"context_line":"        # as this context is used by the caller too we need to provide a real"},{"line_number":183,"context_line":"        # context here"},{"line_number":184,"context_line":"        args[0] \u003d ctxt"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_2254eb52","line":181,"range":{"start_line":181,"start_character":74,"end_line":181,"end_character":75},"updated":"2020-11-07 16:02:41.000000000","message":"t.","commit_id":"c5ef183ffb941e6c9e2681a0dadf049ab97d8188"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4a09b0ac3cc3652cb1829fb80e9d450b9fe47684","unresolved":false,"context_lines":[{"line_number":179,"context_line":"                args.append(param_name)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        # we assume that the first argument of each rpc method is a context"},{"line_number":182,"context_line":"        # as this context is used by the caller too we need to provide a real"},{"line_number":183,"context_line":"        # context here"},{"line_number":184,"context_line":"        args[0] \u003d ctxt"},{"line_number":185,"context_line":"        return args"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_824dffc5","line":182,"range":{"start_line":182,"start_character":10,"end_line":182,"end_character":11},"updated":"2020-11-07 16:02:41.000000000","message":"A","commit_id":"c5ef183ffb941e6c9e2681a0dadf049ab97d8188"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9279f13ad403e286018d43b4550aa24606112dd3","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def _debug(self, msg):"},{"line_number":41,"context_line":"        if self.DEBUG:"},{"line_number":42,"context_line":"            print(msg)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_signature_compatibility(self):"},{"line_number":45,"context_line":"        \"\"\"Verify that the RCP client sends calls the RPC handler on the"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_8954fb22","line":42,"updated":"2020-11-09 14:58:44.000000000","message":"I assume you\u0027re not planning to leave this _debug() in the final version right?","commit_id":"a7b35164e120bd6dc4fc592d1c0c5940f574777c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9279f13ad403e286018d43b4550aa24606112dd3","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            print(msg)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_signature_compatibility(self):"},{"line_number":45,"context_line":"        \"\"\"Verify that the RCP client sends calls the RPC handler on the"},{"line_number":46,"context_line":"        server side with a compatible signature."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        For example this test case detects if a new parameter added to an"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_89719b0f","line":45,"range":{"start_line":45,"start_character":27,"end_line":45,"end_character":30},"updated":"2020-11-09 14:58:44.000000000","message":"RPC, here and elsewhere.","commit_id":"a7b35164e120bd6dc4fc592d1c0c5940f574777c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9279f13ad403e286018d43b4550aa24606112dd3","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                # run the RPC version while the RPC pinned to the given version"},{"line_number":106,"context_line":"                self._run_rpc(method, version)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"                # if this test step did not raised then we consider the step as"},{"line_number":109,"context_line":"                # succeeded. We drop the logs to avoid causing subunit parser"},{"line_number":110,"context_line":"                # errors due to logging too much at the end of the test case."},{"line_number":111,"context_line":"                self.stdlog.delete_stored_logs()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_29e8477a","line":108,"range":{"start_line":108,"start_character":44,"end_line":108,"end_character":50},"updated":"2020-11-09 14:58:44.000000000","message":"raise","commit_id":"a7b35164e120bd6dc4fc592d1c0c5940f574777c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9279f13ad403e286018d43b4550aa24606112dd3","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                # if this test step did not raised then we consider the step as"},{"line_number":109,"context_line":"                # succeeded. We drop the logs to avoid causing subunit parser"},{"line_number":110,"context_line":"                # errors due to logging too much at the end of the test case."},{"line_number":111,"context_line":"                self.stdlog.delete_stored_logs()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _exec_reached_rpc_handler(self, exc, handler_function_name):"},{"line_number":114,"context_line":"        \"\"\"Check the traceback in the exception to see if the execution is"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_a41abe6b","line":111,"updated":"2020-11-09 14:58:44.000000000","message":"You\u0027re sure this is just deleting logs for this test, and not for everything that this stestr worker has done so far? Almost seems like it\u0027d be better to try to catch exceptions where we could raise them and only emit them if we decide the failure is legit, but...definitely more complicated. Anyway, just mulling.","commit_id":"a7b35164e120bd6dc4fc592d1c0c5940f574777c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9279f13ad403e286018d43b4550aa24606112dd3","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                self.stdlog.delete_stored_logs()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _exec_reached_rpc_handler(self, exc, handler_function_name):"},{"line_number":114,"context_line":"        \"\"\"Check the traceback in the exception to see if the execution is"},{"line_number":115,"context_line":"        reached the RPC handler method on the server side of the RPC."},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_293967f1","line":114,"range":{"start_line":114,"start_character":72,"end_line":114,"end_character":74},"updated":"2020-11-09 14:58:44.000000000","message":"s/is//","commit_id":"a7b35164e120bd6dc4fc592d1c0c5940f574777c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9279f13ad403e286018d43b4550aa24606112dd3","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        # in the stack"},{"line_number":130,"context_line":"        reached_rpc_server_side \u003d False"},{"line_number":131,"context_line":"        for frame in frames:"},{"line_number":132,"context_line":"            if \u0027oslo_messaging/rpc/server.py\u0027 in frame.filename:"},{"line_number":133,"context_line":"                reached_rpc_server_side \u003d True"},{"line_number":134,"context_line":"                continue"},{"line_number":135,"context_line":"            if not reached_rpc_server_side:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_a92c57ac","line":132,"updated":"2020-11-09 14:58:44.000000000","message":"Obviously this makes us fragile and dependent on (a lack of changes) in o.msg. It looks like it could make us skip something we should catch if something unrelated to the actual dispatch gets moved into server.py and thus it shows up in the trace where it didn\u0027t before.\n\nI don\u0027t have a better idea, it just makes me a little uneasy to do this.","commit_id":"a7b35164e120bd6dc4fc592d1c0c5940f574777c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9279f13ad403e286018d43b4550aa24606112dd3","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            if not reached_rpc_server_side:"},{"line_number":136,"context_line":"                continue"},{"line_number":137,"context_line":"            if frame.name \u003d\u003d handler_function_name:"},{"line_number":138,"context_line":"                return True"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        return False"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_c4053a13","line":138,"updated":"2020-11-09 14:58:44.000000000","message":"I wonder if you could replace this whole thing with:\n\n files \u003d [\u0027/\u0027.join(frame.filename.split(\u0027/\u0027)[-3:] for frame in frames]\n functions \u003d [frame.name for frame in frames]\n if files.index(\u0027server.py\u0027) \u003c functions.rindex(func_name):\n   return True","commit_id":"a7b35164e120bd6dc4fc592d1c0c5940f574777c"}]}
