)]}'
{"keystonemiddleware/auth_token/_request.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        return self.headers[self._USER_STATUS_HEADER] \u003d\u003d self._CONFIRMED"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @user_token_valid.setter"},{"line_number":88,"context_line":"    def user_token_valid(self, value):"},{"line_number":89,"context_line":"        self.headers[self._USER_STATUS_HEADER] \u003d self._confirmed(value)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_aaab3d74","line":88,"updated":"2015-06-10 00:49:57.000000000","message":"this would be clearer if it had a docstring that said value is a bool.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        return self.headers[self._USER_STATUS_HEADER] \u003d\u003d self._CONFIRMED"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @user_token_valid.setter"},{"line_number":88,"context_line":"    def user_token_valid(self, value):"},{"line_number":89,"context_line":"        self.headers[self._USER_STATUS_HEADER] \u003d self._confirmed(value)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_33f10402","line":88,"in_reply_to":"3afb71cf_aaab3d74","updated":"2015-06-10 03:32:02.000000000","message":"typically property doc strings are on the getter","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        return self.headers[self._SERVICE_STATUS_HEADER] \u003d\u003d self._CONFIRMED"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @service_token_valid.setter"},{"line_number":102,"context_line":"    def service_token_valid(self, value):"},{"line_number":103,"context_line":"        self.headers[self._SERVICE_STATUS_HEADER] \u003d self._confirmed(value)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def _set_auth_headers(self, auth_ref, prefix):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_6ab8a5c8","line":102,"updated":"2015-06-10 00:49:57.000000000","message":"this would be clearer if it had a docstring that said value is a bool.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        return self.headers[self._SERVICE_STATUS_HEADER] \u003d\u003d self._CONFIRMED"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @service_token_valid.setter"},{"line_number":102,"context_line":"    def service_token_valid(self, value):"},{"line_number":103,"context_line":"        self.headers[self._SERVICE_STATUS_HEADER] \u003d self._confirmed(value)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def _set_auth_headers(self, auth_ref, prefix):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_13f608f9","line":102,"in_reply_to":"3afb71cf_6ab8a5c8","updated":"2015-06-10 03:32:02.000000000","message":"typically property doc strings are on the getter","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \"\"\"Convert token object into headers."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        Build headers that represent authenticated user - see main"},{"line_number":115,"context_line":"        doc info at start of file for details of headers to be defined."},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":"        self.user_token_valid \u003d True"},{"line_number":118,"context_line":"        self._set_auth_headers(auth_ref, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_0a01316a","line":115,"updated":"2015-06-10 00:49:57.000000000","message":"there\u0027s no doc info at start of file.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        Build headers that represent authenticated user - see main"},{"line_number":115,"context_line":"        doc info at start of file for details of headers to be defined."},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":"        self.user_token_valid \u003d True"},{"line_number":118,"context_line":"        self._set_auth_headers(auth_ref, \u0027\u0027)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        # Deprecated headers"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_caf79989","line":117,"updated":"2015-06-10 00:49:57.000000000","message":"I think this should be done at the end of the function for safety.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        Build headers that represent authenticated user - see main"},{"line_number":115,"context_line":"        doc info at start of file for details of headers to be defined."},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":"        self.user_token_valid \u003d True"},{"line_number":118,"context_line":"        self._set_auth_headers(auth_ref, \u0027\u0027)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        # Deprecated headers"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_d3dcf074","line":117,"in_reply_to":"3afb71cf_caf79989","updated":"2015-06-10 03:32:02.000000000","message":"Done","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        doc info at start of file for details of headers to be defined."},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":"        self.user_token_valid \u003d True"},{"line_number":118,"context_line":"        self._set_auth_headers(auth_ref, \u0027\u0027)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        # Deprecated headers"},{"line_number":121,"context_line":"        self.headers[\u0027X-Role\u0027] \u003d self.headers[\u0027X-Roles\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_8a4401b7","line":118,"updated":"2015-06-10 00:49:57.000000000","message":"Define constants for prefixes so that readers know what the magic string is for.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        doc info at start of file for details of headers to be defined."},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":"        self.user_token_valid \u003d True"},{"line_number":118,"context_line":"        self._set_auth_headers(auth_ref, \u0027\u0027)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        # Deprecated headers"},{"line_number":121,"context_line":"        self.headers[\u0027X-Role\u0027] \u003d self.headers[\u0027X-Roles\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_5365a0b2","line":118,"in_reply_to":"3afb71cf_8a4401b7","updated":"2015-06-10 03:32:02.000000000","message":"Done","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            if auth_ref.version \u003d\u003d \u0027v3\u0027:"},{"line_number":130,"context_line":"                catalog \u003d _v3_to_v2_catalog(catalog)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"            self.headers[\u0027X-Service-Catalog\u0027] \u003d jsonutils.dumps(catalog)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def set_service_headers(self, auth_ref):"},{"line_number":135,"context_line":"        \"\"\"Convert token object into service headers."}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_4a8049c0","line":132,"updated":"2015-06-10 00:49:57.000000000","message":"gross.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            if auth_ref.version \u003d\u003d \u0027v3\u0027:"},{"line_number":130,"context_line":"                catalog \u003d _v3_to_v2_catalog(catalog)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"            self.headers[\u0027X-Service-Catalog\u0027] \u003d jsonutils.dumps(catalog)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def set_service_headers(self, auth_ref):"},{"line_number":135,"context_line":"        \"\"\"Convert token object into service headers."}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_f3748c68","line":132,"in_reply_to":"3afb71cf_4a8049c0","updated":"2015-06-10 03:32:02.000000000","message":"yep","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        Build headers that represent authenticated user - see main"},{"line_number":138,"context_line":"        doc info at start of file for details of headers to be defined."},{"line_number":139,"context_line":"        \"\"\""},{"line_number":140,"context_line":"        self.service_token_valid \u003d True"},{"line_number":141,"context_line":"        self._set_auth_headers(auth_ref, \u0027-Service\u0027)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def remove_auth_headers(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_ca6c3937","line":140,"updated":"2015-06-10 00:49:57.000000000","message":"put this at the end","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        Build headers that represent authenticated user - see main"},{"line_number":138,"context_line":"        doc info at start of file for details of headers to be defined."},{"line_number":139,"context_line":"        \"\"\""},{"line_number":140,"context_line":"        self.service_token_valid \u003d True"},{"line_number":141,"context_line":"        self._set_auth_headers(auth_ref, \u0027-Service\u0027)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def remove_auth_headers(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_d3719077","line":140,"in_reply_to":"3afb71cf_ca6c3937","updated":"2015-06-10 03:32:02.000000000","message":"Done","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        doc info at start of file for details of headers to be defined."},{"line_number":139,"context_line":"        \"\"\""},{"line_number":140,"context_line":"        self.service_token_valid \u003d True"},{"line_number":141,"context_line":"        self._set_auth_headers(auth_ref, \u0027-Service\u0027)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def remove_auth_headers(self):"},{"line_number":144,"context_line":"        \"\"\"Remove headers so a user can\u0027t fake authentication."}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_4a67294d","line":141,"updated":"2015-06-10 00:49:57.000000000","message":"Define constants for prefixes so that readers know what the magic string is for.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        doc info at start of file for details of headers to be defined."},{"line_number":139,"context_line":"        \"\"\""},{"line_number":140,"context_line":"        self.service_token_valid \u003d True"},{"line_number":141,"context_line":"        self._set_auth_headers(auth_ref, \u0027-Service\u0027)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def remove_auth_headers(self):"},{"line_number":144,"context_line":"        \"\"\"Remove headers so a user can\u0027t fake authentication."}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_936798b6","line":141,"in_reply_to":"3afb71cf_4a67294d","updated":"2015-06-10 03:32:02.000000000","message":"Done","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    def remove_auth_headers(self):"},{"line_number":144,"context_line":"        \"\"\"Remove headers so a user can\u0027t fake authentication."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        Both user and service token headers are removed."},{"line_number":147,"context_line":"        \"\"\""},{"line_number":148,"context_line":"        for header in (\u0027X-Service-Catalog\u0027,"},{"line_number":149,"context_line":"                       \u0027X-Identity-Status\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_0ad491ba","line":146,"updated":"2015-06-10 00:49:57.000000000","message":"(unrelated) this comment is odd... why wouldn\u0027t all the headers be removed?","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        Both user and service token headers are removed."},{"line_number":147,"context_line":"        \"\"\""},{"line_number":148,"context_line":"        for header in (\u0027X-Service-Catalog\u0027,"},{"line_number":149,"context_line":"                       \u0027X-Identity-Status\u0027,"},{"line_number":150,"context_line":"                       \u0027X-Service-Identity-Status\u0027,"},{"line_number":151,"context_line":"                       \u0027X-Roles\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_2ab4ed7f","line":148,"updated":"2015-06-10 00:49:57.000000000","message":"suggest define constants for all these.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        Both user and service token headers are removed."},{"line_number":147,"context_line":"        \"\"\""},{"line_number":148,"context_line":"        for header in (\u0027X-Service-Catalog\u0027,"},{"line_number":149,"context_line":"                       \u0027X-Identity-Status\u0027,"},{"line_number":150,"context_line":"                       \u0027X-Service-Identity-Status\u0027,"},{"line_number":151,"context_line":"                       \u0027X-Roles\u0027,"},{"line_number":152,"context_line":"                       \u0027X-Service-Roles\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_aa91fdf2","line":149,"updated":"2015-06-10 00:49:57.000000000","message":"_USER_STATUS_HEADER","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        \"\"\""},{"line_number":148,"context_line":"        for header in (\u0027X-Service-Catalog\u0027,"},{"line_number":149,"context_line":"                       \u0027X-Identity-Status\u0027,"},{"line_number":150,"context_line":"                       \u0027X-Service-Identity-Status\u0027,"},{"line_number":151,"context_line":"                       \u0027X-Roles\u0027,"},{"line_number":152,"context_line":"                       \u0027X-Service-Roles\u0027,"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_4ac3a9ed","line":150,"updated":"2015-06-10 00:49:57.000000000","message":"_SERVICE_STATUS_HEADER","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                       \u0027X-Service-Roles\u0027,"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"                       # deprecated"},{"line_number":155,"context_line":"                       \u0027X-Role\u0027,"},{"line_number":156,"context_line":"                       \u0027X-User\u0027,"},{"line_number":157,"context_line":"                       \u0027X-Tenant-Id\u0027,"},{"line_number":158,"context_line":"                       \u0027X-Tenant-Name\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_6a9785ec","line":155,"updated":"2015-06-10 00:49:57.000000000","message":"I don\u0027t like that we\u0027ve got the info of the names of deprecated headers in 2 places.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                       \u0027X-Service-Roles\u0027,"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"                       # deprecated"},{"line_number":155,"context_line":"                       \u0027X-Role\u0027,"},{"line_number":156,"context_line":"                       \u0027X-User\u0027,"},{"line_number":157,"context_line":"                       \u0027X-Tenant-Id\u0027,"},{"line_number":158,"context_line":"                       \u0027X-Tenant-Name\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_338104c4","line":155,"in_reply_to":"3afb71cf_6a9785ec","updated":"2015-06-10 03:32:02.000000000","message":"Done","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            self.headers.pop(header, None)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        for header in self._HEADER_TEMPLATE:"},{"line_number":163,"context_line":"            self.headers.pop(header % \u0027\u0027, None)"},{"line_number":164,"context_line":"            self.headers.pop(header % \u0027-Service\u0027, None)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_6a65451c","line":163,"updated":"2015-06-10 00:49:57.000000000","message":"constants for prefixes.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            self.headers.pop(header, None)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        for header in self._HEADER_TEMPLATE:"},{"line_number":163,"context_line":"            self.headers.pop(header % \u0027\u0027, None)"},{"line_number":164,"context_line":"            self.headers.pop(header % \u0027-Service\u0027, None)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_13296837","line":163,"in_reply_to":"3afb71cf_6a65451c","updated":"2015-06-10 03:32:02.000000000","message":"Done","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4fbf37c5fabc910066d9ff0d621b36c22682b41d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    _CONFIRMED \u003d \u0027Confirmed\u0027"},{"line_number":82,"context_line":"    _INVALID \u003d \u0027Invalid\u0027"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    # header names that have been deprecated in favour of something else."},{"line_number":85,"context_line":"    _DEPRECATED_HEADER_MAP \u003d {"},{"line_number":86,"context_line":"        \u0027X-Role\u0027: \u0027X-Roles\u0027,"},{"line_number":87,"context_line":"        \u0027X-User\u0027: \u0027X-User-Name\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_ca98807a","line":84,"updated":"2015-06-11 02:00:33.000000000","message":"favor","commit_id":"9fd39860899921689357f3238862c995a6d20d23"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4308371ab1041cd794ecb68c3e254fe6a03c3e52","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    _CONFIRMED \u003d \u0027Confirmed\u0027"},{"line_number":82,"context_line":"    _INVALID \u003d \u0027Invalid\u0027"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    # header names that have been deprecated in favour of something else."},{"line_number":85,"context_line":"    _DEPRECATED_HEADER_MAP \u003d {"},{"line_number":86,"context_line":"        \u0027X-Role\u0027: \u0027X-Roles\u0027,"},{"line_number":87,"context_line":"        \u0027X-User\u0027: \u0027X-User-Name\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_20885370","line":84,"in_reply_to":"3afb71cf_ca98807a","updated":"2015-06-11 02:41:19.000000000","message":"queens english :)","commit_id":"9fd39860899921689357f3238862c995a6d20d23"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4fbf37c5fabc910066d9ff0d621b36c22682b41d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        \"\"\""},{"line_number":136,"context_line":"        self._set_auth_headers(auth_ref, self._USER_HEADER_PREFIX)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        for k, v in six.iteritems(self._DEPRECATED_HEADER_MAP):"},{"line_number":139,"context_line":"            self.headers[k] \u003d self.headers[v]"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        if include_service_catalog and auth_ref.has_service_catalog():"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_2a8ef42d","line":138,"updated":"2015-06-11 02:00:33.000000000","message":"suggest use .items() (see mailing list)","commit_id":"9fd39860899921689357f3238862c995a6d20d23"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4308371ab1041cd794ecb68c3e254fe6a03c3e52","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        \"\"\""},{"line_number":136,"context_line":"        self._set_auth_headers(auth_ref, self._USER_HEADER_PREFIX)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        for k, v in six.iteritems(self._DEPRECATED_HEADER_MAP):"},{"line_number":139,"context_line":"            self.headers[k] \u003d self.headers[v]"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        if include_service_catalog and auth_ref.has_service_catalog():"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_40858f57","line":138,"in_reply_to":"3afb71cf_2a8ef42d","updated":"2015-06-11 02:41:19.000000000","message":"interesting - will keep that in mind for future","commit_id":"9fd39860899921689357f3238862c995a6d20d23"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4fbf37c5fabc910066d9ff0d621b36c22682b41d","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        Build headers that represent authenticated user - see main"},{"line_number":155,"context_line":"        doc info at start of __init__ file for details of headers to be defined"},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        self._set_auth_headers(auth_ref, self._SERVICE_HEADER_PREFIX)"},{"line_number":158,"context_line":"        self.service_token_valid \u003d True"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def _all_auth_headers(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_8a1f28b6","line":157,"updated":"2015-06-11 02:00:33.000000000","message":"it\u0027s strange we don\u0027t have a service_service_catalog.","commit_id":"9fd39860899921689357f3238862c995a6d20d23"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4308371ab1041cd794ecb68c3e254fe6a03c3e52","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        Build headers that represent authenticated user - see main"},{"line_number":155,"context_line":"        doc info at start of __init__ file for details of headers to be defined"},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        self._set_auth_headers(auth_ref, self._SERVICE_HEADER_PREFIX)"},{"line_number":158,"context_line":"        self.service_token_valid \u003d True"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def _all_auth_headers(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_c0b29f4b","line":157,"in_reply_to":"3afb71cf_8a1f28b6","updated":"2015-06-11 02:41:19.000000000","message":"I don\u0027t think we\u0027d ever want to use it - ?","commit_id":"9fd39860899921689357f3238862c995a6d20d23"}],"keystonemiddleware/tests/unit/auth_token/test_request.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ac40ddd3142868a92a69560f4df231de75e6d8d6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from keystonemiddleware.auth_token import _request"},{"line_number":17,"context_line":"from keystonemiddleware.tests.unit import utils"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class CatalogConversionTests(utils.TestCase):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    PUBLIC_URL \u003d \u0027http://server:5000/v2.0\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_ea7935c9","line":19,"updated":"2015-06-10 00:49:57.000000000","message":"It would be nice to see unit tests for the _AuthTokenRequest class.","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b0c621a850b8aa50ed8c335d042f303afa0f2d8e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from keystonemiddleware.auth_token import _request"},{"line_number":17,"context_line":"from keystonemiddleware.tests.unit import utils"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class CatalogConversionTests(utils.TestCase):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    PUBLIC_URL \u003d \u0027http://server:5000/v2.0\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_de2757c8","line":19,"in_reply_to":"3afb71cf_ea7935c9","updated":"2015-06-10 03:32:02.000000000","message":"Done","commit_id":"f0c6b74c3630259ac00c212c5bbd02716510f1bd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4fbf37c5fabc910066d9ff0d621b36c22682b41d","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        token_id \u003d uuid.uuid4().hex"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        auth_ref \u003d access.AccessInfo.factory(token_id\u003dtoken_id, body\u003dtoken)"},{"line_number":143,"context_line":"        self.request.set_user_headers(auth_ref, include_service_catalog\u003dTrue)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        self._test_v3_headers(token, \u0027\u0027)"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afb71cf_8a4848cd","line":143,"updated":"2015-06-11 02:00:33.000000000","message":"there should be a test with include_service_catalog\u003dFalse","commit_id":"9fd39860899921689357f3238862c995a6d20d23"}]}
