)]}'
{"keystone/federation/core.py":[{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1c5ddb492f2c2daa98cbd11c3b3dd3cfe2642632","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"},{"line_number":188,"context_line":"            doesn\u0027t exist."},{"line_number":189,"context_line":"        :returns: idp ref"},{"line_number":190,"context_line":"        :rtype: dict\u003c"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        \"\"\""},{"line_number":193,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_7f1e2571","line":190,"range":{"start_line":190,"start_character":20,"end_line":190,"end_character":21},"updated":"2016-01-06 15:11:51.000000000","message":"I can\u0027t find anywhere in the docs where this is defined. Is this suppose to be here?","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"152a62e29648f648f8ab4ede1c373d6f50e3675e","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"},{"line_number":188,"context_line":"            doesn\u0027t exist."},{"line_number":189,"context_line":"        :returns: idp ref"},{"line_number":190,"context_line":"        :rtype: dict\u003c"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        \"\"\""},{"line_number":193,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_128270c8","line":190,"range":{"start_line":190,"start_character":20,"end_line":190,"end_character":21},"in_reply_to":"fa69d971_7f1e2571","updated":"2016-01-07 20:29:32.000000000","message":"it was a typo, removed!","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1c5ddb492f2c2daa98cbd11c3b3dd3cfe2642632","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        :param idp_id: ID of idp object"},{"line_number":218,"context_line":"        :type idp_id: string"},{"line_number":219,"context_line":"        :param protocol_id: ID of protocol  object"},{"line_number":220,"context_line":"        :type protocol_id: string"},{"line_number":221,"context_line":"        :param protocol: protocol object"},{"line_number":222,"context_line":"        :type protocol: dict"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_cad50de5","line":219,"range":{"start_line":219,"start_character":43,"end_line":219,"end_character":44},"updated":"2016-01-06 15:11:51.000000000","message":"extra space","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"152a62e29648f648f8ab4ede1c373d6f50e3675e","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        :param idp_id: ID of idp object"},{"line_number":218,"context_line":"        :type idp_id: string"},{"line_number":219,"context_line":"        :param protocol_id: ID of protocol  object"},{"line_number":220,"context_line":"        :type protocol_id: string"},{"line_number":221,"context_line":"        :param protocol: protocol object"},{"line_number":222,"context_line":"        :type protocol: dict"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_b271240e","line":219,"range":{"start_line":219,"start_character":43,"end_line":219,"end_character":44},"in_reply_to":"fa69d971_cad50de5","updated":"2016-01-07 20:29:32.000000000","message":"Done","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1c5ddb492f2c2daa98cbd11c3b3dd3cfe2642632","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        :param idp_id: ID of idp object"},{"line_number":238,"context_line":"        :type idp_id: string"},{"line_number":239,"context_line":"        :param protocol_id: ID of protocol  object"},{"line_number":240,"context_line":"        :type protocol_id: string"},{"line_number":241,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"},{"line_number":242,"context_line":"            doesn\u0027t exist."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_caec2dbd","line":239,"range":{"start_line":239,"start_character":43,"end_line":239,"end_character":44},"updated":"2016-01-06 15:11:51.000000000","message":"extra space","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"152a62e29648f648f8ab4ede1c373d6f50e3675e","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        :param idp_id: ID of idp object"},{"line_number":238,"context_line":"        :type idp_id: string"},{"line_number":239,"context_line":"        :param protocol_id: ID of protocol  object"},{"line_number":240,"context_line":"        :type protocol_id: string"},{"line_number":241,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"},{"line_number":242,"context_line":"            doesn\u0027t exist."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_12d030c8","line":239,"range":{"start_line":239,"start_character":43,"end_line":239,"end_character":44},"in_reply_to":"fa69d971_caec2dbd","updated":"2016-01-07 20:29:32.000000000","message":"Done","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1c5ddb492f2c2daa98cbd11c3b3dd3cfe2642632","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        :param idp_id: ID of idp object"},{"line_number":270,"context_line":"        :type idp_id: string"},{"line_number":271,"context_line":"        :param protocol_id: ID of protocol  object"},{"line_number":272,"context_line":"        :type protocol_id: string"},{"line_number":273,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"},{"line_number":274,"context_line":"            doesn\u0027t exist."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_ca43cdad","line":271,"range":{"start_line":271,"start_character":43,"end_line":271,"end_character":44},"updated":"2016-01-06 15:11:51.000000000","message":"extra space","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"152a62e29648f648f8ab4ede1c373d6f50e3675e","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        :param idp_id: ID of idp object"},{"line_number":270,"context_line":"        :type idp_id: string"},{"line_number":271,"context_line":"        :param protocol_id: ID of protocol  object"},{"line_number":272,"context_line":"        :type protocol_id: string"},{"line_number":273,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"},{"line_number":274,"context_line":"            doesn\u0027t exist."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_d2de18dc","line":271,"range":{"start_line":271,"start_character":43,"end_line":271,"end_character":44},"in_reply_to":"fa69d971_ca43cdad","updated":"2016-01-07 20:29:32.000000000","message":"Done","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1c5ddb492f2c2daa98cbd11c3b3dd3cfe2642632","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    @abc.abstractmethod"},{"line_number":282,"context_line":"    def create_mapping(self, mapping_ref):"},{"line_number":283,"context_line":"        \"\"\"Create a mapping."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        :param mapping_ref: mapping ref with mapping name"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_aaa9b925","line":282,"updated":"2016-01-06 15:11:51.000000000","message":"why in the driver does this have 2 positional variables? https://github.com/openstack/keystone/blob/19d753bfb43c6344af69a6dba9dcc43119cd8433/keystone/federation/backends/sql.py#L276","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"152a62e29648f648f8ab4ede1c373d6f50e3675e","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    @abc.abstractmethod"},{"line_number":282,"context_line":"    def create_mapping(self, mapping_ref):"},{"line_number":283,"context_line":"        \"\"\"Create a mapping."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        :param mapping_ref: mapping ref with mapping name"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_d28cd8db","line":282,"in_reply_to":"fa69d971_aaa9b925","updated":"2016-01-07 20:29:32.000000000","message":"Done","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1c5ddb492f2c2daa98cbd11c3b3dd3cfe2642632","unresolved":false,"context_lines":[{"line_number":332,"context_line":""},{"line_number":333,"context_line":"        :param mapping_id: id of mapping to get"},{"line_number":334,"context_line":"        :type mapping_ref: string"},{"line_number":335,"context_line":"        :returns: mapping ref"},{"line_number":336,"context_line":"        :rtype: dict"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_45226ea4","line":335,"updated":"2016-01-06 15:11:51.000000000","message":":raises keystone.exception.MappingNotFound: If the mapping cannot be found.\n\nhttps://github.com/openstack/keystone/blob/19d753bfb43c6344af69a6dba9dcc43119cd8433/keystone/federation/backends/sql.py#L272","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"152a62e29648f648f8ab4ede1c373d6f50e3675e","unresolved":false,"context_lines":[{"line_number":332,"context_line":""},{"line_number":333,"context_line":"        :param mapping_id: id of mapping to get"},{"line_number":334,"context_line":"        :type mapping_ref: string"},{"line_number":335,"context_line":"        :returns: mapping ref"},{"line_number":336,"context_line":"        :rtype: dict"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_b27b64bd","line":335,"in_reply_to":"fa69d971_45226ea4","updated":"2016-01-07 20:29:32.000000000","message":"Done","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"1c5ddb492f2c2daa98cbd11c3b3dd3cfe2642632","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        :param sp_id: id of the service provider"},{"line_number":402,"context_line":"        :type sp_id: string"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        :returns: service provider ref"},{"line_number":405,"context_line":"        :rtype: dict"},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_45a7ce0a","line":403,"updated":"2016-01-06 15:11:51.000000000","message":":raises keystone.exception.ServiceProviderNotFound: If the service provider cannot be found.\nhttps://github.com/openstack/keystone/blob/19d753bfb43c6344af69a6dba9dcc43119cd8433/keystone/federation/backends/sql.py#L338","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"152a62e29648f648f8ab4ede1c373d6f50e3675e","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        :param sp_id: id of the service provider"},{"line_number":402,"context_line":"        :type sp_id: string"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        :returns: service provider ref"},{"line_number":405,"context_line":"        :rtype: dict"},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_92574025","line":403,"in_reply_to":"fa69d971_45a7ce0a","updated":"2016-01-07 20:29:32.000000000","message":"actually...that\u0027s specified a few lines down...","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"62dbd7214fe897a84d7181a000fb8661fdd8853b","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        :param sp_id: id of the service provider"},{"line_number":402,"context_line":"        :type sp_id: string"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        :returns: service provider ref"},{"line_number":405,"context_line":"        :rtype: dict"},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_ee1e9e5e","line":403,"in_reply_to":"fa69d971_92574025","updated":"2016-01-07 20:31:05.000000000","message":"Haha maybe i need glasses ....","commit_id":"56f10c134b27a10536d09350ae0a709591b717b8"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"2c9c231773c136a09cced7132afc6c0e94e7486f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def create_idp(self, idp_id, idp):"},{"line_number":115,"context_line":"        \"\"\"Create an identity provider."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        :param idp_id: ID of idp object"},{"line_number":118,"context_line":"        :type idp_id: string"},{"line_number":119,"context_line":"        :param idp: idp object"},{"line_number":120,"context_line":"        :type idp: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_75e0f3fa","line":117,"range":{"start_line":117,"start_character":29,"end_line":117,"end_character":32},"updated":"2016-01-08 15:26:50.000000000","message":"(nit) IdP\n\nAlso in other places in this doc","commit_id":"01008551e380a1b62b074b5f3d854acc43a958e0"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"7f72c5b286726f8dabb2037c48dab06696793bc6","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def create_idp(self, idp_id, idp):"},{"line_number":115,"context_line":"        \"\"\"Create an identity provider."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        :param idp_id: ID of idp object"},{"line_number":118,"context_line":"        :type idp_id: string"},{"line_number":119,"context_line":"        :param idp: idp object"},{"line_number":120,"context_line":"        :type idp: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_e6c1c52f","line":117,"range":{"start_line":117,"start_character":29,"end_line":117,"end_character":32},"in_reply_to":"fa69d971_75e0f3fa","updated":"2016-01-12 21:15:04.000000000","message":"Done","commit_id":"01008551e380a1b62b074b5f3d854acc43a958e0"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"2c9c231773c136a09cced7132afc6c0e94e7486f","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    def get_idp_from_remote_id(self, remote_id):"},{"line_number":167,"context_line":"        \"\"\"Get an identity provider by remote ID."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        :param remote_id: ID of remote"},{"line_number":170,"context_line":"        :type idp_id: string"},{"line_number":171,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"},{"line_number":172,"context_line":"            doesn\u0027t exist."}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_95d00755","line":169,"updated":"2016-01-08 15:26:50.000000000","message":"(nit) remote IdP?","commit_id":"01008551e380a1b62b074b5f3d854acc43a958e0"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"7f72c5b286726f8dabb2037c48dab06696793bc6","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    def get_idp_from_remote_id(self, remote_id):"},{"line_number":167,"context_line":"        \"\"\"Get an identity provider by remote ID."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        :param remote_id: ID of remote"},{"line_number":170,"context_line":"        :type idp_id: string"},{"line_number":171,"context_line":"        :raises keystone.exception.IdentityProviderNotFound: If the IdP"},{"line_number":172,"context_line":"            doesn\u0027t exist."}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_46d1b1cc","line":169,"in_reply_to":"fa69d971_95d00755","updated":"2016-01-12 21:15:04.000000000","message":"Done","commit_id":"01008551e380a1b62b074b5f3d854acc43a958e0"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"2c9c231773c136a09cced7132afc6c0e94e7486f","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        :param idp_id: ID of idp object"},{"line_number":200,"context_line":"        :type idp_id: string"},{"line_number":201,"context_line":"        :param protocol_id: ID of protocol  object"},{"line_number":202,"context_line":"        :type protocol_id: string"},{"line_number":203,"context_line":"        :param protocol: protocol object"},{"line_number":204,"context_line":"        :type protocol: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_95e9e71c","line":201,"range":{"start_line":201,"start_character":42,"end_line":201,"end_character":43},"updated":"2016-01-08 15:26:50.000000000","message":"(nit) double spaced","commit_id":"01008551e380a1b62b074b5f3d854acc43a958e0"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"7f72c5b286726f8dabb2037c48dab06696793bc6","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        :param idp_id: ID of idp object"},{"line_number":200,"context_line":"        :type idp_id: string"},{"line_number":201,"context_line":"        :param protocol_id: ID of protocol  object"},{"line_number":202,"context_line":"        :type protocol_id: string"},{"line_number":203,"context_line":"        :param protocol: protocol object"},{"line_number":204,"context_line":"        :type protocol: dict"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_06d2d900","line":201,"range":{"start_line":201,"start_character":42,"end_line":201,"end_character":43},"in_reply_to":"fa69d971_95e9e71c","updated":"2016-01-12 21:15:04.000000000","message":"Done","commit_id":"01008551e380a1b62b074b5f3d854acc43a958e0"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"2c9c231773c136a09cced7132afc6c0e94e7486f","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    @abc.abstractmethod"},{"line_number":282,"context_line":"    def create_mapping(self, mapping_id, mapping):"},{"line_number":283,"context_line":"        \"\"\"Create a mapping."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        :param mapping_id: ID of mapping object"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_95880724","line":282,"updated":"2016-01-08 15:26:50.000000000","message":"This is changing the driver interface.\nAlso, L539 isn\u0027t in implementing it this way.","commit_id":"01008551e380a1b62b074b5f3d854acc43a958e0"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c893a437861ddf298ea27b1895e1f98dc3450686","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    @abc.abstractmethod"},{"line_number":282,"context_line":"    def create_mapping(self, mapping_id, mapping):"},{"line_number":283,"context_line":"        \"\"\"Create a mapping."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        :param mapping_id: ID of mapping object"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_2b23a157","line":282,"in_reply_to":"fa69d971_95880724","updated":"2016-01-11 21:13:16.000000000","message":"So the driver interface hasn\u0027t actually changed....just our abstract method was wrong! Which I then copied to L539 on an earlier patch!!!  I\u0027ll fix that separately.","commit_id":"01008551e380a1b62b074b5f3d854acc43a958e0"}]}
