)]}'
{"keystoneclient/auth/identity/v3.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"657f187153cb1df010afa6d3f603679dcc351553","unresolved":false,"context_lines":[{"line_number":294,"context_line":"        return options"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"class IdentityMethod(AuthMethod):"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    _method_parameters \u003d (PasswordMethod._method_parameters +"},{"line_number":300,"context_line":"                          TokenMethod._method_parameters)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_2fc11c54","line":297,"updated":"2014-10-27 13:54:56.000000000","message":"make this private. I don\u0027t think anyone would want to use the method on it\u0027s own in this case.","commit_id":"67166d68ea06ced293542f4600748616210c68f1"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"657f187153cb1df010afa6d3f603679dcc351553","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        if super(Identity, self).invalidate():"},{"line_number":329,"context_line":"            self.auth_methods[0].invalidate()"},{"line_number":330,"context_line":"            return True"},{"line_number":331,"context_line":"        return False"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    @classmethod"},{"line_number":334,"context_line":"    def get_options(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_cfc33036","line":331,"updated":"2014-10-27 13:54:56.000000000","message":"You shouldn\u0027t need to invalidate. get_auth_data will only be called when you need fresh data so you can assume that you should re-check the method on every call.","commit_id":"67166d68ea06ced293542f4600748616210c68f1"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"b4ee5a5a76f9b3b7c91088be22d7d51cd3060563","unresolved":false,"context_lines":[{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    @classmethod"},{"line_number":334,"context_line":"    def get_options(cls):"},{"line_number":335,"context_line":"        options \u003d super(Identity, cls).get_options()"},{"line_number":336,"context_line":"        options.extend(Token.get_options())"},{"line_number":337,"context_line":"        options.extend(Password.get_options())"},{"line_number":338,"context_line":"        return options"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_13e199fc","line":335,"updated":"2014-12-05 18:12:49.000000000","message":"Does it make sense for this to extend Token identity?  Since you are going to manage the password directly, i would think you would want to always extend from Password.","commit_id":"67166d68ea06ced293542f4600748616210c68f1"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"657f187153cb1df010afa6d3f603679dcc351553","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    def get_options(cls):"},{"line_number":335,"context_line":"        options \u003d super(Identity, cls).get_options()"},{"line_number":336,"context_line":"        options.extend(Token.get_options())"},{"line_number":337,"context_line":"        options.extend(Password.get_options())"},{"line_number":338,"context_line":"        return options"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_6f7164a7","line":337,"updated":"2014-10-27 13:54:56.000000000","message":"this will have options like project_id included 3 times. Maybe refactor the above plugins to put the options on the Method rather than the Plugin and have the default implementation extend from them.","commit_id":"67166d68ea06ced293542f4600748616210c68f1"}],"setup.cfg":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"b4ee5a5a76f9b3b7c91088be22d7d51cd3060563","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    v2password \u003d keystoneclient.auth.identity.v2:Password"},{"line_number":34,"context_line":"    v2token \u003d keystoneclient.auth.identity.v2:Token"},{"line_number":35,"context_line":"    v3password \u003d keystoneclient.auth.identity.v3:Password"},{"line_number":36,"context_line":"    v3identity \u003d keystoneclient.auth.identity.v3:Identity"},{"line_number":37,"context_line":"    v3token \u003d keystoneclient.auth.identity.v3:Token"},{"line_number":38,"context_line":"    v3unscopedsaml \u003d keystoneclient.contrib.auth.v3.saml2:Saml2UnscopedToken"},{"line_number":39,"context_line":"    v3scopedsaml \u003d keystoneclient.contrib.auth.v3.saml2:Saml2ScopedToken"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"5a890539_73857d09","line":36,"updated":"2014-12-05 18:12:49.000000000","message":"I think what you really want is to overload the Password plugin.  This plugin is not a generic Identity plugin:  password is just the default implementation that most people use, not the only or best option/","commit_id":"67166d68ea06ced293542f4600748616210c68f1"}]}
