)]}'
{"oslo_log/formatters.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"9284a1bb3ea3589059bbcd24c2e096628759c738","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        instance_extra \u003d \u0027\u0027"},{"line_number":355,"context_line":"        instance \u003d getattr(record, \u0027instance\u0027, None)"},{"line_number":356,"context_line":"        instance_uuid \u003d getattr(record, \u0027instance_uuid\u0027, None)"},{"line_number":357,"context_line":"        context \u003d _update_record_with_context(record)"},{"line_number":358,"context_line":"        if instance:"},{"line_number":359,"context_line":"            try:"},{"line_number":360,"context_line":"                instance_extra \u003d (self.conf.instance_format"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_64306da0","line":357,"updated":"2017-09-27 17:58:58.000000000","message":"Does this call not already populate these values on the record? I think most of the rest of this handling is only here for \"special\" cases and the values being added are just straight copies, right?","commit_id":"ca9a87cb372c7648eaa10a3e79e7a7771210fc73"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"146e39fcd2a2c6769cdc89dc6d01b5fc64520b39","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        instance_extra \u003d \u0027\u0027"},{"line_number":355,"context_line":"        instance \u003d getattr(record, \u0027instance\u0027, None)"},{"line_number":356,"context_line":"        instance_uuid \u003d getattr(record, \u0027instance_uuid\u0027, None)"},{"line_number":357,"context_line":"        context \u003d _update_record_with_context(record)"},{"line_number":358,"context_line":"        if instance:"},{"line_number":359,"context_line":"            try:"},{"line_number":360,"context_line":"                instance_extra \u003d (self.conf.instance_format"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_fadf5837","line":357,"in_reply_to":"7f515b1d_64306da0","updated":"2017-09-27 19:12:47.000000000","message":"you\u0027re right. Then the real issue is that the journald handler doesn\u0027t have values that match the dictified context. Fixing that should fix the issue.","commit_id":"ca9a87cb372c7648eaa10a3e79e7a7771210fc73"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"4af9d06f5e0d15e0151728576a2717b884e1dcd9","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        instance_extra \u003d \u0027\u0027"},{"line_number":355,"context_line":"        instance \u003d getattr(record, \u0027instance\u0027, None)"},{"line_number":356,"context_line":"        instance_uuid \u003d getattr(record, \u0027instance_uuid\u0027, None)"},{"line_number":357,"context_line":"        context \u003d _update_record_with_context(record)"},{"line_number":358,"context_line":"        if instance:"},{"line_number":359,"context_line":"            try:"},{"line_number":360,"context_line":"                instance_extra \u003d (self.conf.instance_format"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_50ebeb11","line":357,"in_reply_to":"7f515b1d_fadf5837","updated":"2017-09-27 20:17:41.000000000","message":"Cool. Maybe that\u0027s just more changes in your other patch?","commit_id":"ca9a87cb372c7648eaa10a3e79e7a7771210fc73"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"84b81bf22f1b52d653cbae668918754d09be9d20","unresolved":false,"context_lines":[{"line_number":404,"context_line":"                self.conf.logging_user_identity_format %"},{"line_number":405,"context_line":"                _ReplaceFalseValue(dict_context)"},{"line_number":406,"context_line":"            )"},{"line_number":407,"context_line":"            record.user_id \u003d dict_context.get(\u0027user\u0027)"},{"line_number":408,"context_line":"            record.user_name \u003d dict_context.get(\u0027user_name\u0027)"},{"line_number":409,"context_line":"            record.project_id \u003d dict_context.get(\u0027tenant\u0027)"},{"line_number":410,"context_line":"            record.project_name \u003d dict_context.get(\u0027project_name\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_5dd68ac5","line":407,"updated":"2017-09-26 20:45:55.000000000","message":"Should these values also default to \u0027-\u0027 when no value is provided, like we do in _ReplaceFalseValue()?","commit_id":"ca9a87cb372c7648eaa10a3e79e7a7771210fc73"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"7b39803ffa686432c65e26fc02c79c45db03d1b5","unresolved":false,"context_lines":[{"line_number":404,"context_line":"                self.conf.logging_user_identity_format %"},{"line_number":405,"context_line":"                _ReplaceFalseValue(dict_context)"},{"line_number":406,"context_line":"            )"},{"line_number":407,"context_line":"            record.user_id \u003d dict_context.get(\u0027user\u0027)"},{"line_number":408,"context_line":"            record.user_name \u003d dict_context.get(\u0027user_name\u0027)"},{"line_number":409,"context_line":"            record.project_id \u003d dict_context.get(\u0027tenant\u0027)"},{"line_number":410,"context_line":"            record.project_name \u003d dict_context.get(\u0027project_name\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_e1268fce","line":407,"in_reply_to":"7f515b1d_0d7c4770","updated":"2017-09-27 17:47:59.000000000","message":"What happens when the logger gets a None for one of these fields? Does it not pass the value through to the log system?","commit_id":"ca9a87cb372c7648eaa10a3e79e7a7771210fc73"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"1259cf705f505831c75aeac249d2675803c3233a","unresolved":false,"context_lines":[{"line_number":404,"context_line":"                self.conf.logging_user_identity_format %"},{"line_number":405,"context_line":"                _ReplaceFalseValue(dict_context)"},{"line_number":406,"context_line":"            )"},{"line_number":407,"context_line":"            record.user_id \u003d dict_context.get(\u0027user\u0027)"},{"line_number":408,"context_line":"            record.user_name \u003d dict_context.get(\u0027user_name\u0027)"},{"line_number":409,"context_line":"            record.project_id \u003d dict_context.get(\u0027tenant\u0027)"},{"line_number":410,"context_line":"            record.project_name \u003d dict_context.get(\u0027project_name\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_c72a912a","line":407,"in_reply_to":"7f515b1d_5dd68ac5","updated":"2017-09-27 12:28:44.000000000","message":"I\u0027m not entirely sure. If there is no context. These values are simply not added to the metadata. If there would be a context, I don\u0027t see why these values wouldn\u0027t be there, but if they aren\u0027t, do you think it would be good to output \u0027-\u0027? The current proposal just doesn\u0027t output that key in the metadata, as is the case when no context is available.","commit_id":"ca9a87cb372c7648eaa10a3e79e7a7771210fc73"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"5fb98e796d9f2f965df2df0c6d730db32589db60","unresolved":false,"context_lines":[{"line_number":404,"context_line":"                self.conf.logging_user_identity_format %"},{"line_number":405,"context_line":"                _ReplaceFalseValue(dict_context)"},{"line_number":406,"context_line":"            )"},{"line_number":407,"context_line":"            record.user_id \u003d dict_context.get(\u0027user\u0027)"},{"line_number":408,"context_line":"            record.user_name \u003d dict_context.get(\u0027user_name\u0027)"},{"line_number":409,"context_line":"            record.project_id \u003d dict_context.get(\u0027tenant\u0027)"},{"line_number":410,"context_line":"            record.project_name \u003d dict_context.get(\u0027project_name\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_0d7c4770","line":407,"in_reply_to":"7f515b1d_c72a912a","updated":"2017-09-27 14:15:00.000000000","message":"My recollection is that we used - as a placeholder so that the number of fields in a log line wouldn\u0027t change and break parsers.  If this isn\u0027t intended to be used in a way that would be parsed then I\u0027m not sure we need to do that.\n\nHowever, that does raise a different question for me.  How do we prevent people from using these fields in their log formats?  Do we care if they do?","commit_id":"ca9a87cb372c7648eaa10a3e79e7a7771210fc73"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"7eebb8d9a319b7fcf3a605ec23d4fd34e3d3f809","unresolved":false,"context_lines":[{"line_number":404,"context_line":"                self.conf.logging_user_identity_format %"},{"line_number":405,"context_line":"                _ReplaceFalseValue(dict_context)"},{"line_number":406,"context_line":"            )"},{"line_number":407,"context_line":"            record.user_id \u003d dict_context.get(\u0027user\u0027)"},{"line_number":408,"context_line":"            record.user_name \u003d dict_context.get(\u0027user_name\u0027)"},{"line_number":409,"context_line":"            record.project_id \u003d dict_context.get(\u0027tenant\u0027)"},{"line_number":410,"context_line":"            record.project_name \u003d dict_context.get(\u0027project_name\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_642aad7f","line":407,"in_reply_to":"7f515b1d_e1268fce","updated":"2017-09-27 17:49:45.000000000","message":"right, it doesn\u0027t pass them and that\u0027s it.","commit_id":"ca9a87cb372c7648eaa10a3e79e7a7771210fc73"}],"oslo_log/handlers.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"b6847973ad471cf0fab4425fe8cc9541d76b6c35","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        \u0027project_name\u0027: \u0027PROJECT_NAME\u0027,"},{"line_number":104,"context_line":"        \u0027request_id\u0027: \u0027REQUEST_ID\u0027,"},{"line_number":105,"context_line":"        \u0027tenant\u0027: \u0027PROJECT_ID\u0027,"},{"line_number":106,"context_line":"        \u0027user\u0027: \u0027USER_ID\u0027,"},{"line_number":107,"context_line":"        \u0027user_name\u0027: \u0027USER_NAME\u0027,"},{"line_number":108,"context_line":"    }"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_7e8c4ed6","line":106,"updated":"2017-09-29 13:18:29.000000000","message":"The context class has project_id and user_id attributes, so I think you can just update the list and not change it to a dictionary as long as we update the minimum version of oslo.context in the requirements list.","commit_id":"3528506fdc823f9d0226d9b4fc91bdd7c99f0e30"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e046e9a9a88fe7f3422957b0d16efe19ad5abd1d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        \u0027project_name\u0027: \u0027PROJECT_NAME\u0027,"},{"line_number":104,"context_line":"        \u0027request_id\u0027: \u0027REQUEST_ID\u0027,"},{"line_number":105,"context_line":"        \u0027tenant\u0027: \u0027PROJECT_ID\u0027,"},{"line_number":106,"context_line":"        \u0027user\u0027: \u0027USER_ID\u0027,"},{"line_number":107,"context_line":"        \u0027user_name\u0027: \u0027USER_NAME\u0027,"},{"line_number":108,"context_line":"    }"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_0e45c170","line":106,"in_reply_to":"7f515b1d_28ca7819","updated":"2017-10-30 20:26:51.000000000","message":"+1","commit_id":"3528506fdc823f9d0226d9b4fc91bdd7c99f0e30"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"71f553844f829d625f936fc8747780919a108431","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        \u0027project_name\u0027: \u0027PROJECT_NAME\u0027,"},{"line_number":104,"context_line":"        \u0027request_id\u0027: \u0027REQUEST_ID\u0027,"},{"line_number":105,"context_line":"        \u0027tenant\u0027: \u0027PROJECT_ID\u0027,"},{"line_number":106,"context_line":"        \u0027user\u0027: \u0027USER_ID\u0027,"},{"line_number":107,"context_line":"        \u0027user_name\u0027: \u0027USER_NAME\u0027,"},{"line_number":108,"context_line":"    }"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_b93420df","line":106,"in_reply_to":"7f515b1d_7e8c4ed6","updated":"2017-09-29 13:27:20.000000000","message":"While they have the attributes, we get these from the get_logging_values function[1], which in turn uses the to_dict function. to_dict doesn\u0027t output project_id [2], and only recently was the \u0027project\u0027 output added. So we can\u0027t use that key yet.\n\n[1] https://github.com/openstack/oslo.context/blob/master/oslo_context/context.py#L345\n[2] https://github.com/openstack/oslo.context/blob/master/oslo_context/context.py#L329","commit_id":"3528506fdc823f9d0226d9b4fc91bdd7c99f0e30"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"0a845682891185a53a11c89dbb4fb72c0784a22b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        \u0027project_name\u0027: \u0027PROJECT_NAME\u0027,"},{"line_number":104,"context_line":"        \u0027request_id\u0027: \u0027REQUEST_ID\u0027,"},{"line_number":105,"context_line":"        \u0027tenant\u0027: \u0027PROJECT_ID\u0027,"},{"line_number":106,"context_line":"        \u0027user\u0027: \u0027USER_ID\u0027,"},{"line_number":107,"context_line":"        \u0027user_name\u0027: \u0027USER_NAME\u0027,"},{"line_number":108,"context_line":"    }"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_28ca7819","line":106,"in_reply_to":"7f515b1d_b93420df","updated":"2017-10-06 15:18:05.000000000","message":"Should we add project_id to to_dict though?  That seems like it would be better than continuing to use the deprecated tenant name that is there currently.  It would require depending on a new minimum version of oslo.context as Doug noted, but if that allows us to avoid having to do these kinds of manipulations in consumers of oslo.context it\u0027s probably worth it.","commit_id":"3528506fdc823f9d0226d9b4fc91bdd7c99f0e30"}]}
