)]}'
{"keystoneclient/contrib/auth/v3/saml2.py":[{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"a9758015776ed8d3c839b9e29cc1bd197afea6ac","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class _BaseSAMLPlugin(v3.AuthConstructor):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    HTTP_MOVED_TEMPORARILY \u003d 302"},{"line_number":28,"context_line":"    PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def __init__(self, auth_url, protocol\u003dNone, **kwargs):"},{"line_number":31,"context_line":"        super(_BaseSAMLPlugin, self).__init__(auth_url\u003dauth_url, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_b993fff8","line":28,"updated":"2014-10-14 07:26:23.000000000","message":"Either use this class property or remove.","commit_id":"deb63088578359cf4fb96e701688c2838fc236f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"a9758015776ed8d3c839b9e29cc1bd197afea6ac","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def __init__(self, auth_url, protocol\u003dNone, **kwargs):"},{"line_number":31,"context_line":"        super(_BaseSAMLPlugin, self).__init__(auth_url\u003dauth_url, **kwargs)"},{"line_number":32,"context_line":"        if protocol:"},{"line_number":33,"context_line":"            self.PROTOCOL \u003d protocol"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @staticmethod"},{"line_number":36,"context_line":"    def _first(_list):"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_393c6fe2","line":33,"updated":"2014-10-14 07:26:23.000000000","message":"I\u0027d default it to \u0027saml2\u0027, otherwise the change will not be backwards compatible.\nFor that I\u0027d use classattribute.","commit_id":"deb63088578359cf4fb96e701688c2838fc236f0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"cca4f825ecbf4c27c8339993a5dea1b018c42634","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            cfg.StrOpt(\u0027user-name\u0027, dest\u003d\u0027username\u0027, help\u003d\u0027Username\u0027,"},{"line_number":78,"context_line":"                       deprecated_name\u003d\u0027username\u0027),"},{"line_number":79,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027),"},{"line_number":80,"context_line":"            cfg.StrOpt(\u0027protocol\u0027, help\u003d\u0027the protocol to use with the IdP\u0027)"},{"line_number":81,"context_line":"        ])"},{"line_number":82,"context_line":"        return options"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_93637adc","line":80,"updated":"2014-10-14 04:03:45.000000000","message":"capitalize `the`, also I think you can set a default? might be worth setting it to \u0027saml2\u0027","commit_id":"deb63088578359cf4fb96e701688c2838fc236f0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"a9758015776ed8d3c839b9e29cc1bd197afea6ac","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            cfg.StrOpt(\u0027user-name\u0027, dest\u003d\u0027username\u0027, help\u003d\u0027Username\u0027,"},{"line_number":78,"context_line":"                       deprecated_name\u003d\u0027username\u0027),"},{"line_number":79,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027),"},{"line_number":80,"context_line":"            cfg.StrOpt(\u0027protocol\u0027, help\u003d\u0027the protocol to use with the IdP\u0027)"},{"line_number":81,"context_line":"        ])"},{"line_number":82,"context_line":"        return options"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_39a0ef42","line":80,"in_reply_to":"baa201ad_93637adc","updated":"2014-10-14 07:26:23.000000000","message":"++ or make it default to \u0027saml2\u0027 at the plugin level.","commit_id":"deb63088578359cf4fb96e701688c2838fc236f0"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"5c37a994014b266ee8670010c75a2c2a306f4b22","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                       deprecated_name\u003d\u0027username\u0027),"},{"line_number":77,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027),"},{"line_number":78,"context_line":"            cfg.StrOpt(\u0027protocol\u0027,"},{"line_number":79,"context_line":"                       default\u003d\u0027saml2\u0027,"},{"line_number":80,"context_line":"                       help\u003d\u0027The protocol to use with the IdP\u0027)"},{"line_number":81,"context_line":"        ])"},{"line_number":82,"context_line":"        return options"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_ee36e0e7","line":79,"updated":"2014-12-05 18:25:39.000000000","message":"should rename the plugin to the federated plugin.  SAML can be subclass that specifies this to maintatin compat.","commit_id":"dfe4c38f5037b52181f59f7ab8347ee64f34163f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"9830a4943549efbcbb3938158cd2c34679ef7f84","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027),"},{"line_number":78,"context_line":"            cfg.StrOpt(\u0027protocol\u0027,"},{"line_number":79,"context_line":"                       default\u003d\u0027saml2\u0027,"},{"line_number":80,"context_line":"                       help\u003d\u0027The protocol to use with the IdP\u0027)"},{"line_number":81,"context_line":"        ])"},{"line_number":82,"context_line":"        return options"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_5971cea6","line":80,"updated":"2014-10-27 12:34:49.000000000","message":"I\u0027m not sure i understand. Wouldn\u0027t this be something that the superclass would want to define? \n\nIf i\u0027m loading for example the Saml2 plugin, why would i want someone to be able to provide a parameter with protocol\u003dadfs or something?","commit_id":"dfe4c38f5037b52181f59f7ab8347ee64f34163f"},{"author":{"_account_id":7186,"name":"Matthieu Huin","email":"mhuin@redhat.com","username":"mhu"},"change_message_id":"b5508579b8acedb3d5cfb5dd7072a123facb000d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027),"},{"line_number":78,"context_line":"            cfg.StrOpt(\u0027protocol\u0027,"},{"line_number":79,"context_line":"                       default\u003d\u0027saml2\u0027,"},{"line_number":80,"context_line":"                       help\u003d\u0027The protocol to use with the IdP\u0027)"},{"line_number":81,"context_line":"        ])"},{"line_number":82,"context_line":"        return options"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_94c77d95","line":80,"in_reply_to":"9aa7fdbe_5971cea6","updated":"2014-10-27 13:11:33.000000000","message":"protocol, keystone-wise, is just the name of the pairing of an identity provider with a mapping, see http://docs.openstack.org/developer/keystone/configure_federation.html?highlight\u003dprotocol#protocol\n\nI guess the naming is a bit confusing, but it has nothing to do with the SAML2 auth protocol in itself, and can have any value, so it should be one of the arguments of the plugin.","commit_id":"dfe4c38f5037b52181f59f7ab8347ee64f34163f"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"7395db976c3efcbaf31892dbf6433c888d7c9b2e","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            cfg.StrOpt(\u0027password\u0027, help\u003d\u0027Password\u0027),"},{"line_number":78,"context_line":"            cfg.StrOpt(\u0027protocol\u0027,"},{"line_number":79,"context_line":"                       default\u003d\u0027saml2\u0027,"},{"line_number":80,"context_line":"                       help\u003d\u0027The protocol to use with the IdP\u0027)"},{"line_number":81,"context_line":"        ])"},{"line_number":82,"context_line":"        return options"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8c0949_c7c74011","line":80,"in_reply_to":"9aa7fdbe_94c77d95","updated":"2014-10-31 11:30:11.000000000","message":"mhu++ . protocol is only used for dynamic URL which corresponds to the custom protocol name used by an admin - (added via https://github.com/openstack/identity-api/blob/master/v3/src/markdown/identity-api-v3-os-federation-ext.md#protocols-os-federationidentity_providersidp_idprotocols API calls). While the name should be informative it doesn\u0027t need to be \u0027saml2\u0027 always.","commit_id":"dfe4c38f5037b52181f59f7ab8347ee64f34163f"}],"keystoneclient/tests/v3/test_auth_saml2.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"cca4f825ecbf4c27c8339993a5dea1b018c42634","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        self.SHIB_CONSUMER_URL \u003d (\u0027https://openstack4.local/\u0027"},{"line_number":334,"context_line":"                                  \u0027Shibboleth.sso/SAML2/ECP\u0027)"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"        self.saml2plugin \u003d saml2.Saml2UnscopedToken("},{"line_number":337,"context_line":"            self.TEST_URL,"},{"line_number":338,"context_line":"            self.IDENTITY_PROVIDER, self.IDENTITY_PROVIDER_URL,"},{"line_number":339,"context_line":"            self.TEST_USER, self.TEST_TOKEN, self.PROTOCOL)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_33a64e11","line":336,"updated":"2014-10-14 04:03:45.000000000","message":"would this have blown up before hand? Is the test incomplete?","commit_id":"deb63088578359cf4fb96e701688c2838fc236f0"}]}
