)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Make ajax requests be traced too."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I656028b969289a473f54594681d9313ff8a07fd8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fa7ab95a_40be9fff","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":52},"updated":"2016-08-30 10:27:01.000000000","message":"The related blueprint needs to be mentioned here.","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"}],"horizon/static/framework/util/http/http.js":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"          }"},{"line_number":66,"context_line":"        }"},{"line_number":67,"context_line":"      }"},{"line_number":68,"context_line":"      if (profilerState.isProfiling()){"},{"line_number":69,"context_line":"        var headers \u003d profilerState.getProfilingHeaders();"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        if (headers !\u003d\u003d \u0027undefined\u0027){"}],"source_content_type":"text/javascript","patch_set":4,"id":"fa7ab95a_204a7b26","line":68,"range":{"start_line":68,"start_character":10,"end_line":68,"end_character":37},"updated":"2016-08-30 10:27:01.000000000","message":"What about checking the global profiler switch on/off here? I mean, the one at OPENSTACK_PROFILER[\u0027enabled\u0027].","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":68,"context_line":"      if (profilerState.isProfiling()){"},{"line_number":69,"context_line":"        var headers \u003d profilerState.getProfilingHeaders();"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        if (headers !\u003d\u003d \u0027undefined\u0027){"},{"line_number":72,"context_line":"          config[\u0027headers\u0027] \u003d headers;"},{"line_number":73,"context_line":"        }"},{"line_number":74,"context_line":"      }"}],"source_content_type":"text/javascript","patch_set":4,"id":"fa7ab95a_20719b76","line":71,"range":{"start_line":71,"start_character":12,"end_line":71,"end_character":35},"updated":"2016-08-30 10:27:01.000000000","message":"How did it came that `undefined` is coerced to string?","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"}],"openstack_dashboard/context_processors.py":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    profiler_settings \u003d getattr(settings, \u0027OPENSTACK_PROFILER\u0027, {})"},{"line_number":69,"context_line":"    context[\u0027profiler_enabled\u0027] \u003d profiler_settings.get(\u0027enabled\u0027)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    if \u0027profile_page\u0027 in request.COOKIES:"},{"line_number":72,"context_line":"        profiler_instance \u003d profiler.get()"},{"line_number":73,"context_line":"        trace_info \u003d {}"},{"line_number":74,"context_line":"        for hdr_key, hdr_value in web.get_trace_id_headers().items():"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_c0dc6f48","line":71,"range":{"start_line":71,"start_character":7,"end_line":71,"end_character":40},"updated":"2016-08-30 10:27:01.000000000","message":"OPENSTACK_PROFILER[\u0027enabled\u0027] switch should be checked here first.","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    if \u0027profile_page\u0027 in request.COOKIES:"},{"line_number":72,"context_line":"        profiler_instance \u003d profiler.get()"},{"line_number":73,"context_line":"        trace_info \u003d {}"},{"line_number":74,"context_line":"        for hdr_key, hdr_value in web.get_trace_id_headers().items():"},{"line_number":75,"context_line":"            trace_info[hdr_key] \u003d hdr_value"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        p \u003d profiler.get()"},{"line_number":78,"context_line":"        X_TRACE_INFO \u003d \"X-Trace-Info\""},{"line_number":79,"context_line":"        X_TRACE_HMAC \u003d \"X-Trace-HMAC\""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        trace_data \u003d {}"},{"line_number":83,"context_line":"        index_view_id \u003d request.META.get(\u0027PARENT_VIEW_TRACE_ID\u0027, \u0027\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        if p and p.hmac_key:"},{"line_number":86,"context_line":"            data \u003d {\"base_id\": p.get_base_id(), \"parent_id\": index_view_id}"},{"line_number":87,"context_line":"            pack \u003d utils.signed_pack(data, p.hmac_key)"},{"line_number":88,"context_line":"            trace_data \u003d {"},{"line_number":89,"context_line":"                X_TRACE_INFO: pack[0],"},{"line_number":90,"context_line":"                X_TRACE_HMAC: pack[1]"},{"line_number":91,"context_line":"            }"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        context[\u0027x_trace_info\u0027] \u003d trace_data"},{"line_number":94,"context_line":"        context[\u0027profiler_base_id\u0027] \u003d profiler_instance.get_base_id()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_60c3a357","line":91,"range":{"start_line":74,"start_character":8,"end_line":91,"end_character":13},"updated":"2016-08-30 10:27:01.000000000","message":"This code reminds me the one already defined at https://github.com/openstack/osprofiler/blob/master/osprofiler/web.py#L35-L45 Could it be reused?","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    return context"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"def osprofiler(request):"},{"line_number":109,"context_line":"    context \u003d {}"},{"line_number":110,"context_line":"    if \u0027profile_page\u0027 in request.COOKIES:"},{"line_number":111,"context_line":"        profiler_instance \u003d profiler.get()"},{"line_number":112,"context_line":"        context[\u0027profiler_base_id\u0027] \u003d profiler_instance.get_base_id()"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    return context"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_207b5b29","line":114,"range":{"start_line":108,"start_character":0,"end_line":114,"end_character":18},"updated":"2016-08-30 10:27:01.000000000","message":"What is it for?","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"}],"openstack_dashboard/contrib/developer/profiler/middleware.py":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        return True"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def process_view(self, request, view_func, view_args, view_kwargs):"},{"line_number":88,"context_line":"        # do not profile ajax requests for now"},{"line_number":89,"context_line":"        if not self.is_enabled(request):  # or request.is_ajax()"},{"line_number":90,"context_line":"            return None"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_e0e973b8","line":88,"range":{"start_line":88,"start_character":8,"end_line":88,"end_character":46},"updated":"2016-08-30 10:27:01.000000000","message":"if it\u0027s no longer relevant, then please remove it.","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def process_view(self, request, view_func, view_args, view_kwargs):"},{"line_number":88,"context_line":"        # do not profile ajax requests for now"},{"line_number":89,"context_line":"        if not self.is_enabled(request):  # or request.is_ajax()"},{"line_number":90,"context_line":"            return None"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        trace_info \u003d profiler_utils.signed_unpack("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_20d0bbf5","line":89,"range":{"start_line":89,"start_character":42,"end_line":89,"end_character":64},"updated":"2016-08-30 10:27:01.000000000","message":"ditto","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    def clear_profiling_cookies(request, response):"},{"line_number":123,"context_line":"        \"\"\"Expire any cookie that initiated profiling request.\"\"\""},{"line_number":124,"context_line":"        if \u0027profile_page\u0027 in request.COOKIES:"},{"line_number":125,"context_line":"            path \u003d request.path  # [:-1]"},{"line_number":126,"context_line":"            response.set_cookie(\u0027profile_page\u0027, max_age\u003d0, path\u003dpath)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def process_response(self, request, response):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_40f21f9b","line":125,"range":{"start_line":125,"start_character":33,"end_line":125,"end_character":40},"updated":"2016-08-30 10:27:01.000000000","message":"What\u0027s the reasoning behind this change?","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"a960b75094b57258ee59ba234a5bdd983cb02ebd","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        super(ProfilerClientMiddleware, self).__init__()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def is_async_profiling(self, request):"},{"line_number":48,"context_line":"        return self.header_mappings.keys()[0] in request.META"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def process_request(self, request):"},{"line_number":51,"context_line":"        if self.is_async_profiling(request):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_b018c5d4","line":48,"updated":"2016-12-15 13:20:11.000000000","message":"this will fail with python 3, where keys() is not a list\n\nYou can use next(iter(self.header_mappings.keys)) instead","commit_id":"0c12e1db802ae566227cac147b63a3887fcbb079"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"8d620f623d0fe63cd780bb5f6b9f753aa413eaba","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        super(ProfilerClientMiddleware, self).__init__()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def is_async_profiling(self, request):"},{"line_number":48,"context_line":"        return self.header_mappings.keys()[0] in request.META"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def process_request(self, request):"},{"line_number":51,"context_line":"        if self.is_async_profiling(request):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_8908d629","line":48,"in_reply_to":"1a6eadb0_b018c5d4","updated":"2016-12-16 11:20:14.000000000","message":"Done","commit_id":"0c12e1db802ae566227cac147b63a3887fcbb079"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"309849054bece0108745af1dc5545a38166166f1","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class ProfilerClientMiddleware(object):"},{"line_number":37,"context_line":"    header_mappings \u003d {"},{"line_number":38,"context_line":"        \u0027HTTP_X_TRACE_INFO\u0027: \u0027X-Trace-Info\u0027,"},{"line_number":39,"context_line":"        \u0027HTTP_X_TRACE_HMAC\u0027: \u0027X-Trace-HMAC\u0027"},{"line_number":40,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":14,"id":"da4df55a_ad575dc8","line":37,"updated":"2016-12-29 01:06:02.000000000","message":"This is not actually used as a mapping, just a list in two contexts.","commit_id":"df6f99fd1098a397aadae9e827c3fbaee801874f"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"bb247b8c952ecc277c7fac2874adeafb1617ef0a","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class ProfilerClientMiddleware(object):"},{"line_number":37,"context_line":"    header_mappings \u003d {"},{"line_number":38,"context_line":"        \u0027HTTP_X_TRACE_INFO\u0027: \u0027X-Trace-Info\u0027,"},{"line_number":39,"context_line":"        \u0027HTTP_X_TRACE_HMAC\u0027: \u0027X-Trace-HMAC\u0027"},{"line_number":40,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_4613eb5c","line":37,"in_reply_to":"da4df55a_ad575dc8","updated":"2016-12-29 15:27:03.000000000","message":"Done","commit_id":"df6f99fd1098a397aadae9e827c3fbaee801874f"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"309849054bece0108745af1dc5545a38166166f1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        super(ProfilerClientMiddleware, self).__init__()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def is_async_profiling(self, request):"},{"line_number":48,"context_line":"        return next(iter(self.header_mappings.keys())) in request.META"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def process_request(self, request):"},{"line_number":51,"context_line":"        if self.is_async_profiling(request):"}],"source_content_type":"text/x-python","patch_set":14,"id":"da4df55a_ed75e563","line":48,"updated":"2016-12-29 01:06:02.000000000","message":"Storing header_mapping as a list of tuples would simplify this.","commit_id":"df6f99fd1098a397aadae9e827c3fbaee801874f"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"bb247b8c952ecc277c7fac2874adeafb1617ef0a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        super(ProfilerClientMiddleware, self).__init__()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def is_async_profiling(self, request):"},{"line_number":48,"context_line":"        return next(iter(self.header_mappings.keys())) in request.META"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def process_request(self, request):"},{"line_number":51,"context_line":"        if self.is_async_profiling(request):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_260ee734","line":48,"in_reply_to":"da4df55a_ed75e563","updated":"2016-12-29 15:27:03.000000000","message":"Done","commit_id":"df6f99fd1098a397aadae9e827c3fbaee801874f"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"309849054bece0108745af1dc5545a38166166f1","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def process_request(self, request):"},{"line_number":51,"context_line":"        if self.is_async_profiling(request):"},{"line_number":52,"context_line":"            for src_header, dst_header in self.header_mappings.items():"},{"line_number":53,"context_line":"                request.META[dst_header] \u003d request.META.get(src_header)"},{"line_number":54,"context_line":"            return None"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"da4df55a_0d714976","line":52,"updated":"2016-12-29 01:06:02.000000000","message":"... and this (a little)","commit_id":"df6f99fd1098a397aadae9e827c3fbaee801874f"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"bb247b8c952ecc277c7fac2874adeafb1617ef0a","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def process_request(self, request):"},{"line_number":51,"context_line":"        if self.is_async_profiling(request):"},{"line_number":52,"context_line":"            for src_header, dst_header in self.header_mappings.items():"},{"line_number":53,"context_line":"                request.META[dst_header] \u003d request.META.get(src_header)"},{"line_number":54,"context_line":"            return None"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_0609e32c","line":52,"in_reply_to":"da4df55a_0d714976","updated":"2016-12-29 15:27:03.000000000","message":"Done","commit_id":"df6f99fd1098a397aadae9e827c3fbaee801874f"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"309849054bece0108745af1dc5545a38166166f1","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def process_response(self, request, response):"},{"line_number":132,"context_line":"        self.clear_profiling_cookies(request, response)"},{"line_number":133,"context_line":"        # do not profile ajax requests for now`"},{"line_number":134,"context_line":"        if not self.is_enabled(request) or request.is_ajax():"},{"line_number":135,"context_line":"            return response"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"da4df55a_2d6c4d9b","line":133,"updated":"2016-12-29 01:06:02.000000000","message":"Added `","commit_id":"df6f99fd1098a397aadae9e827c3fbaee801874f"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"bb247b8c952ecc277c7fac2874adeafb1617ef0a","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def process_response(self, request, response):"},{"line_number":132,"context_line":"        self.clear_profiling_cookies(request, response)"},{"line_number":133,"context_line":"        # do not profile ajax requests for now`"},{"line_number":134,"context_line":"        if not self.is_enabled(request) or request.is_ajax():"},{"line_number":135,"context_line":"            return response"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        return response"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5201f7_8b2f9ea0","line":135,"range":{"start_line":133,"start_character":8,"end_line":135,"end_character":27},"updated":"2016-12-29 15:27:03.000000000","message":"Oops, this was actually a copy-paste. I think it\u0027s better to remove most of it :).","commit_id":"df6f99fd1098a397aadae9e827c3fbaee801874f"}],"openstack_dashboard/contrib/developer/profiler/templates/profiler/_mode_picker.html":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"{% else %}"},{"line_number":4,"context_line":"  \u003cli class\u003d\"dropdown\" ng-controller\u003d\"profilerActionsController as ctrl\"\u003e"},{"line_number":5,"context_line":"{% endif %}"},{"line_number":6,"context_line":"\u003ca data-toggle\u003d\"dropdown\" href\u003d\"#\" ng-if\u003d\"ctrl.state.enabled()\""},{"line_number":7,"context_line":"   class\u003d\"dropdown-toggle\" role\u003d\"button\" aria-expanded\u003d\"false\""},{"line_number":8,"context_line":"   data-ng-init\u003d\"init({{ x_trace_info }})\"\u003e"},{"line_number":9,"context_line":"  \u003cspan class\u003d\"fa fa-calculator\"\u003e\u003c/span\u003e"},{"line_number":10,"context_line":"  Profile"},{"line_number":11,"context_line":"  \u003cspan class\u003d\"fa fa-caret-down\"\u003e\u003c/span\u003e"},{"line_number":12,"context_line":"\u003c/a\u003e"},{"line_number":13,"context_line":"\u003cul class\u003d\"dropdown-menu dropdown-menu-right\"\u003e"},{"line_number":14,"context_line":"  \u003cli\u003e\u003ca href\u003d\"#\" ng-click\u003d\"ctrl.profilePage()\"\u003e"},{"line_number":15,"context_line":"    \u003cspan class\u003d\"fa fa-refresh\"\u003e\u003c/span\u003e Profile Current Page"},{"line_number":16,"context_line":"  \u003c/a\u003e\u003c/li\u003e"},{"line_number":17,"context_line":"\u003c/ul\u003e"},{"line_number":18,"context_line":"{% if not_list %}"},{"line_number":19,"context_line":"  \u003c/div\u003e"},{"line_number":20,"context_line":"{% else %}"}],"source_content_type":"text/html","patch_set":4,"id":"fa7ab95a_c00b8f7b","line":17,"range":{"start_line":6,"start_character":0,"end_line":17,"end_character":5},"updated":"2016-08-30 10:27:01.000000000","message":"Please, return back the old indentation.","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"}],"openstack_dashboard/contrib/developer/static/dashboard/developer/profiler/profiler.controller.js":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"0e07b6aee2023ca133b91e3648139a04178cd8dc","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    ctrl.profilePage \u003d profilePage;"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    function profilePage() {"},{"line_number":157,"context_line":"      $cookies.put(\u0027profile_page\u0027, true, { path: window.location.pathname});"},{"line_number":158,"context_line":"      window.location.reload();"},{"line_number":159,"context_line":"    }"},{"line_number":160,"context_line":"  }"}],"source_content_type":"text/javascript","patch_set":10,"id":"3a71b18c_7203140e","line":157,"range":{"start_line":157,"start_character":42,"end_line":157,"end_character":43},"updated":"2016-12-08 03:31:24.000000000","message":"remove this :D","commit_id":"57d3a991d4616bf050f412327bf0757c5c687675"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"b7383a9b6b507bbc9c9f67b84199e49f428f3b2c","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    ctrl.profilePage \u003d profilePage;"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    function profilePage() {"},{"line_number":157,"context_line":"      $cookies.put(\u0027profile_page\u0027, true, { path: window.location.pathname});"},{"line_number":158,"context_line":"      window.location.reload();"},{"line_number":159,"context_line":"    }"},{"line_number":160,"context_line":"  }"}],"source_content_type":"text/javascript","patch_set":10,"id":"3a71b18c_cd8283c8","line":157,"range":{"start_line":157,"start_character":42,"end_line":157,"end_character":43},"in_reply_to":"3a71b18c_7203140e","updated":"2016-12-08 10:42:56.000000000","message":"Done","commit_id":"57d3a991d4616bf050f412327bf0757c5c687675"}],"openstack_dashboard/contrib/developer/static/dashboard/developer/profiler/profiler.module.js":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"0e07b6aee2023ca133b91e3648139a04178cd8dc","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            }"},{"line_number":52,"context_line":"            return config;"},{"line_number":53,"context_line":"          }"},{"line_number":54,"context_line":"        }"},{"line_number":55,"context_line":"      });"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":"  }"}],"source_content_type":"text/javascript","patch_set":10,"id":"3a71b18c_e72128b6","line":54,"updated":"2016-12-08 03:31:24.000000000","message":";","commit_id":"57d3a991d4616bf050f412327bf0757c5c687675"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"b7383a9b6b507bbc9c9f67b84199e49f428f3b2c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            }"},{"line_number":52,"context_line":"            return config;"},{"line_number":53,"context_line":"          }"},{"line_number":54,"context_line":"        }"},{"line_number":55,"context_line":"      });"},{"line_number":56,"context_line":"    }"},{"line_number":57,"context_line":"  }"}],"source_content_type":"text/javascript","patch_set":10,"id":"3a71b18c_ed873fd5","line":54,"in_reply_to":"3a71b18c_e72128b6","updated":"2016-12-08 10:42:56.000000000","message":"Done","commit_id":"57d3a991d4616bf050f412327bf0757c5c687675"}],"openstack_dashboard/contrib/developer/static/dashboard/developer/profiler/profiler.service.js":[{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    }"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    function getProfilingHeaders(){"},{"line_number":50,"context_line":"      return trace_info"},{"line_number":51,"context_line":"    }"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    function isProfiling(){"}],"source_content_type":"text/javascript","patch_set":4,"id":"fa7ab95a_80bfc75f","line":50,"range":{"start_line":50,"start_character":13,"end_line":50,"end_character":23},"updated":"2016-08-30 10:27:01.000000000","message":"you\u0027re going to get a linter error for each semicolon missing here and below","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"},{"author":{"_account_id":8040,"name":"Timur Sufiev","email":"tsufiev@gmail.com","username":"tsufiev"},"change_message_id":"03080cdeffca5798d6635d34aa82ad69d231e51a","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    function isProfiling(){"},{"line_number":54,"context_line":"      base_id \u003d getCurrentBaseId();"},{"line_number":55,"context_line":"      if (getProfilingHeaders() !\u003d\u003d undefined) {"},{"line_number":56,"context_line":"        return true"},{"line_number":57,"context_line":"      } else {"},{"line_number":58,"context_line":"        return false"}],"source_content_type":"text/javascript","patch_set":4,"id":"fa7ab95a_20019b38","line":55,"range":{"start_line":55,"start_character":10,"end_line":55,"end_character":45},"updated":"2016-08-30 10:27:01.000000000","message":"angular.isDefined() should be used in such context.","commit_id":"c23e22a8e8ed5f8dfa1d57fb3372be402b44c95e"}],"openstack_dashboard/templates/horizon/_scripts.html":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"7f233c46d495f28cae4a7c1b40a9c94f1572a321","unresolved":false,"context_lines":[{"line_number":74,"context_line":"      profiler.config(config);"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"      config.$inject \u003d [\u0027$httpProvider\u0027];"},{"line_number":77,"context_line":"      function config($httpProvider) {"},{"line_number":78,"context_line":"        debugger;"},{"line_number":79,"context_line":"        $provide.factory(\u0027horizon.dashboard.developer.profiler.interceptor\u0027, profilerInterceptor);"},{"line_number":80,"context_line":"        $httpProvider.interceptors.push(function() {"}],"source_content_type":"text/html","patch_set":6,"id":"3a71b18c_a271140e","line":77,"range":{"start_line":77,"start_character":15,"end_line":77,"end_character":21},"updated":"2016-12-07 04:35:30.000000000","message":"You should rename some `config` names here. It will be clearer. 9 `config` with 3 others meaning.","commit_id":"f2d0531bfe8ea13f66101ee734ba937e9da2c1ce"}]}
