)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"af83dd042fe4ef22db565612d69144911a6aff9d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"SAML2 authentication plugins in keystoneauth"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Move SAML2 related auth plugins directly to keystoneauth."},{"line_number":10,"context_line":"Since SAML2 plugins requires ``lxml` which is a heavy dependency,"},{"line_number":11,"context_line":"plugins will be installed on request:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"$ pip install keystoneauth[saml2]"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa80f949_1110c3a7","line":10,"updated":"2015-11-04 19:02:09.000000000","message":"why use lxml? python has built-in xml support.","commit_id":"34993d332cc5ec09d1fe3e0157cc6105f46550a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d568a3af9bfb1b7c7ad520b09fcbca5e6d650764","unresolved":false,"context_lines":[{"line_number":7,"context_line":"SAML2 authentication plugins in keystoneauth"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Move SAML2 related auth plugins directly to keystoneauth."},{"line_number":10,"context_line":"Since SAML2 plugins requires ``lxml` which is a heavy dependency,"},{"line_number":11,"context_line":"plugins will be installed on request:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"$ pip install keystoneauth[saml2]"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa80f949_81ca166d","line":10,"in_reply_to":"fa80f949_1110c3a7","updated":"2015-11-05 01:00:04.000000000","message":"saml assertions use namespaces in their tags, which standardlib has shoddy support for: http://stackoverflow.com/questions/14853243/parsing-xml-with-namespace-in-python-via-elementtree","commit_id":"34993d332cc5ec09d1fe3e0157cc6105f46550a4"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"8d8e9dba9f7044e51b1b1944827fa521473f2ea3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"SAML2 authentication plugins in keystoneauth"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Move SAML2 related auth plugins directly to keystoneauth."},{"line_number":10,"context_line":"Since SAML2 plugins requires ``lxml` which is a heavy dependency,"},{"line_number":11,"context_line":"plugins will be installed on request:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"$ pip install keystoneauth[saml2]"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa80f949_66585a33","line":10,"in_reply_to":"fa80f949_81ca166d","updated":"2015-11-05 10:06:46.000000000","message":"and at least the existing code uses xpath which aren\u0027t supported via stdlib.","commit_id":"34993d332cc5ec09d1fe3e0157cc6105f46550a4"}],"keystoneauth1/extras/_saml2/__init__.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c5b4abc1fd2ce1eea98190b5fb58971d4160f9ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fa80f949_ed10feaa","updated":"2015-11-03 14:47:32.000000000","message":"random aside, but i find it funny that we capitalize ADFS but not SAML","commit_id":"1d976eb6f31353fc058df911cf9d06780154c5f8"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2b677ae669fe7873425dabc0d43f2e85d9d2ac4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fa80f949_f8e4220e","in_reply_to":"fa80f949_ed10feaa","updated":"2015-11-05 10:07:11.000000000","message":"Agreed, i don\u0027t know what the standard is here, this is just what the plugins were always called.","commit_id":"1d976eb6f31353fc058df911cf9d06780154c5f8"}],"keystoneauth1/extras/_saml2/v3/__init__.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c5b4abc1fd2ce1eea98190b5fb58971d4160f9ae","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from keystoneauth1 import exceptions"},{"line_number":19,"context_line":"from keystoneauth1.identity import v3"},{"line_number":20,"context_line":"from keystoneauth1.identity.v3 import federation"},{"line_number":21,"context_line":"from lxml import etree"},{"line_number":22,"context_line":"from six.moves import urllib"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"__all__ \u003d (\u0027Saml2Password\u0027, \u0027ADFSPassword\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_edeb1eaf","line":21,"updated":"2015-11-03 14:47:32.000000000","message":"lxml and six should be together","commit_id":"1d976eb6f31353fc058df911cf9d06780154c5f8"}],"keystoneauth1/identity/__init__.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"44bd3809f3dc70504de1abb304463918e079db69","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from keystoneauth1.identity import v2"},{"line_number":16,"context_line":"from keystoneauth1.identity import v3"},{"line_number":17,"context_line":"from keystoneauth1.identity.v3 import oidc"},{"line_number":18,"context_line":"from keystoneauth1.identity.v3 import saml2"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"BaseIdentityPlugin \u003d base.BaseIdentityPlugin"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_ce19278a","line":18,"updated":"2015-10-30 03:14:35.000000000","message":"can\u0027t do this, or would have to do it lazy-style.","commit_id":"8c2917101cc73511070f908569723a4ad930b014"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"27263eb1911afcec4db52d5744c7778021c6f5f8","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from keystoneauth1.identity import v2"},{"line_number":16,"context_line":"from keystoneauth1.identity import v3"},{"line_number":17,"context_line":"from keystoneauth1.identity.v3 import oidc"},{"line_number":18,"context_line":"from keystoneauth1.identity.v3 import saml2"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"BaseIdentityPlugin \u003d base.BaseIdentityPlugin"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_6b424012","line":18,"in_reply_to":"1a26ad4f_ce19278a","updated":"2015-10-30 06:03:27.000000000","message":"Done","commit_id":"8c2917101cc73511070f908569723a4ad930b014"}],"keystoneauth1/identity/v3/__init__.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1d86251417beb2ec0e9af43806b477b2742c606c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"           \u0027OidcPassword\u0027,"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"           \u0027Saml2Token\u0027,"},{"line_number":40,"context_line":"           \u0027ADFSToken\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a29b11f_48827ac9","line":40,"updated":"2015-10-22 15:00:02.000000000","message":"These symbols aren\u0027t going to exist since they\u0027re not imported.","commit_id":"cf1e06c3be0247a28fbac14294f02b36f21f3678"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"74df1485a0b02f00f8c6c50f135970e9d92c5d56","unresolved":false,"context_lines":[{"line_number":37,"context_line":"           \u0027OidcPassword\u0027,"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"           \u0027Saml2Token\u0027,"},{"line_number":40,"context_line":"           \u0027ADFSToken\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a26ad4f_3505a879","line":40,"in_reply_to":"3a29b11f_0862420a","updated":"2015-10-29 07:10:09.000000000","message":"Done","commit_id":"cf1e06c3be0247a28fbac14294f02b36f21f3678"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7e53714ee264870a92f0282495d360ff0c69296e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"           \u0027OidcPassword\u0027,"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"           \u0027Saml2Token\u0027,"},{"line_number":40,"context_line":"           \u0027ADFSToken\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a29b11f_0862420a","line":40,"in_reply_to":"3a29b11f_48827ac9","updated":"2015-10-22 15:03:01.000000000","message":"Also, look at how we did the lazy importer in ksc: http://git.openstack.org/cgit/openstack/python-keystoneclient/tree/keystoneclient/__init__.py#n52","commit_id":"cf1e06c3be0247a28fbac14294f02b36f21f3678"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"acde1f0691cbb62ed7e4a499cf5c3259d7a0dd8e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"           \u0027OidcPassword\u0027,"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"           \u0027Saml2Token\u0027,"},{"line_number":40,"context_line":"           \u0027ADFSToken\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a29b11f_f7f0e468","line":40,"in_reply_to":"3a29b11f_48827ac9","updated":"2015-10-23 10:13:31.000000000","message":"ok, i removed it.","commit_id":"cf1e06c3be0247a28fbac14294f02b36f21f3678"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"21a58e5dd520803741a64db15f6dc1169833d3cc","unresolved":false,"context_lines":[{"line_number":36,"context_line":"           \u0027TokenMethod\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"           \u0027OidcAuthorizationCode\u0027,"},{"line_number":39,"context_line":"           \u0027OidcPassword\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class _LazyImporter(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_596abfb4","line":39,"updated":"2015-10-30 03:20:17.000000000","message":"since sam2 isn\u0027t exported (it\u0027s on in __all__) there\u0027s no point to having saml2 as a lazy submodule.","commit_id":"8c2917101cc73511070f908569723a4ad930b014"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"27263eb1911afcec4db52d5744c7778021c6f5f8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"           \u0027TokenMethod\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"           \u0027OidcAuthorizationCode\u0027,"},{"line_number":39,"context_line":"           \u0027OidcPassword\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class _LazyImporter(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a26ad4f_8b455c18","line":39,"in_reply_to":"1a26ad4f_596abfb4","updated":"2015-10-30 06:03:27.000000000","message":"Done","commit_id":"8c2917101cc73511070f908569723a4ad930b014"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"6b9946ff85463e671099f03095752f6458aaa09f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            __import__(\u0027keystoneauth1.identity.v3.%s\u0027 % name)"},{"line_number":59,"context_line":"            return getattr(self, name)"},{"line_number":60,"context_line":"        # Return module attributes like __all__ etc."},{"line_number":61,"context_line":"        return getattr(self._module, name)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"sys.modules[__name__] \u003d _LazyImporter(sys.modules[__name__])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a26ad4f_7e5e7c77","line":61,"updated":"2015-10-30 06:56:50.000000000","message":"I don\u0027t want to do this again. This was needed because we had to maintain compatibility","commit_id":"0a7ed1ba4b7dbed7a4defd07cc6eec024bb132dd"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"67593713f3f223d0b092f989ae1e7087ccf2dc71","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import sys"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from keystoneauth1.identity.v3.base import *  # noqa"},{"line_number":16,"context_line":"from keystoneauth1.identity.v3.federation import *  # noqa"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_7b066a87","line":13,"updated":"2015-11-01 22:16:13.000000000","message":"not used.","commit_id":"cc89122674dec4e48bd13130f011a6acbc8aaa66"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"67593713f3f223d0b092f989ae1e7087ccf2dc71","unresolved":false,"context_lines":[{"line_number":39,"context_line":"           \u0027OidcPassword\u0027,"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"           \u0027Saml2Password\u0027,"},{"line_number":42,"context_line":"           \u0027ADFSPassword\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_dbd69ef0","line":42,"updated":"2015-11-01 22:16:13.000000000","message":"Not this. You don\u0027t import the _saml module so these can\u0027t be in __all__","commit_id":"cc89122674dec4e48bd13130f011a6acbc8aaa66"}],"keystoneauth1/identity/v3/_saml2.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e3ff9a5617ad4f2d4403206dcdbc636194a7b2c6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from keystoneauth1 import exceptions"},{"line_number":19,"context_line":"from keystoneauth1.identity import v3"},{"line_number":20,"context_line":"from keystoneauth1.identity.v3 import federation"},{"line_number":21,"context_line":"from lxml import etree"},{"line_number":22,"context_line":"from six.moves import urllib"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"__all__ \u003d (\u0027Saml2Password\u0027, \u0027ADFSPassword\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_f6891a27","line":21,"updated":"2015-11-02 18:53:47.000000000","message":"Why are these not in a separate 3rd party section?","commit_id":"cc89122674dec4e48bd13130f011a6acbc8aaa66"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e3ff9a5617ad4f2d4403206dcdbc636194a7b2c6","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            return etree.XML(content)"},{"line_number":85,"context_line":"        except etree.XMLSyntaxError as e:"},{"line_number":86,"context_line":"            if not msg:"},{"line_number":87,"context_line":"                msg \u003d str(e)"},{"line_number":88,"context_line":"            else:"},{"line_number":89,"context_line":"                msg \u003d msg % e if include_exc else msg"},{"line_number":90,"context_line":"            raise exceptions.AuthorizationFailure(msg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_76b2ea95","line":87,"updated":"2015-11-02 18:53:47.000000000","message":"Is it possible that this will cause a UnicodeDecodeError?","commit_id":"cc89122674dec4e48bd13130f011a6acbc8aaa66"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e3ff9a5617ad4f2d4403206dcdbc636194a7b2c6","unresolved":false,"context_lines":[{"line_number":503,"context_line":"        except AttributeError:"},{"line_number":504,"context_line":"            pass"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        return bool(session.session.cookies)"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    def _token_dates(self, fmt\u003d\u0027%Y-%m-%dT%H:%M:%S.%fZ\u0027):"},{"line_number":509,"context_line":"        \"\"\"Calculate created and expires datetime objects."}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_163856ee","line":506,"updated":"2015-11-02 18:53:47.000000000","message":"Really? lol","commit_id":"cc89122674dec4e48bd13130f011a6acbc8aaa66"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e3ff9a5617ad4f2d4403206dcdbc636194a7b2c6","unresolved":false,"context_lines":[{"line_number":703,"context_line":"            # str_to_xml(), however since server returned HTTP 500 we should"},{"line_number":704,"context_line":"            # re-raise exceptions.InternalServerError."},{"line_number":705,"context_line":"            except (IndexError, exceptions.AuthorizationFailure):"},{"line_number":706,"context_line":"                raise e"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"        request_security_token \u003d self.xml_to_str(self.prepared_request)"},{"line_number":709,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_a1127e55","line":706,"updated":"2015-11-02 18:53:47.000000000","message":"Where does e come from? I think we just want to remote the try-except here...","commit_id":"cc89122674dec4e48bd13130f011a6acbc8aaa66"}],"keystoneauth1/identity/v3/saml2.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"6b9946ff85463e671099f03095752f6458aaa09f","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        return access.create(resp\u003dself.authenticated_response)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"class ADFSPassword(_BaseSAMLPlugin):"},{"line_number":427,"context_line":"    \"\"\"Authentication plugin for Microsoft ADFS2.0 IdPs.\"\"\""},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    _auth_method_class \u003d Saml2AuthMethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a26ad4f_becbb41d","line":426,"updated":"2015-10-30 06:56:50.000000000","message":"I would like to import these as private initially because i want to make some changes.","commit_id":"0a7ed1ba4b7dbed7a4defd07cc6eec024bb132dd"}],"keystoneauth1/loading/_plugins/identity/v3.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a4a8ab98eb223891092692c1436078c68cc98e45","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        options \u003d super(_Saml2Base, self).get_options()"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        options.extend(["},{"line_number":182,"context_line":"            loading.Opt(\u0027identity_provider_url\u0027,"},{"line_number":183,"context_line":"                        help\u003d(\u0027An Identity Provider URL, where the SAML2 \u0027"},{"line_number":184,"context_line":"                              \u0027authentication request will be sent.\u0027))"},{"line_number":185,"context_line":"        ])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a26ad4f_f02654b9","line":182,"updated":"2015-10-29 13:23:26.000000000","message":"use -\u0027s instead of _\u0027s","commit_id":"19d6f12a04ab02e2ebdf69cfb58135641258b65f"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"2750d6f4e519340fc6402dce0097185178057d8f","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        options \u003d super(_Saml2Base, self).get_options()"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        options.extend(["},{"line_number":182,"context_line":"            loading.Opt(\u0027identity_provider_url\u0027,"},{"line_number":183,"context_line":"                        help\u003d(\u0027An Identity Provider URL, where the SAML2 \u0027"},{"line_number":184,"context_line":"                              \u0027authentication request will be sent.\u0027))"},{"line_number":185,"context_line":"        ])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a26ad4f_c744bc1c","line":182,"in_reply_to":"1a26ad4f_f02654b9","updated":"2015-10-29 15:37:57.000000000","message":"Done","commit_id":"19d6f12a04ab02e2ebdf69cfb58135641258b65f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a4a8ab98eb223891092692c1436078c68cc98e45","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        return options"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"class ADFSPassword(_Saml2Base):"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    @property"},{"line_number":210,"context_line":"    def plugin_class(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a26ad4f_30912c9a","line":207,"updated":"2015-10-29 13:23:26.000000000","message":"maybe have \n\n  Saml2Password extend FederatedBase with options:\n  - identity-provider-url\n  - username\n  - password\n\nand have\n\n  ADFSPassword extend Saml2Password with options:\n  - service-provider-endpoint\n  - and it gets username/password/idp-url for free","commit_id":"19d6f12a04ab02e2ebdf69cfb58135641258b65f"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"2750d6f4e519340fc6402dce0097185178057d8f","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        return options"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"class ADFSPassword(_Saml2Base):"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    @property"},{"line_number":210,"context_line":"    def plugin_class(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a26ad4f_07d71424","line":207,"in_reply_to":"1a26ad4f_30912c9a","updated":"2015-10-29 15:37:57.000000000","message":"Done","commit_id":"19d6f12a04ab02e2ebdf69cfb58135641258b65f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"67593713f3f223d0b092f989ae1e7087ccf2dc71","unresolved":false,"context_lines":[{"line_number":209,"context_line":"            loading.Opt(\u0027password\u0027, help\u003d\u0027Password\u0027)"},{"line_number":210,"context_line":"        ])"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        return options"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_3bfc7271","line":212,"updated":"2015-11-01 22:16:13.000000000","message":"these will have to go into their own file because they reference a module with dependencies that may not be loaded.","commit_id":"cc89122674dec4e48bd13130f011a6acbc8aaa66"}],"keystoneauth1/tests/unit/extras/saml2/test_identity_v3_saml2.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c5b4abc1fd2ce1eea98190b5fb58971d4160f9ae","unresolved":false,"context_lines":[{"line_number":13,"context_line":"import os"},{"line_number":14,"context_line":"import uuid"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from keystoneauth1 import exceptions"},{"line_number":17,"context_line":"from lxml import etree"},{"line_number":18,"context_line":"from six.moves import urllib"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa80f949_6daace72","line":16,"updated":"2015-11-03 14:47:32.000000000","message":"move this import with the others","commit_id":"1d976eb6f31353fc058df911cf9d06780154c5f8"}],"keystoneauth1/tests/unit/identity/test_identity_v3_saml2.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e3ff9a5617ad4f2d4403206dcdbc636194a7b2c6","unresolved":false,"context_lines":[{"line_number":13,"context_line":"import os"},{"line_number":14,"context_line":"import uuid"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from keystoneauth1 import exceptions"},{"line_number":17,"context_line":"from lxml import etree"},{"line_number":18,"context_line":"from six.moves import urllib"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_a16cbe35","line":16,"updated":"2015-11-02 18:53:47.000000000","message":"Why is this up here.","commit_id":"cc89122674dec4e48bd13130f011a6acbc8aaa66"}],"keystoneauth1/tests/unit/saml2_fixtures.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"67593713f3f223d0b092f989ae1e7087ccf2dc71","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"UNSCOPED_TOKEN_HEADER \u003d \u0027UNSCOPED_TOKEN\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"UNSCOPED_TOKEN \u003d {"},{"line_number":103,"context_line":"    \"token\": {"},{"line_number":104,"context_line":"        \"issued_at\": \"2014-06-09T09:48:59.643406Z\","},{"line_number":105,"context_line":"        \"extras\": {},"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a26ad4f_fbfa7a74","line":102,"updated":"2015-11-01 22:16:13.000000000","message":"would prefer this to be done with a fixture, however i\u0027m assuming this is a copy-paste from the old keystoneclient-federation so it\u0027s fine to fix later.","commit_id":"cc89122674dec4e48bd13130f011a6acbc8aaa66"}],"setup.cfg":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9f3580d62e554afd2c38ce9baff63157a1817a91","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    v2token \u003d keystoneauth1.loading._plugins.identity.v2:Token"},{"line_number":38,"context_line":"    v3password \u003d keystoneauth1.loading._plugins.identity.v3:Password"},{"line_number":39,"context_line":"    v3token \u003d keystoneauth1.loading._plugins.identity.v3:Token"},{"line_number":40,"context_line":"    v3oidcpassword \u003d keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword"},{"line_number":41,"context_line":"    v3oidcauthcode \u003d keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[build_sphinx]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"3a29b11f_6814164c","line":40,"updated":"2015-10-22 15:04:08.000000000","message":"add these new ones.","commit_id":"cf1e06c3be0247a28fbac14294f02b36f21f3678"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"acde1f0691cbb62ed7e4a499cf5c3259d7a0dd8e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    v2token \u003d keystoneauth1.loading._plugins.identity.v2:Token"},{"line_number":38,"context_line":"    v3password \u003d keystoneauth1.loading._plugins.identity.v3:Password"},{"line_number":39,"context_line":"    v3token \u003d keystoneauth1.loading._plugins.identity.v3:Token"},{"line_number":40,"context_line":"    v3oidcpassword \u003d keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword"},{"line_number":41,"context_line":"    v3oidcauthcode \u003d keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[build_sphinx]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"3a29b11f_57f6785d","line":40,"in_reply_to":"3a29b11f_6814164c","updated":"2015-10-23 10:13:31.000000000","message":"Done","commit_id":"cf1e06c3be0247a28fbac14294f02b36f21f3678"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"9c9430cdaa1541e37f37f62c10e69ebe5a984d9c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    v2token \u003d keystoneauth1.loading._plugins.identity.v2:Token"},{"line_number":38,"context_line":"    v3password \u003d keystoneauth1.loading._plugins.identity.v3:Password"},{"line_number":39,"context_line":"    v3token \u003d keystoneauth1.loading._plugins.identity.v3:Token"},{"line_number":40,"context_line":"    v3oidcpassword \u003d keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword"},{"line_number":41,"context_line":"    v3oidcauthcode \u003d keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[build_sphinx]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"fa80f949_3cb05743","line":40,"updated":"2015-11-04 09:27:50.000000000","message":"saml2 plugins are not listed here. Is it because they are in the extras?","commit_id":"34993d332cc5ec09d1fe3e0157cc6105f46550a4"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"8d8e9dba9f7044e51b1b1944827fa521473f2ea3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    v2token \u003d keystoneauth1.loading._plugins.identity.v2:Token"},{"line_number":38,"context_line":"    v3password \u003d keystoneauth1.loading._plugins.identity.v3:Password"},{"line_number":39,"context_line":"    v3token \u003d keystoneauth1.loading._plugins.identity.v3:Token"},{"line_number":40,"context_line":"    v3oidcpassword \u003d keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword"},{"line_number":41,"context_line":"    v3oidcauthcode \u003d keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[build_sphinx]"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"fa80f949_a69c02c1","line":40,"in_reply_to":"fa80f949_3cb05743","updated":"2015-11-05 10:06:46.000000000","message":"We imported the saml plugins into a private module so that we have the chance to tweak and fix the plugins before making them public. Adding them to entrypoints is essentially making them public and i\u0027d just like to do a bit more testing first.","commit_id":"34993d332cc5ec09d1fe3e0157cc6105f46550a4"}],"test-requirements.txt":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"74bacaa529cf1afdefd20f3e9baf3a36aaed4684","unresolved":false,"context_lines":[{"line_number":8,"context_line":"discover"},{"line_number":9,"context_line":"fixtures\u003e\u003d1.3.1"},{"line_number":10,"context_line":"keyring!\u003d3.3,\u003e\u003d2.1"},{"line_number":11,"context_line":"lxml\u003e\u003d2.3"},{"line_number":12,"context_line":"mock\u003e\u003d1.2"},{"line_number":13,"context_line":"mox3\u003e\u003d0.7.0"},{"line_number":14,"context_line":"oauthlib\u003e\u003d0.6"}],"source_content_type":"text/plain","patch_set":1,"id":"3a29b11f_4834ba48","line":11,"updated":"2015-10-22 14:58:03.000000000","message":"add .[saml2] to the tox.ini instead like we did in keystone.","commit_id":"cf1e06c3be0247a28fbac14294f02b36f21f3678"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"acde1f0691cbb62ed7e4a499cf5c3259d7a0dd8e","unresolved":false,"context_lines":[{"line_number":8,"context_line":"discover"},{"line_number":9,"context_line":"fixtures\u003e\u003d1.3.1"},{"line_number":10,"context_line":"keyring!\u003d3.3,\u003e\u003d2.1"},{"line_number":11,"context_line":"lxml\u003e\u003d2.3"},{"line_number":12,"context_line":"mock\u003e\u003d1.2"},{"line_number":13,"context_line":"mox3\u003e\u003d0.7.0"},{"line_number":14,"context_line":"oauthlib\u003e\u003d0.6"}],"source_content_type":"text/plain","patch_set":1,"id":"3a29b11f_f71a247c","line":11,"in_reply_to":"3a29b11f_4834ba48","updated":"2015-10-23 10:13:31.000000000","message":"Done","commit_id":"cf1e06c3be0247a28fbac14294f02b36f21f3678"}]}
