)]}'
{"oslo_log/formatters.py":[{"author":{"_account_id":22113,"name":"Petr Michalec","email":"epcim@apealive.net","username":"epcim"},"change_message_id":"a3646c4ccfb4a428431171508c9debd5614864de","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        # Update message if getMessage() contains common http metrics stats"},{"line_number":270,"context_line":"        # Example message: nova.metadata.wsgi.server [-] 172.16.10.101 \"OPTIONS / HTTP/1.0\" status: 200 len: 234 time: 0.0012538"},{"line_number":271,"context_line":"        try:"},{"line_number":272,"context_line":"          r \u003d regex.search(\"\"\"^.*((?P\u003creq_method\u003eGET|POST|PUT|DELETE|CONNECT|OPTIONS|HEAD[^ ]\\w+)\\s*(?P\u003creq_path\u003e[^ ][-._?\u003d%\u0026\\/\\w\\d]*)\\s*(?P\u003creq_protocol\u003e[^ ][.\\/\\dHTFSP]+){0,1})|(\\s*(status:\\s*(?P\u003creq_status\u003e[^ ]\\d+))\\s*(len:\\ (?P\u003creq_len\u003e[^ ]\\d+)){0,1}\\s*(time:\\s*(?P\u003creq_time\u003e[^ ][.\\d]+)){0,1}\\s*(microversion:\\s*(?P\u003creq_mver\u003e[^ ][.\\d]+)){0,1}){0,1}$\", message[\u0027message\u0027])"},{"line_number":273,"context_line":"          if r:"},{"line_number":274,"context_line":"            for k, v in r.capturesdict().items():"},{"line_number":275,"context_line":"              message[k] \u003d v"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_0f4178a9","line":272,"range":{"start_line":272,"start_character":30,"end_line":272,"end_character":192},"updated":"2017-10-27 10:55:04.000000000","message":"This regexp is better:\n((?\u003cmethod\u003eGET|POST|PUT|DELETE|CONNECT|OPTIONS|HEAD[^ ]\\w+)\\s+(?\u003cpath\u003e[^ ]+))[\"\u0027\\s+]*((?\u003cprotocol\u003e[^ ][\nhftpsHFTPS\\/.\\d]+)){0,1}[\"\u0027\\s]*((status:\\s*){0,1}(?\u003cstatus\u003e[^ ]\\d+)\\s*(len:\\s*){0,1}(?\u003clen\u003e[^ ]\\d+)\\s+(time:\\s*){0,1}(?\u003cttr\u003e[^ ][.\\d]+)\n){0,1}(.*)$","commit_id":"edff6e66a14a7e4850398a82a39774334542defd"}]}
