)]}'
{"keystoneauth1/exceptions/oidc.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"340fda5fa1585ce183a5a1b160b6d348efaa082d","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class OidcPluginNotSupported(base.ClientException):"},{"line_number":20,"context_line":"    message \u003d \"OpenID Connect grant type not supported by provider.\""}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_91c38537","line":20,"range":{"start_line":20,"start_character":36,"end_line":20,"end_character":40},"updated":"2016-06-27 09:49:53.000000000","message":"do you want to subclass like auth failure or something?","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"eb47c05ae03c249b47ba1658b986365047bb44da","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class OidcPluginNotSupported(base.ClientException):"},{"line_number":20,"context_line":"    message \u003d \"OpenID Connect grant type not supported by provider.\""}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_8057ad24","line":20,"range":{"start_line":20,"start_character":36,"end_line":20,"end_character":40},"in_reply_to":"3aaa91ec_91c38537","updated":"2016-06-27 11:22:26.000000000","message":"Done","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"}],"keystoneauth1/identity/v3/oidc.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"340fda5fa1585ce183a5a1b160b6d348efaa082d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        self.client_id \u003d client_id"},{"line_number":119,"context_line":"        self.client_secret \u003d client_secret"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        self.discovery_url \u003d discovery_url"},{"line_number":122,"context_line":"        self._discovery_document \u003d {}"},{"line_number":123,"context_line":"        self.access_token_endpoint \u003d access_token_endpoint"},{"line_number":124,"context_line":"        self.authorization_endpoint \u003d authorization_endpoint"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_914a6553","line":121,"updated":"2016-06-27 09:49:53.000000000","message":"discovery_url or discovery_endpoint? \n\nnormally i wouldn\u0027t care but there are already two variables with _endpoint.","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"eb47c05ae03c249b47ba1658b986365047bb44da","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        self.client_id \u003d client_id"},{"line_number":119,"context_line":"        self.client_secret \u003d client_secret"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        self.discovery_url \u003d discovery_url"},{"line_number":122,"context_line":"        self._discovery_document \u003d {}"},{"line_number":123,"context_line":"        self.access_token_endpoint \u003d access_token_endpoint"},{"line_number":124,"context_line":"        self.authorization_endpoint \u003d authorization_endpoint"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_0af2be05","line":121,"in_reply_to":"3aaa91ec_914a6553","updated":"2016-06-27 11:22:26.000000000","message":"Done","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"340fda5fa1585ce183a5a1b160b6d348efaa082d","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        :param session: a session object to send out HTTP requests."},{"line_number":139,"context_line":"        :type session: keystoneauth1.session.Session"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        :returns: a python dictionary containing the discovery document"},{"line_number":142,"context_line":"        :rtype: dict"},{"line_number":143,"context_line":"        \"\"\""},{"line_number":144,"context_line":"        if (self.discovery_url is not None and not self._discovery_document):"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_d12d0dff","line":141,"range":{"start_line":141,"start_character":38,"end_line":141,"end_character":48},"updated":"2016-06-27 09:49:53.000000000","message":"or None? what\u0027s the failure case?","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"340fda5fa1585ce183a5a1b160b6d348efaa082d","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        :rtype: dict"},{"line_number":143,"context_line":"        \"\"\""},{"line_number":144,"context_line":"        if (self.discovery_url is not None and not self._discovery_document):"},{"line_number":145,"context_line":"            resp \u003d session.get(self.discovery_url)"},{"line_number":146,"context_line":"            if resp.status_code !\u003d 200:"},{"line_number":147,"context_line":"                resp.raise_for_status()"},{"line_number":148,"context_line":"            self._discovery_document \u003d resp.json()"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_3149f131","line":145,"updated":"2016-06-27 09:49:53.000000000","message":"you will at least need to set authenticated\u003dFalse here, also resp.raise_for_status is a requests thing, by default session will raise automatically.\n\nHave a play with this and look at the session.request code.","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"eb47c05ae03c249b47ba1658b986365047bb44da","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        :rtype: dict"},{"line_number":143,"context_line":"        \"\"\""},{"line_number":144,"context_line":"        if (self.discovery_url is not None and not self._discovery_document):"},{"line_number":145,"context_line":"            resp \u003d session.get(self.discovery_url)"},{"line_number":146,"context_line":"            if resp.status_code !\u003d 200:"},{"line_number":147,"context_line":"                resp.raise_for_status()"},{"line_number":148,"context_line":"            self._discovery_document \u003d resp.json()"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_0011fd5c","line":145,"in_reply_to":"3aaa91ec_3149f131","updated":"2016-06-27 11:22:26.000000000","message":"argh, sorry, I just renamed the \"request\" into \"session\" and forgot to remove the raise_for_status :-(","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"340fda5fa1585ce183a5a1b160b6d348efaa082d","unresolved":false,"context_lines":[{"line_number":280,"context_line":"            client_id\u003dclient_id,"},{"line_number":281,"context_line":"            client_secret\u003dclient_secret,"},{"line_number":282,"context_line":"            access_token_endpoint\u003daccess_token_endpoint,"},{"line_number":283,"context_line":"            discovery_url\u003ddiscovery_url,"},{"line_number":284,"context_line":"            grant_type\u003dgrant_type,"},{"line_number":285,"context_line":"            access_token_type\u003daccess_token_type,"},{"line_number":286,"context_line":"            **kwargs)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_71b3794d","line":283,"range":{"start_line":283,"start_character":26,"end_line":283,"end_character":39},"updated":"2016-06-27 09:49:53.000000000","message":"no need for this, @positional ensures that this was in **kwargs anyway.","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"340fda5fa1585ce183a5a1b160b6d348efaa082d","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        :rtype: :py:class:`keystoneauth1.access.AccessInfoV3`"},{"line_number":309,"context_line":"        \"\"\""},{"line_number":310,"context_line":"        # First of all, check if the grant type is supported"},{"line_number":311,"context_line":"        self.check_grant_type(session)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # get an access token"},{"line_number":314,"context_line":"        payload \u003d {\u0027grant_type\u0027: self.grant_type, \u0027username\u0027: self.username,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_11b5d57c","line":311,"range":{"start_line":311,"start_character":30,"end_line":311,"end_character":37},"updated":"2016-06-27 09:49:53.000000000","message":"hmm, how do you think we support this for everyone? \n\nMaybe base defines a get_unscoped_auth_ref that does this check and returns the {\u0027grant_type\u0027: ..} as a dict, then the subclass adds only the plugin specific info?","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"340fda5fa1585ce183a5a1b160b6d348efaa082d","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                   \u0027scope\u0027: self.scope}"},{"line_number":317,"context_line":"        access_token \u003d self._get_access_token(session, payload)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        response \u003d self._get_keystone_token(session, access_token)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        # grab the unscoped token"},{"line_number":322,"context_line":"        return access.create(resp\u003dresponse)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_91570525","line":319,"range":{"start_line":319,"start_character":24,"end_line":319,"end_character":43},"updated":"2016-06-27 09:49:53.000000000","message":"side note: i thought we had a plugin class that could handle this now?\n\nMaybe we need to look at a different abstract method here like get_payload() and then standardize the rest of this.","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"08df2681dd4bd47060032a8d655d5dc1dcac3a75","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        return self._discovery_document"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def check_grant_type(self, session):"},{"line_number":171,"context_line":"        \"\"\"Check if the grant_type requested is supported by the server."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        If a discovery_endpoint is provided and the discoverty document"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_265eb9e9","line":170,"range":{"start_line":170,"start_character":38,"end_line":170,"end_character":40},"updated":"2016-07-03 22:14:06.000000000","message":"for now can you make this function private? I see a fairly obvious refactor here with this and most of get_unscoped_auth_ref that will be easier if we don\u0027t have to maintain this interface.","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b84a3b67c5bcbf859b5f9568fef3562dd7623342","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        return self._discovery_document"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def check_grant_type(self, session):"},{"line_number":171,"context_line":"        \"\"\"Check if the grant_type requested is supported by the server."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        If a discovery_endpoint is provided and the discoverty document"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_de7ccd22","line":170,"range":{"start_line":170,"start_character":38,"end_line":170,"end_character":40},"in_reply_to":"1aa78d24_265eb9e9","updated":"2016-07-04 10:07:18.000000000","message":"Done","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"08df2681dd4bd47060032a8d655d5dc1dcac3a75","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        :type payload: dict"},{"line_number":241,"context_line":"        \"\"\""},{"line_number":242,"context_line":"        client_auth \u003d (self.client_id, self.client_secret)"},{"line_number":243,"context_line":"        access_token_endpoint \u003d self.get_access_token_endpoint(session)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        op_response \u003d session.post(access_token_endpoint,"},{"line_number":246,"context_line":"                                   requests_auth\u003dclient_auth,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_6641e10b","line":243,"range":{"start_line":243,"start_character":37,"end_line":243,"end_character":62},"updated":"2016-07-03 22:14:06.000000000","message":"what will happen here if this is now None?","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b84a3b67c5bcbf859b5f9568fef3562dd7623342","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        :type payload: dict"},{"line_number":241,"context_line":"        \"\"\""},{"line_number":242,"context_line":"        client_auth \u003d (self.client_id, self.client_secret)"},{"line_number":243,"context_line":"        access_token_endpoint \u003d self.get_access_token_endpoint(session)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        op_response \u003d session.post(access_token_endpoint,"},{"line_number":246,"context_line":"                                   requests_auth\u003dclient_auth,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_84aaf8d2","line":243,"range":{"start_line":243,"start_character":37,"end_line":243,"end_character":62},"in_reply_to":"1aa78d24_6641e10b","updated":"2016-07-04 10:07:18.000000000","message":"HHmm, yes, I overlooked that fact.","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"18ea28cd5770a25b26f6e66ddbc75aa01a271246","unresolved":false,"context_lines":[{"line_number":392,"context_line":"        :param discovery_endpoint: OpenID Connect Discovery Document URL,"},{"line_number":393,"context_line":"                                   for example:"},{"line_number":394,"context_line":"                  https://localhost:8020/oidc/.well-known/openid-configuration"},{"line_number":395,"context_line":"        :type access_token_endpoint: string"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        :param redirect_host: The hostname where the authorization request will"},{"line_number":398,"context_line":"                              be redirected. This normally is localhost. This"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_c91706ec","line":395,"range":{"start_line":395,"start_character":14,"end_line":395,"end_character":35},"updated":"2016-07-04 02:10:10.000000000","message":"should be discovery_endpoint","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b84a3b67c5bcbf859b5f9568fef3562dd7623342","unresolved":false,"context_lines":[{"line_number":392,"context_line":"        :param discovery_endpoint: OpenID Connect Discovery Document URL,"},{"line_number":393,"context_line":"                                   for example:"},{"line_number":394,"context_line":"                  https://localhost:8020/oidc/.well-known/openid-configuration"},{"line_number":395,"context_line":"        :type access_token_endpoint: string"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        :param redirect_host: The hostname where the authorization request will"},{"line_number":398,"context_line":"                              be redirected. This normally is localhost. This"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_7e9e7957","line":395,"range":{"start_line":395,"start_character":14,"end_line":395,"end_character":35},"in_reply_to":"1aa78d24_c91706ec","updated":"2016-07-04 10:07:18.000000000","message":"Done","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"08df2681dd4bd47060032a8d655d5dc1dcac3a75","unresolved":false,"context_lines":[{"line_number":434,"context_line":"            \"scope\": self.scope,"},{"line_number":435,"context_line":"            \"redirect_uri\": self.redirect_uri"},{"line_number":436,"context_line":"        }"},{"line_number":437,"context_line":"        authorization_endpoint \u003d self.get_authorization_endpoint(session)"},{"line_number":438,"context_line":"        url \u003d \"%s?%s\" % (authorization_endpoint,"},{"line_number":439,"context_line":"                         urllib.parse.urlencode(payload))"},{"line_number":440,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_86484d2f","line":437,"range":{"start_line":437,"start_character":38,"end_line":437,"end_character":64},"updated":"2016-07-03 22:14:06.000000000","message":"might be none?","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"52e1b20fa49a1cb1913d71b712ef636e093d50d0","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                self.grant_type not in grant_types):"},{"line_number":222,"context_line":"            raise exceptions.OidcPluginNotSupported()"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def get_access_token_endpoint(self, session):"},{"line_number":225,"context_line":"        \"\"\"Get the \"token_endpoint\" for the OpenID Connect flow."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        This method will return the correct access token endpoint to be used."}],"source_content_type":"text/x-python","patch_set":24,"id":"1aa78d24_12e018fa","line":224,"updated":"2016-07-14 03:09:08.000000000","message":"do we want this public? looking at the refactor at the end of the chain it might be cleaner to have this all in one method.","commit_id":"131e94f516cee7f5926e640c8b6762c00dbd35d5"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"81aa78b4b5671e1677e0f02673a82f829e553b7b","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                self.grant_type not in grant_types):"},{"line_number":222,"context_line":"            raise exceptions.OidcPluginNotSupported()"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def get_access_token_endpoint(self, session):"},{"line_number":225,"context_line":"        \"\"\"Get the \"token_endpoint\" for the OpenID Connect flow."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        This method will return the correct access token endpoint to be used."}],"source_content_type":"text/x-python","patch_set":24,"id":"1aa78d24_4b58268b","line":224,"in_reply_to":"1aa78d24_12e018fa","updated":"2016-07-14 08:23:02.000000000","message":"Done","commit_id":"131e94f516cee7f5926e640c8b6762c00dbd35d5"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"52e1b20fa49a1cb1913d71b712ef636e093d50d0","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            raise exceptions.OidcAccessTokenEndpointNotFound()"},{"line_number":246,"context_line":"        return endpoint"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def get_authorization_endpoint(self, session):"},{"line_number":249,"context_line":"        \"\"\"Get the \"authorization_endpoint\" for the OpenID Connect flow."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        This method will return the correct authorization endpoint to be used."}],"source_content_type":"text/x-python","patch_set":24,"id":"1aa78d24_52e2a002","line":248,"range":{"start_line":248,"start_character":8,"end_line":248,"end_character":34},"updated":"2016-07-14 03:09:08.000000000","message":"same","commit_id":"131e94f516cee7f5926e640c8b6762c00dbd35d5"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"81aa78b4b5671e1677e0f02673a82f829e553b7b","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            raise exceptions.OidcAccessTokenEndpointNotFound()"},{"line_number":246,"context_line":"        return endpoint"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def get_authorization_endpoint(self, session):"},{"line_number":249,"context_line":"        \"\"\"Get the \"authorization_endpoint\" for the OpenID Connect flow."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        This method will return the correct authorization endpoint to be used."}],"source_content_type":"text/x-python","patch_set":24,"id":"1aa78d24_2b5dda79","line":248,"range":{"start_line":248,"start_character":8,"end_line":248,"end_character":34},"in_reply_to":"1aa78d24_52e2a002","updated":"2016-07-14 08:23:02.000000000","message":"Done","commit_id":"131e94f516cee7f5926e640c8b6762c00dbd35d5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"cb18b7aae02701b9bb5cd21ebf187cd35e8d5eee","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                pass"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"            if not self._discovery_document:"},{"line_number":138,"context_line":"                raise exceptions.InvalidOidcDiscoveryDocument()"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        return self._discovery_document"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"dada55a8_67cc1c36","line":138,"range":{"start_line":138,"start_character":16,"end_line":138,"end_character":63},"updated":"2016-07-18 20:17:04.000000000","message":"why not raise this at line 135?","commit_id":"00746ea636f8cece848644100b5a340d062b61f4"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"ec0809f69b0649cf841ec3cf93c0c4d5a0458177","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                pass"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"            if not self._discovery_document:"},{"line_number":138,"context_line":"                raise exceptions.InvalidOidcDiscoveryDocument()"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        return self._discovery_document"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"dada55a8_ba68d888","line":138,"range":{"start_line":138,"start_character":16,"end_line":138,"end_character":63},"in_reply_to":"dada55a8_67cc1c36","updated":"2016-07-19 07:38:48.000000000","message":"Hmm, indeed. Probably I overlooked at this at some rebase.","commit_id":"00746ea636f8cece848644100b5a340d062b61f4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"cb18b7aae02701b9bb5cd21ebf187cd35e8d5eee","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        :type session: keystoneauth1.session.Session"},{"line_number":152,"context_line":"        \"\"\""},{"line_number":153,"context_line":"        discovery \u003d self._get_discovery_document(session)"},{"line_number":154,"context_line":"        grant_types \u003d discovery.get(\"grant_types_supported\")"},{"line_number":155,"context_line":"        if (grant_types and"},{"line_number":156,"context_line":"                self.grant_type is not None and"},{"line_number":157,"context_line":"                self.grant_type not in grant_types):"}],"source_content_type":"text/x-python","patch_set":25,"id":"dada55a8_a203a272","line":154,"range":{"start_line":154,"start_character":37,"end_line":154,"end_character":58},"updated":"2016-07-18 20:17:04.000000000","message":"hmm, i don\u0027t see that here: https://accounts.google.com/.well-known/openid-configuration\n\nis there somewhere else i should look?\n\nhmm, apparently it\u0027s optional: https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata\n\nwe should make sure we support the case where it\u0027s not there","commit_id":"00746ea636f8cece848644100b5a340d062b61f4"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"ec0809f69b0649cf841ec3cf93c0c4d5a0458177","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        :type session: keystoneauth1.session.Session"},{"line_number":152,"context_line":"        \"\"\""},{"line_number":153,"context_line":"        discovery \u003d self._get_discovery_document(session)"},{"line_number":154,"context_line":"        grant_types \u003d discovery.get(\"grant_types_supported\")"},{"line_number":155,"context_line":"        if (grant_types and"},{"line_number":156,"context_line":"                self.grant_type is not None and"},{"line_number":157,"context_line":"                self.grant_type not in grant_types):"}],"source_content_type":"text/x-python","patch_set":25,"id":"dada55a8_3ae188ff","line":154,"range":{"start_line":154,"start_character":37,"end_line":154,"end_character":58},"in_reply_to":"dada55a8_a203a272","updated":"2016-07-19 07:38:48.000000000","message":"That\u0027s being handled by the \"if grant_types\" below.","commit_id":"00746ea636f8cece848644100b5a340d062b61f4"}],"keystoneauth1/loading/_plugins/identity/v3.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"340fda5fa1585ce183a5a1b160b6d348efaa082d","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        ])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        return options"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class OpenIDConnectPassword(_OpenIDConnectBase):"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_71709940","line":113,"updated":"2016-06-27 09:49:53.000000000","message":"do you want a load_from_options that ensures that either/at least a discovery url or access endpoints are provided?","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"eb47c05ae03c249b47ba1658b986365047bb44da","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        ])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        return options"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class OpenIDConnectPassword(_OpenIDConnectBase):"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_07fd976d","line":113,"in_reply_to":"3aaa91ec_71709940","updated":"2016-06-27 11:22:26.000000000","message":"Yes, I was planning to fix all the option handling in a separate commit, but it makes sense to do this here.","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"18ea28cd5770a25b26f6e66ddbc75aa01a271246","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def load_from_options(self, **kwargs):"},{"line_number":82,"context_line":"        if not (kwargs.get(\u0027access_token_endpoint\u0027) or"},{"line_number":83,"context_line":"                kwargs.get(\u0027discovery_endpoint\u0027)):"},{"line_number":84,"context_line":"            m \u003d (\"You have to specify either a \u0027access-token-endpoint\u0027 or \""},{"line_number":85,"context_line":"                 \"a \u0027discovery-endpoint\u0027.\")"},{"line_number":86,"context_line":"            raise exceptions.OptionError(m)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_3cf886e5","line":84,"range":{"start_line":84,"start_character":45,"end_line":84,"end_character":46},"updated":"2016-07-04 02:10:10.000000000","message":"an*","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b84a3b67c5bcbf859b5f9568fef3562dd7623342","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def load_from_options(self, **kwargs):"},{"line_number":82,"context_line":"        if not (kwargs.get(\u0027access_token_endpoint\u0027) or"},{"line_number":83,"context_line":"                kwargs.get(\u0027discovery_endpoint\u0027)):"},{"line_number":84,"context_line":"            m \u003d (\"You have to specify either a \u0027access-token-endpoint\u0027 or \""},{"line_number":85,"context_line":"                 \"a \u0027discovery-endpoint\u0027.\")"},{"line_number":86,"context_line":"            raise exceptions.OptionError(m)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_5e2bbdeb","line":84,"range":{"start_line":84,"start_character":45,"end_line":84,"end_character":46},"in_reply_to":"1aa78d24_3cf886e5","updated":"2016-07-04 10:07:18.000000000","message":"Done","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"18ea28cd5770a25b26f6e66ddbc75aa01a271246","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                        \u0027option will override the endpoint provided by the \u0027"},{"line_number":107,"context_line":"                        \u0027server in the discovery document.\u0027),"},{"line_number":108,"context_line":"            loading.Opt(\u0027discovery-endpoint\u0027,"},{"line_number":109,"context_line":"                        help\u003d\u0027OpenID Connect Discovery Document URL. If \u0027"},{"line_number":110,"context_line":"                        \u0027the discovery document will be used to obtain the \u0027"},{"line_number":111,"context_line":"                        \u0027values of the access token endpoint and the \u0027"},{"line_number":112,"context_line":"                        \u0027authentication endpoint. This URL should look like \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_1cd02a53","line":109,"range":{"start_line":109,"start_character":69,"end_line":109,"end_character":71},"updated":"2016-07-04 02:10:10.000000000","message":"Remove \"If\"","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b84a3b67c5bcbf859b5f9568fef3562dd7623342","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                        \u0027option will override the endpoint provided by the \u0027"},{"line_number":107,"context_line":"                        \u0027server in the discovery document.\u0027),"},{"line_number":108,"context_line":"            loading.Opt(\u0027discovery-endpoint\u0027,"},{"line_number":109,"context_line":"                        help\u003d\u0027OpenID Connect Discovery Document URL. If \u0027"},{"line_number":110,"context_line":"                        \u0027the discovery document will be used to obtain the \u0027"},{"line_number":111,"context_line":"                        \u0027values of the access token endpoint and the \u0027"},{"line_number":112,"context_line":"                        \u0027authentication endpoint. This URL should look like \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_5e129db5","line":109,"range":{"start_line":109,"start_character":69,"end_line":109,"end_character":71},"in_reply_to":"1aa78d24_1cd02a53","updated":"2016-07-04 10:07:18.000000000","message":"Done","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"}],"keystoneauth1/tests/unit/oidc_fixtures.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"18ea28cd5770a25b26f6e66ddbc75aa01a271246","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    \"id_token\": \"eyJhbGciOiJSUzI1Ni8hOYHuZT8dt_yynmJVhcU\""},{"line_number":51,"context_line":"}"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"DISCOVERY_DOCUMENT \u003d {"},{"line_number":54,"context_line":"    \"authorization_endpoint\": \"https://localhost:8020/oidc/authorize\","},{"line_number":55,"context_line":"    \"claims_supported\": ["},{"line_number":56,"context_line":"        \"sub\","}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_7c932ea4","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":18},"updated":"2016-07-04 02:10:10.000000000","message":"great fixture","commit_id":"ac61fc50b8a03ccbbf2b6516946c88296bf1cbe7"}],"releasenotes/notes/add-oidc-discovery-document-support-b07fe54f83286d62.yaml":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"340fda5fa1585ce183a5a1b160b6d348efaa082d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features: "},{"line_number":3,"context_line":" - \u003e"},{"line_number":4,"context_line":"   Add support for the `OpenID Connect Discovery Document"},{"line_number":5,"context_line":"   \u003chttps://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata\u003e`_"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3aaa91ec_d1b86dca","line":2,"range":{"start_line":2,"start_character":9,"end_line":2,"end_character":10},"updated":"2016-06-27 09:49:53.000000000","message":"whitespace","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"eb47c05ae03c249b47ba1658b986365047bb44da","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features: "},{"line_number":3,"context_line":" - \u003e"},{"line_number":4,"context_line":"   Add support for the `OpenID Connect Discovery Document"},{"line_number":5,"context_line":"   \u003chttps://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata\u003e`_"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3aaa91ec_476b1fb7","line":2,"range":{"start_line":2,"start_character":9,"end_line":2,"end_character":10},"in_reply_to":"3aaa91ec_d1b86dca","updated":"2016-06-27 11:22:26.000000000","message":"Done","commit_id":"ce3708bb0b414fe8165dc3fae130c11b57c70d21"}]}
