)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"be62beb57004eae4f4698483c4ab97a83a482d85","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Ensure request variables have corresponding mappings"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a user provides request variables without the proper direct"},{"line_number":10,"context_line":"mapping we should handle the failure rather than raising an"},{"line_number":11,"context_line":"Exception.  Otherwise when the direct mapping is being processed"},{"line_number":12,"context_line":"it will try to match to a corresponding mappings, resulting in an"},{"line_number":13,"context_line":"\u0027IndexError\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_c3a10c48","line":10,"updated":"2015-09-02 23:10:32.000000000","message":"Why not raise an exception? We failed to map the data to a user properly. Consider a case there the user_id or similar gets mapped to {0} then different users would get mapped to the same ephemeral user right? I say that instead of an indexing error we should raise something more meaningful. I think this is actually a server error of some sort.","commit_id":"699e7d9a3d3dc0bfdaed9a40f9f8ba0248178c33"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"7d2918fe873ae96bc3c0c693bb3c6d2db00a06f5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Ensure request variables have corresponding mappings"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a user provides request variables without the proper direct"},{"line_number":10,"context_line":"mapping we should handle the failure rather than raising an"},{"line_number":11,"context_line":"Exception.  Otherwise when the direct mapping is being processed"},{"line_number":12,"context_line":"it will try to match to a corresponding mappings, resulting in an"},{"line_number":13,"context_line":"\u0027IndexError\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_90715c47","line":10,"in_reply_to":"da20952f_6e5a492c","updated":"2015-09-08 15:42:56.000000000","message":"Done","commit_id":"699e7d9a3d3dc0bfdaed9a40f9f8ba0248178c33"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"8f5194fb60d79fe4655460935f4c0da359c4701d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Ensure request variables have corresponding mappings"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a user provides request variables without the proper direct"},{"line_number":10,"context_line":"mapping we should handle the failure rather than raising an"},{"line_number":11,"context_line":"Exception.  Otherwise when the direct mapping is being processed"},{"line_number":12,"context_line":"it will try to match to a corresponding mappings, resulting in an"},{"line_number":13,"context_line":"\u0027IndexError\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_6e5a492c","line":10,"in_reply_to":"da20952f_c3a10c48","updated":"2015-09-03 13:39:48.000000000","message":"I will look into which error to throw","commit_id":"699e7d9a3d3dc0bfdaed9a40f9f8ba0248178c33"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"349ce66222cd8dfe5d04faf7160383b3bfe2b18a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Ensure request variables have corresponding mappings"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a user provides request variables without the proper direct"},{"line_number":10,"context_line":"mapping we should handle the failure by raising a more detailed"},{"line_number":11,"context_line":"exception.  Otherwise when the direct mapping is being processed"},{"line_number":12,"context_line":"it will try to match to a corresponding mappings, resulting in a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba15a1d1_d956c8d1","line":9,"updated":"2015-09-15 22:15:50.000000000","message":"which user? is this coming from a client?","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"45b3b38c8582e2e449661676f62f2cdc1176c296","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Ensure request variables have corresponding mappings"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a user provides request variables without the proper direct"},{"line_number":10,"context_line":"mapping we should handle the failure by raising a more detailed"},{"line_number":11,"context_line":"exception.  Otherwise when the direct mapping is being processed"},{"line_number":12,"context_line":"it will try to match to a corresponding mappings, resulting in a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba15a1d1_068ca97d","line":9,"in_reply_to":"ba15a1d1_d956c8d1","updated":"2015-09-17 18:41:17.000000000","message":"Brant please let us know if this clears up the confusion.  The fix is focused on the cause of the error rather than the source of the mapping which is why we removed \u0027user\u0027 all together.","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"}],"keystone/contrib/federation/utils.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"be62beb57004eae4f4698483c4ab97a83a482d85","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            # If there are no direct mappings, then add the local mapping"},{"line_number":464,"context_line":"            # directly to the array of saved values. However, if there is"},{"line_number":465,"context_line":"            # a direct mapping, then perform variable replacement."},{"line_number":466,"context_line":"            if not direct_maps or not direct_maps._matches:"},{"line_number":467,"context_line":"                identity_values +\u003d rule[\u0027local\u0027]"},{"line_number":468,"context_line":"            else:"},{"line_number":469,"context_line":"                for local in rule[\u0027local\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_a3d098ca","line":466,"updated":"2015-09-02 23:10:32.000000000","message":"This is using a private variable.","commit_id":"699e7d9a3d3dc0bfdaed9a40f9f8ba0248178c33"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"8f5194fb60d79fe4655460935f4c0da359c4701d","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            # If there are no direct mappings, then add the local mapping"},{"line_number":464,"context_line":"            # directly to the array of saved values. However, if there is"},{"line_number":465,"context_line":"            # a direct mapping, then perform variable replacement."},{"line_number":466,"context_line":"            if not direct_maps or not direct_maps._matches:"},{"line_number":467,"context_line":"                identity_values +\u003d rule[\u0027local\u0027]"},{"line_number":468,"context_line":"            else:"},{"line_number":469,"context_line":"                for local in rule[\u0027local\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_eb908c97","line":466,"in_reply_to":"da20952f_a3d098ca","updated":"2015-09-03 13:39:48.000000000","message":"Is it okay to put a getter inside the DirectMaps() class?","commit_id":"699e7d9a3d3dc0bfdaed9a40f9f8ba0248178c33"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"7d2918fe873ae96bc3c0c693bb3c6d2db00a06f5","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            # If there are no direct mappings, then add the local mapping"},{"line_number":464,"context_line":"            # directly to the array of saved values. However, if there is"},{"line_number":465,"context_line":"            # a direct mapping, then perform variable replacement."},{"line_number":466,"context_line":"            if not direct_maps or not direct_maps._matches:"},{"line_number":467,"context_line":"                identity_values +\u003d rule[\u0027local\u0027]"},{"line_number":468,"context_line":"            else:"},{"line_number":469,"context_line":"                for local in rule[\u0027local\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_109c6c5c","line":466,"in_reply_to":"da20952f_eb908c97","updated":"2015-09-08 15:42:56.000000000","message":"Done","commit_id":"699e7d9a3d3dc0bfdaed9a40f9f8ba0248178c33"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"524908aa101db1f67365e6f72391540b1f9c3d59","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        else:"},{"line_number":161,"context_line":"            return value"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def get_matches(self):"},{"line_number":164,"context_line":"        return self._matches"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_6e8569cd","line":163,"updated":"2015-09-10 15:05:42.000000000","message":"nit: add doc strings to be consistent with the rest of the methods in this class.","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9ad390c16276a3e4b202873d8d933a8e0407e9e6","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        else:"},{"line_number":161,"context_line":"            return value"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def get_matches(self):"},{"line_number":164,"context_line":"        return self._matches"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_c7878110","line":163,"in_reply_to":"da20952f_114bb22c","updated":"2015-09-11 20:15:46.000000000","message":"removed the function, it was no longer necessary","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e7894f404866bde1cfd179fb7ac58e604434c1e6","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        else:"},{"line_number":161,"context_line":"            return value"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def get_matches(self):"},{"line_number":164,"context_line":"        return self._matches"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_114bb22c","line":163,"in_reply_to":"da20952f_6e8569cd","updated":"2015-09-10 15:16:42.000000000","message":"Any reason to not just rename _matches to matches?","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"524908aa101db1f67365e6f72391540b1f9c3d59","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            # a direct mapping, then perform variable replacement."},{"line_number":469,"context_line":"            if not direct_maps or not direct_maps.get_matches():"},{"line_number":470,"context_line":"                identity_values +\u003d rule[\u0027local\u0027]"},{"line_number":471,"context_line":"                LOG.warning(_LW(\u0027No Mappings Found in rules\u0027))"},{"line_number":472,"context_line":"            else:"},{"line_number":473,"context_line":"                for local in rule[\u0027local\u0027]:"},{"line_number":474,"context_line":"                    new_local \u003d self._update_local_mapping(local, direct_maps)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_11417239","line":471,"updated":"2015-09-10 15:05:42.000000000","message":"Per David\u0027s previous comment, I don\u0027t think this is raising an exception. It\u0027s just logging a warning.","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9ad390c16276a3e4b202873d8d933a8e0407e9e6","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            # a direct mapping, then perform variable replacement."},{"line_number":469,"context_line":"            if not direct_maps or not direct_maps.get_matches():"},{"line_number":470,"context_line":"                identity_values +\u003d rule[\u0027local\u0027]"},{"line_number":471,"context_line":"                LOG.warning(_LW(\u0027No Mappings Found in rules\u0027))"},{"line_number":472,"context_line":"            else:"},{"line_number":473,"context_line":"                for local in rule[\u0027local\u0027]:"},{"line_number":474,"context_line":"                    new_local \u003d self._update_local_mapping(local, direct_maps)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_877d0920","line":471,"in_reply_to":"da20952f_11417239","updated":"2015-09-11 20:15:46.000000000","message":"Done","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"fe49874f14cc971c6a367bba0d0eb0acb74a54ff","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            # a direct mapping, then perform variable replacement."},{"line_number":469,"context_line":"            if not direct_maps or not direct_maps.get_matches():"},{"line_number":470,"context_line":"                identity_values +\u003d rule[\u0027local\u0027]"},{"line_number":471,"context_line":"                LOG.warning(_LW(\u0027No Mappings Found in rules\u0027))"},{"line_number":472,"context_line":"            else:"},{"line_number":473,"context_line":"                for local in rule[\u0027local\u0027]:"},{"line_number":474,"context_line":"                    new_local \u003d self._update_local_mapping(local, direct_maps)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_7411bc03","line":471,"in_reply_to":"da20952f_11417239","updated":"2015-09-10 15:32:08.000000000","message":"Would it make sense to make a new exception maybe something along the lines of \u0027DirectMapNotFound\u0027 specifically for this case?","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b9b87973f7df1367b8d28d07b341a1079d3c088e","unresolved":false,"context_lines":[{"line_number":613,"context_line":"                try:"},{"line_number":614,"context_line":"                    new_value \u003d v.format(*direct_maps)"},{"line_number":615,"context_line":"                except IndexError:"},{"line_number":616,"context_line":"                    raise exception.MappingFormatError()"},{"line_number":617,"context_line":"            new[k] \u003d new_value"},{"line_number":618,"context_line":"        return new"},{"line_number":619,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_2fd016c9","line":616,"updated":"2015-09-21 14:36:07.000000000","message":"Perhaps if you\u0027re going to suppress builtin error messages and re-raise your own completely useless error messages, it would be beneficial to log something about the information you\u0027re discarding?","commit_id":"6caaa91cc2f89d85a086c2afbf8686da76e47cdc"}],"keystone/exception.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"349ce66222cd8dfe5d04faf7160383b3bfe2b18a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    message_format \u003d _(\"%(detail)s\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class MappingValidationError(ValidationError):"},{"line_number":98,"context_line":"    message_format \u003d _(\"Error while mapping the data to a user\")"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_6d581633","line":97,"updated":"2015-09-15 22:15:50.000000000","message":"Validation error means that the client provided bad input. In this case the problem is that the admin configured their system incorrectly, so this needs to be a 500 Internal Server Error. This exception can be derived from the Exception built-in.","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"45b3b38c8582e2e449661676f62f2cdc1176c296","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    message_format \u003d _(\"%(detail)s\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class MappingValidationError(ValidationError):"},{"line_number":98,"context_line":"    message_format \u003d _(\"Error while mapping the data to a user\")"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_2b0f3838","line":97,"in_reply_to":"ba15a1d1_6d581633","updated":"2015-09-17 18:41:17.000000000","message":"Done","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2eadc9f3181697fce7c4981852cdbac7213e876d","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        ) % {\u0027mod_name\u0027: mod_name, \u0027path\u0027: path})"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"class MappingFormatError(Exception):"},{"line_number":465,"context_line":"    message_format \u003d _(\"Error while mapping the data to a user\")"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_11590c8e","line":464,"updated":"2015-09-17 21:14:16.000000000","message":"should this extend validationerror?","commit_id":"6caaa91cc2f89d85a086c2afbf8686da76e47cdc"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"cb5f545207581a4b30764f3c8a63beb6e282d971","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        ) % {\u0027mod_name\u0027: mod_name, \u0027path\u0027: path})"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"class MappingFormatError(Exception):"},{"line_number":465,"context_line":"    message_format \u003d _(\"Error while mapping the data to a user\")"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_5c98fb1b","line":464,"in_reply_to":"ba15a1d1_11590c8e","updated":"2015-09-18 00:32:14.000000000","message":"Steve, going off of Brant\u0027s comment, validationerror is suppose to be used for when a client enters something invalid.","commit_id":"6caaa91cc2f89d85a086c2afbf8686da76e47cdc"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b9b87973f7df1367b8d28d07b341a1079d3c088e","unresolved":false,"context_lines":[{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"class MappingFormatError(Exception):"},{"line_number":465,"context_line":"    message_format \u003d _(\"Error while mapping the data to a user\")"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"class UnsupportedTokenVersionException(UnexpectedError):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_944db5c6","line":465,"updated":"2015-09-21 14:36:07.000000000","message":"Perhaps you copied MigrationNotProvided, which is an error that is not raised to the HTTP API. Your new exception class extends the Python built-in Exception, which basically means you\u0027re supressing your IndexError by discarding all information about the actual exception and replacing it with your own. You\u0027ve actually removed all value to the exception, instead of contributing any whatsoever. Your message_format will never, ever be used.\n\nIf you do in fact intend to raise a 500, which is what this is doing, albeit in an unhandled manner, extend UnexpectedError, not Exception.\n\nAlso, what are operators meant to do when they receive this error message? There\u0027s very little clue in the message itself, beyond the keyword \"mapping.\" A more verbose error message would be much appreciated... *especially* if this is going to otherwise raise a generic 500.\n\nIf keystone has been configured incorrectly by the operator, a 500 may indeed be appropriate, but the error message is simply not useful in the context of a 500.","commit_id":"6caaa91cc2f89d85a086c2afbf8686da76e47cdc"}],"keystone/tests/unit/mapping_fixtures.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"349ce66222cd8dfe5d04faf7160383b3bfe2b18a","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"    ]"},{"line_number":1147,"context_line":"}"},{"line_number":1148,"context_line":""},{"line_number":1149,"context_line":"MAPPING_GROUPS_NO_DIRECT_MAPPING \u003d {"},{"line_number":1150,"context_line":"    \"rules\": ["},{"line_number":1151,"context_line":"        {"},{"line_number":1152,"context_line":"            \"local\": ["}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_6d6fb6c5","line":1149,"updated":"2015-09-15 22:15:50.000000000","message":"This needs a comment saying what\u0027s special about it.","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"45b3b38c8582e2e449661676f62f2cdc1176c296","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"    ]"},{"line_number":1147,"context_line":"}"},{"line_number":1148,"context_line":""},{"line_number":1149,"context_line":"MAPPING_GROUPS_NO_DIRECT_MAPPING \u003d {"},{"line_number":1150,"context_line":"    \"rules\": ["},{"line_number":1151,"context_line":"        {"},{"line_number":1152,"context_line":"            \"local\": ["}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_eb2dc0a8","line":1149,"in_reply_to":"ba15a1d1_6d6fb6c5","updated":"2015-09-17 18:41:17.000000000","message":"Done","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b9b87973f7df1367b8d28d07b341a1079d3c088e","unresolved":false,"context_lines":[{"line_number":1184,"context_line":"    ]"},{"line_number":1185,"context_line":"}"},{"line_number":1186,"context_line":""},{"line_number":1187,"context_line":"# Mapping used by the unavailable request variable test by providing a higher"},{"line_number":1188,"context_line":"# request variable that what is provided and maps the domain_id only."},{"line_number":1189,"context_line":"MAPPING_GROUPS_NO_DIRECT_MAPPING \u003d {"},{"line_number":1190,"context_line":"    \u0027rules\u0027: ["}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_2f6d76cc","line":1187,"updated":"2015-09-21 14:36:07.000000000","message":"The phrase \"used by the unavailable request variable test\" is QUICKLY going to become an outdated and inaccurate comment. Describe why the data structure exists, not how it\u0027s used, which is redundant with the code itself. i.e. don\u0027t bother pointing out things that I can trivially grep, nor write comments that are going to become inaccurate without anyone having to touch the data structure here.\n\nI also don\u0027t know what you mean by \"higher\" in this context.","commit_id":"6caaa91cc2f89d85a086c2afbf8686da76e47cdc"}],"keystone/tests/unit/test_v3_federation.py":[{"author":{"_account_id":16523,"name":"ZhangLei","display_name":"ZhangLei","email":"zhang.lei@99cloud.net","username":"zhang.lei"},"change_message_id":"b362a8eae92748e700ccf10c2d0e2ad2bdd64afc","unresolved":false,"context_lines":[{"line_number":1458,"context_line":""},{"line_number":1459,"context_line":"        \"\"\""},{"line_number":1460,"context_line":"        mapping \u003d mapping_fixtures.MAPPING_GROUPS_NO_DIRECT_MAPPING"},{"line_number":1461,"context_line":"        rp \u003d mapping_utils.RuleProcessor(mapping[\u0027rules\u0027])"},{"line_number":1462,"context_line":"        assertion \u003d {}"},{"line_number":1463,"context_line":""},{"line_number":1464,"context_line":"        # this test should not result in an IndexError"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_5319f2d5","line":1461,"updated":"2015-08-31 03:43:35.000000000","message":"Please add:\n    from keystone.contrib.federation import utils as mapping_utils","commit_id":"0636bcaf11ebd15161e8ebd20a187922c4fce261"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"69f43eeea108aecbc227586eb8f6a58884178de6","unresolved":false,"context_lines":[{"line_number":1458,"context_line":""},{"line_number":1459,"context_line":"        \"\"\""},{"line_number":1460,"context_line":"        mapping \u003d mapping_fixtures.MAPPING_GROUPS_NO_DIRECT_MAPPING"},{"line_number":1461,"context_line":"        rp \u003d mapping_utils.RuleProcessor(mapping[\u0027rules\u0027])"},{"line_number":1462,"context_line":"        assertion \u003d {}"},{"line_number":1463,"context_line":""},{"line_number":1464,"context_line":"        # this test should not result in an IndexError"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_eb1fd5b4","line":1461,"in_reply_to":"da20952f_5319f2d5","updated":"2015-08-31 14:25:19.000000000","message":"Done","commit_id":"0636bcaf11ebd15161e8ebd20a187922c4fce261"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"524908aa101db1f67365e6f72391540b1f9c3d59","unresolved":false,"context_lines":[{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"    def test_unavailable_request_variables(self):"},{"line_number":1469,"context_line":"        \"\"\"Test mapping option with a request variable that does not have a"},{"line_number":1470,"context_line":"           direct mapping"},{"line_number":1471,"context_line":""},{"line_number":1472,"context_line":"        This test calls rp.process to replace direct mapped varables"},{"line_number":1473,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_8e30fd08","line":1470,"updated":"2015-09-10 15:05:42.000000000","message":"suggest breaking this doc string up such that the first line summarizes the test. This would be consistent with other doc string conventions in keystone. \n\n    \"\"\"Test mapping with unavailable request variables.\n\n       This test calls rp.process .... \n\n    \"\"\"","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e7894f404866bde1cfd179fb7ac58e604434c1e6","unresolved":false,"context_lines":[{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"    def test_unavailable_request_variables(self):"},{"line_number":1469,"context_line":"        \"\"\"Test mapping option with a request variable that does not have a"},{"line_number":1470,"context_line":"           direct mapping"},{"line_number":1471,"context_line":""},{"line_number":1472,"context_line":"        This test calls rp.process to replace direct mapped varables"},{"line_number":1473,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_918ee225","line":1470,"in_reply_to":"da20952f_8e30fd08","updated":"2015-09-10 15:16:42.000000000","message":"++ http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9ad390c16276a3e4b202873d8d933a8e0407e9e6","unresolved":false,"context_lines":[{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"    def test_unavailable_request_variables(self):"},{"line_number":1469,"context_line":"        \"\"\"Test mapping option with a request variable that does not have a"},{"line_number":1470,"context_line":"           direct mapping"},{"line_number":1471,"context_line":""},{"line_number":1472,"context_line":"        This test calls rp.process to replace direct mapped varables"},{"line_number":1473,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_4795b13d","line":1470,"in_reply_to":"da20952f_8e30fd08","updated":"2015-09-11 20:15:46.000000000","message":"Done","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9ad390c16276a3e4b202873d8d933a8e0407e9e6","unresolved":false,"context_lines":[{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"    def test_unavailable_request_variables(self):"},{"line_number":1469,"context_line":"        \"\"\"Test mapping option with a request variable that does not have a"},{"line_number":1470,"context_line":"           direct mapping"},{"line_number":1471,"context_line":""},{"line_number":1472,"context_line":"        This test calls rp.process to replace direct mapped varables"},{"line_number":1473,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_a7ab6d87","line":1470,"in_reply_to":"da20952f_918ee225","updated":"2015-09-11 20:15:46.000000000","message":"Done","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e7894f404866bde1cfd179fb7ac58e604434c1e6","unresolved":false,"context_lines":[{"line_number":1487,"context_line":"            \u0027type\u0027: \u0027ephemeral\u0027,"},{"line_number":1488,"context_line":"            \u0027domain\u0027: {"},{"line_number":1489,"context_line":"                \u0027id\u0027: \u0027Federated\u0027},"},{"line_number":1490,"context_line":"            \u0027name\u0027: \u0027{0}\u0027},"},{"line_number":1491,"context_line":"            \u0027group_names\u0027: [],"},{"line_number":1492,"context_line":"            \u0027group_ids\u0027: [\u0027GROUP_ID\u0027]}"},{"line_number":1493,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_7100ee66","line":1490,"updated":"2015-09-10 15:16:42.000000000","message":"I think this is very unexpected and worse then getting an IndexError. Something *is* wrong here and we need to let somebody know. An IndexError isn\u0027t good enough to convey what is happening so I think that is what needs to change.\n\nRemember just because there is no traceback doesn\u0027t mean the system did the right thing.","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"9ad390c16276a3e4b202873d8d933a8e0407e9e6","unresolved":false,"context_lines":[{"line_number":1487,"context_line":"            \u0027type\u0027: \u0027ephemeral\u0027,"},{"line_number":1488,"context_line":"            \u0027domain\u0027: {"},{"line_number":1489,"context_line":"                \u0027id\u0027: \u0027Federated\u0027},"},{"line_number":1490,"context_line":"            \u0027name\u0027: \u0027{0}\u0027},"},{"line_number":1491,"context_line":"            \u0027group_names\u0027: [],"},{"line_number":1492,"context_line":"            \u0027group_ids\u0027: [\u0027GROUP_ID\u0027]}"},{"line_number":1493,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_87a669be","line":1490,"in_reply_to":"da20952f_7100ee66","updated":"2015-09-11 20:15:46.000000000","message":"We made a MappingValidationError to provide a more descriptive error to the user.","commit_id":"aa14b06e6fd588918bd06a4783770a1c69074f07"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"349ce66222cd8dfe5d04faf7160383b3bfe2b18a","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"        mapping \u003d mapping_fixtures.MAPPING_GROUPS_WHITELIST_AND_BLACKLIST"},{"line_number":1466,"context_line":"        self.put(url, expected_status\u003d400, body\u003d{\u0027mapping\u0027: mapping})"},{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"    def test_unavailable_request_variables(self):"},{"line_number":1469,"context_line":"        \"\"\"Test mapping with unavailable request variables."},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"        Test mapping option with a request variable that does not have a"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_ad838e55","line":1468,"updated":"2015-09-15 22:15:50.000000000","message":"since this test doesn\u0027t require starting up the test server this needs to be in a part that\u0027s not test_v3 (all the test_v3_* tests should be starting up the test server). Since this is testing stuff in the keystone.contrib.federation.utils module, this test belongs in keystone.tests.contrib.federation.test_utils","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"45b3b38c8582e2e449661676f62f2cdc1176c296","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"        mapping \u003d mapping_fixtures.MAPPING_GROUPS_WHITELIST_AND_BLACKLIST"},{"line_number":1466,"context_line":"        self.put(url, expected_status\u003d400, body\u003d{\u0027mapping\u0027: mapping})"},{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"    def test_unavailable_request_variables(self):"},{"line_number":1469,"context_line":"        \"\"\"Test mapping with unavailable request variables."},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"        Test mapping option with a request variable that does not have a"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_c58b1d67","line":1468,"in_reply_to":"ba15a1d1_ad838e55","updated":"2015-09-17 18:41:17.000000000","message":"Done","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"349ce66222cd8dfe5d04faf7160383b3bfe2b18a","unresolved":false,"context_lines":[{"line_number":1469,"context_line":"        \"\"\"Test mapping with unavailable request variables."},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"        Test mapping option with a request variable that does not have a"},{"line_number":1472,"context_line":"           direct mapping. This test calls rp.process to replace the direct"},{"line_number":1473,"context_line":"           mapped varables"},{"line_number":1474,"context_line":""},{"line_number":1475,"context_line":"        Test plan:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_4d6512df","line":1472,"updated":"2015-09-15 22:15:50.000000000","message":"remove the extra indenting.","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"45b3b38c8582e2e449661676f62f2cdc1176c296","unresolved":false,"context_lines":[{"line_number":1469,"context_line":"        \"\"\"Test mapping with unavailable request variables."},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"        Test mapping option with a request variable that does not have a"},{"line_number":1472,"context_line":"           direct mapping. This test calls rp.process to replace the direct"},{"line_number":1473,"context_line":"           mapped varables"},{"line_number":1474,"context_line":""},{"line_number":1475,"context_line":"        Test plan:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_f20e253a","line":1472,"in_reply_to":"ba15a1d1_4d6512df","updated":"2015-09-17 18:41:17.000000000","message":"Done","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"349ce66222cd8dfe5d04faf7160383b3bfe2b18a","unresolved":false,"context_lines":[{"line_number":1473,"context_line":"           mapped varables"},{"line_number":1474,"context_line":""},{"line_number":1475,"context_line":"        Test plan:"},{"line_number":1476,"context_line":"        -  Check if the user can add request varables when the direct"},{"line_number":1477,"context_line":"        mapped list is empty"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_adeaae0d","line":1476,"updated":"2015-09-15 22:15:50.000000000","message":"Isn\u0027t this checking that the exception is raised when the \"user\" tries to map request variables that aren\u0027t in the request?","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"45b3b38c8582e2e449661676f62f2cdc1176c296","unresolved":false,"context_lines":[{"line_number":1473,"context_line":"           mapped varables"},{"line_number":1474,"context_line":""},{"line_number":1475,"context_line":"        Test plan:"},{"line_number":1476,"context_line":"        -  Check if the user can add request varables when the direct"},{"line_number":1477,"context_line":"        mapped list is empty"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_c5febdad","line":1476,"in_reply_to":"ba15a1d1_adeaae0d","updated":"2015-09-17 18:41:17.000000000","message":"Done","commit_id":"fc9eab7a188a0576351c952b03e4714664be552e"}]}
