)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"2aa36d82d16fa3d8ff7522fe86a9d35a7b28d296","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"26a31ca8_b381a865","updated":"2022-09-29 09:23:48.000000000","message":"Looks good.\n\nJust wondering if we even need all those special attributes still. Some lines above it already says, that they should be removed in Pike ... this would only keep \"timestamp\" afaics.","commit_id":"d091b71e826567a60107cc3503dec4d7d6d26bec"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1f6d639b7852cd93b37b2c96c510776ccd54ca5b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8c6ca652_c1092489","updated":"2022-09-30 16:23:29.000000000","message":"Please, create a UT to check that both methods (the new one implemented and the old one), provide the same output.","commit_id":"d091b71e826567a60107cc3503dec4d7d6d26bec"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b6d4d69fa90a87bef398614fe60a1df3c304746f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"46b2ba09_24deee60","updated":"2022-09-29 08:49:16.000000000","message":"Taking reference from https://review.opendev.org/c/openstack/neutron-lib/+/798815 and need of global_request_id in our setup for debugging, I have opened this PR. Please review. Also note, FROM_DICT_EXTRA_KEYS is not used since not all additional attributes fit in it.","commit_id":"d091b71e826567a60107cc3503dec4d7d6d26bec"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"075a5d571a8f01b6f7475e3980c4e0b5a468f460","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"fe24d257_a281aa24","updated":"2022-09-29 12:06:32.000000000","message":"recheck","commit_id":"d091b71e826567a60107cc3503dec4d7d6d26bec"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"ff264af1904c0e61d0c6c13e16723cbf942f642f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8668a71d_46195b02","updated":"2022-09-30 08:06:29.000000000","message":"recheck\nvolume test failed which is unrelated","commit_id":"d091b71e826567a60107cc3503dec4d7d6d26bec"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"96327fdd18d922ec4ccc8cee5dffbd13d5f97692","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9e85da56_6462bd6d","in_reply_to":"8c6ca652_c1092489","updated":"2022-09-30 17:15:25.000000000","message":"Done","commit_id":"d091b71e826567a60107cc3503dec4d7d6d26bec"}],"neutron_lib/context.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1f6d639b7852cd93b37b2c96c510776ccd54ca5b","unresolved":true,"context_lines":[{"line_number":107,"context_line":"    @classmethod"},{"line_number":108,"context_line":"    def from_dict(cls, values):"},{"line_number":109,"context_line":"        cls_obj \u003d super().from_dict(values)"},{"line_number":110,"context_line":"        cls_obj.timestamp \u003d values.get(\"timestamp\")"},{"line_number":111,"context_line":"        cls_obj.user_id \u003d values.get(\u0027user_id\u0027, values.get(\u0027user\u0027))"},{"line_number":112,"context_line":"        cls_obj.tenant_id \u003d values.get(\u0027tenant_id\u0027, values.get(\u0027project_id\u0027))"},{"line_number":113,"context_line":"        cls_obj.tenant_name \u003d values.get(\u0027tenant_name\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"0f37f420_0cd99fbc","line":110,"range":{"start_line":110,"start_character":0,"end_line":110,"end_character":7},"updated":"2022-09-30 16:23:29.000000000","message":"Check class \"ContextBase\":\n\n        if not timestamp:\n            timestamp \u003d datetime.datetime.utcnow()","commit_id":"d091b71e826567a60107cc3503dec4d7d6d26bec"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"96327fdd18d922ec4ccc8cee5dffbd13d5f97692","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    @classmethod"},{"line_number":108,"context_line":"    def from_dict(cls, values):"},{"line_number":109,"context_line":"        cls_obj \u003d super().from_dict(values)"},{"line_number":110,"context_line":"        cls_obj.timestamp \u003d values.get(\"timestamp\")"},{"line_number":111,"context_line":"        cls_obj.user_id \u003d values.get(\u0027user_id\u0027, values.get(\u0027user\u0027))"},{"line_number":112,"context_line":"        cls_obj.tenant_id \u003d values.get(\u0027tenant_id\u0027, values.get(\u0027project_id\u0027))"},{"line_number":113,"context_line":"        cls_obj.tenant_name \u003d values.get(\u0027tenant_name\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"6e8911b8_aaaa3e8b","line":110,"range":{"start_line":110,"start_character":0,"end_line":110,"end_character":7},"in_reply_to":"0f37f420_0cd99fbc","updated":"2022-09-30 17:15:25.000000000","message":"Done","commit_id":"d091b71e826567a60107cc3503dec4d7d6d26bec"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"85a18baa2225e69eb07c4ad9cfe6a2d93f54fc25","unresolved":true,"context_lines":[{"line_number":107,"context_line":"    @classmethod"},{"line_number":108,"context_line":"    def from_dict(cls, values):"},{"line_number":109,"context_line":"        cls_obj \u003d super().from_dict(values)"},{"line_number":110,"context_line":"        cls_obj.timestamp \u003d values.get(\"timestamp\", datetime.datetime.utcnow())"},{"line_number":111,"context_line":"        cls_obj.user_id \u003d values.get(\u0027user_id\u0027, values.get(\u0027user\u0027))"},{"line_number":112,"context_line":"        cls_obj.tenant_id \u003d values.get(\u0027tenant_id\u0027, values.get(\u0027project_id\u0027))"},{"line_number":113,"context_line":"        cls_obj.tenant_name \u003d values.get(\u0027tenant_name\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"f926f899_a994ac84","line":110,"range":{"start_line":110,"start_character":28,"end_line":110,"end_character":79},"updated":"2022-10-03 09:32:52.000000000","message":"We should not overwrite the timestamp value if values[\u0027timestamp\u0027] is not set. We don\u0027t know if the class implementation will change.\n\nInstead of this:\n\n  if values.get(\u0027timestamp\u0027)\n      cls_obj.timestamp \u003d values[\u0027timestamp\u0027]","commit_id":"7530fbcaa15b95850f92aaee0ce1e87424facf1e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"852c324e169966238b0e432138c5afa107ed934d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    @classmethod"},{"line_number":108,"context_line":"    def from_dict(cls, values):"},{"line_number":109,"context_line":"        cls_obj \u003d super().from_dict(values)"},{"line_number":110,"context_line":"        cls_obj.timestamp \u003d values.get(\"timestamp\", datetime.datetime.utcnow())"},{"line_number":111,"context_line":"        cls_obj.user_id \u003d values.get(\u0027user_id\u0027, values.get(\u0027user\u0027))"},{"line_number":112,"context_line":"        cls_obj.tenant_id \u003d values.get(\u0027tenant_id\u0027, values.get(\u0027project_id\u0027))"},{"line_number":113,"context_line":"        cls_obj.tenant_name \u003d values.get(\u0027tenant_name\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7fce818a_8d9b2ac3","line":110,"range":{"start_line":110,"start_character":28,"end_line":110,"end_character":79},"in_reply_to":"f926f899_a994ac84","updated":"2022-10-03 09:57:17.000000000","message":"Done","commit_id":"7530fbcaa15b95850f92aaee0ce1e87424facf1e"}],"neutron_lib/tests/unit/test_context.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"85a18baa2225e69eb07c4ad9cfe6a2d93f54fc25","unresolved":true,"context_lines":[{"line_number":101,"context_line":"                  \u0027request_id\u0027: \u0027request_id1\u0027,"},{"line_number":102,"context_line":"                  \u0027auth_token\u0027: \u0027auth_token1\u0027}"},{"line_number":103,"context_line":"        ctx2 \u003d context.Context.from_dict(values)"},{"line_number":104,"context_line":"        self.assertEqual(ctx2.user_id, ctx.user_id)"},{"line_number":105,"context_line":"        self.assertEqual(ctx2.user_name, ctx.user_name)"},{"line_number":106,"context_line":"        self.assertEqual(ctx2.tenant_id, ctx.tenant_id)"},{"line_number":107,"context_line":"        self.assertEqual(ctx2.tenant_name, ctx.tenant_name)"},{"line_number":108,"context_line":"        self.assertEqual(ctx2.project_name, ctx.project_name)"},{"line_number":109,"context_line":"        self.assertEqual(ctx2.request_id, ctx.request_id)"},{"line_number":110,"context_line":"        self.assertEqual(ctx2.auth_token, ctx.auth_token)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def test_neutron_context_to_dict(self):"},{"line_number":113,"context_line":"        ctx \u003d context.Context(\u0027user_id\u0027, \u0027tenant_id\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"90251d38_ca29f5cf","line":110,"range":{"start_line":104,"start_character":0,"end_line":110,"end_character":57},"updated":"2022-10-03 09:32:52.000000000","message":"oslo_context.context.Context class has a method \"to_dict\", that will export all parameters to a dict. Except from \"timestamp\", both \"ctx.to_dict()\" and \"ctx2.to_dict()\" should match. Use this method (pop first the \"timestamp\" value).\n\nctx_dict \u003d ctx.to_dict().pop(\u0027timestamp\u0027)\nctx2_dict \u003d ctx2.to_dict().pop(\u0027timestamp\u0027)\nself.assertEqual(ctx_dict, ctx2_dict)","commit_id":"7530fbcaa15b95850f92aaee0ce1e87424facf1e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"852c324e169966238b0e432138c5afa107ed934d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                  \u0027request_id\u0027: \u0027request_id1\u0027,"},{"line_number":102,"context_line":"                  \u0027auth_token\u0027: \u0027auth_token1\u0027}"},{"line_number":103,"context_line":"        ctx2 \u003d context.Context.from_dict(values)"},{"line_number":104,"context_line":"        self.assertEqual(ctx2.user_id, ctx.user_id)"},{"line_number":105,"context_line":"        self.assertEqual(ctx2.user_name, ctx.user_name)"},{"line_number":106,"context_line":"        self.assertEqual(ctx2.tenant_id, ctx.tenant_id)"},{"line_number":107,"context_line":"        self.assertEqual(ctx2.tenant_name, ctx.tenant_name)"},{"line_number":108,"context_line":"        self.assertEqual(ctx2.project_name, ctx.project_name)"},{"line_number":109,"context_line":"        self.assertEqual(ctx2.request_id, ctx.request_id)"},{"line_number":110,"context_line":"        self.assertEqual(ctx2.auth_token, ctx.auth_token)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def test_neutron_context_to_dict(self):"},{"line_number":113,"context_line":"        ctx \u003d context.Context(\u0027user_id\u0027, \u0027tenant_id\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"43368a55_ebdd6d34","line":110,"range":{"start_line":104,"start_character":0,"end_line":110,"end_character":57},"in_reply_to":"90251d38_ca29f5cf","updated":"2022-10-03 09:57:17.000000000","message":"Done","commit_id":"7530fbcaa15b95850f92aaee0ce1e87424facf1e"}]}
