)]}'
{"keystone/common/dependency.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"adf94fc66052e15245384310b8949588fe347e9c","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    def __init__(self, name, targets):"},{"line_number":48,"context_line":"        msg \u003d \u0027Unregistered dependency: %s for %s\u0027 % (name, targets)"},{"line_number":49,"context_line":"        super(UnresolvableDependencyException, self).__init__(msg)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_cfcb5070","line":48,"updated":"2014-11-24 16:08:12.000000000","message":"Does this need internationalization?","commit_id":"8cfae0dacece04096511edecffe78244b73571d2"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e0415c36093f1afdcfc8c18e972cf6232dc4c4fe","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    def __init__(self, name, targets):"},{"line_number":48,"context_line":"        msg \u003d \u0027Unregistered dependency: %s for %s\u0027 % (name, targets)"},{"line_number":49,"context_line":"        super(UnresolvableDependencyException, self).__init__(msg)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_32ad1cea","line":48,"in_reply_to":"5a890539_cfcb5070","updated":"2014-11-24 16:57:13.000000000","message":"Done","commit_id":"8cfae0dacece04096511edecffe78244b73571d2"}],"keystone/tests/core.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"277ccf4fc98c90a3196790083472baa1dd9963bd","unresolved":false,"context_lines":[{"line_number":401,"context_line":""},{"line_number":402,"context_line":"    def auth_plugin_config_override(self, methods\u003dNone, **method_classes):"},{"line_number":403,"context_line":"        if methods is None:"},{"line_number":404,"context_line":"            methods \u003d [\u0027external\u0027, \u0027password\u0027, \u0027token\u0027, \u0027oauth1\u0027, ]"},{"line_number":405,"context_line":"            if not method_classes:"},{"line_number":406,"context_line":"                method_classes \u003d dict("},{"line_number":407,"context_line":"                    external\u003d\u0027keystone.auth.plugins.external.DefaultDomain\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_1018c483","line":404,"updated":"2014-09-29 01:30:31.000000000","message":"do the oauth1 extension too?","commit_id":"1d9e196c0b083c1a86770aea8c3580132897334b"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"03f92ecb84fbfe86410ee893ecb77883cfbb2103","unresolved":false,"context_lines":[{"line_number":401,"context_line":""},{"line_number":402,"context_line":"    def auth_plugin_config_override(self, methods\u003dNone, **method_classes):"},{"line_number":403,"context_line":"        if methods is None:"},{"line_number":404,"context_line":"            methods \u003d [\u0027external\u0027, \u0027password\u0027, \u0027token\u0027, \u0027oauth1\u0027, ]"},{"line_number":405,"context_line":"            if not method_classes:"},{"line_number":406,"context_line":"                method_classes \u003d dict("},{"line_number":407,"context_line":"                    external\u003d\u0027keystone.auth.plugins.external.DefaultDomain\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_429f6d50","line":404,"in_reply_to":"baa201ad_1018c483","updated":"2014-11-07 09:04:51.000000000","message":"Done","commit_id":"1d9e196c0b083c1a86770aea8c3580132897334b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a19f4b836ff6fad1f034f80af49c2d4c6d5bfaed","unresolved":false,"context_lines":[{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        drivers.update(self.load_extra_backends())"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        drivers.update(dependency.resolve_future_dependencies())"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        for manager_name, manager in six.iteritems(drivers):"},{"line_number":522,"context_line":"            setattr(self, manager_name, manager)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a961159_381222fd","line":519,"updated":"2015-01-08 18:24:52.000000000","message":"could we remove this line now? since we\u0027re loading backends individually now?","commit_id":"9e5aa70c365070a7c5484488b2ddb3319937e260"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"72a32566884f462329198c19c13b0930a4c41d79","unresolved":false,"context_lines":[{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        drivers.update(self.load_extra_backends())"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        drivers.update(dependency.resolve_future_dependencies())"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        for manager_name, manager in six.iteritems(drivers):"},{"line_number":522,"context_line":"            setattr(self, manager_name, manager)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a961159_739ccbc0","line":519,"in_reply_to":"3a961159_381222fd","updated":"2015-01-08 18:48:22.000000000","message":"This remains a requirement until we don\u0027t allow circular dependencies... then we can get rid of the resolve_future_dependencies function and other things in the dependencies module to support circular dependencies.","commit_id":"9e5aa70c365070a7c5484488b2ddb3319937e260"}],"keystone/tests/test_auth_plugin.py":[{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"d1960cbecf96cc15e7f17f8339c68f851b31cc9f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        return config_files"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def load_extra_backends(self):"},{"line_number":71,"context_line":"        return {\u0027federation_api\u0027: federation.Manager()}"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def config_overrides(self):"},{"line_number":74,"context_line":"        super(TestAuthPlugin, self).config_overrides()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_5c943736","line":71,"updated":"2014-11-26 11:25:24.000000000","message":"i don\u0027t understand why is that here. saml2 seems to be turned off by default (tests/core.py) and its is not used here.\nPlus tox -repy27 passed all the tests. Is it for future reference?","commit_id":"eda347bea497da69b48e27c0774dc46d9c6898a1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c6a0a50038deb16115a43558d0c6996ab7e46cb0","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        return config_files"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def load_extra_backends(self):"},{"line_number":71,"context_line":"        return {\u0027federation_api\u0027: federation.Manager()}"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def config_overrides(self):"},{"line_number":74,"context_line":"        super(TestAuthPlugin, self).config_overrides()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_84ac81a0","line":71,"in_reply_to":"5a890539_5c943736","updated":"2014-11-26 14:42:39.000000000","message":"This test uses \"test_auth_plugin.conf\", which includes a bunch of plugins, including saml2... but then it also does config_overrides and wipes out all the methods defined in that config file... I\u0027ll clean this up and then no need to load the manager.","commit_id":"eda347bea497da69b48e27c0774dc46d9c6898a1"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"d1960cbecf96cc15e7f17f8339c68f851b31cc9f","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def load_extra_backends(self):"},{"line_number":180,"context_line":"        return {\u0027federation_api\u0027: federation.Manager()}"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def config_overrides(self):"},{"line_number":183,"context_line":"        # don\u0027t override configs so we can use test_auth_plugin.conf only"},{"line_number":184,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_fc9c036c","line":181,"updated":"2014-11-26 11:25:24.000000000","message":"i don\u0027t understand why is that here. saml2 seems to be turned off by default (tests/core.py) and its is not used here.\nPlus tox -repy27 passed all the tests. Is it for future reference?","commit_id":"eda347bea497da69b48e27c0774dc46d9c6898a1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c6a0a50038deb16115a43558d0c6996ab7e46cb0","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def load_extra_backends(self):"},{"line_number":180,"context_line":"        return {\u0027federation_api\u0027: federation.Manager()}"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def config_overrides(self):"},{"line_number":183,"context_line":"        # don\u0027t override configs so we can use test_auth_plugin.conf only"},{"line_number":184,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_1f01bc04","line":181,"in_reply_to":"5a890539_fc9c036c","updated":"2014-11-26 14:42:39.000000000","message":"This one also uses test_auth_plugin.conf, but apparently doesn\u0027t actually use any of the extra plugins that the conf file provides (maybe because of the mocking). I\u0027ll remove it since it\u0027s not needed.","commit_id":"eda347bea497da69b48e27c0774dc46d9c6898a1"}],"keystone/tests/test_v3_auth.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"dfdc58028f8aebc6f70f83d91570fd6fcbb9b341","unresolved":false,"context_lines":[{"line_number":1306,"context_line":"                  expected_status\u003d200)"},{"line_number":1307,"context_line":""},{"line_number":1308,"context_line":""},{"line_number":1309,"context_line":"@dependency.requires(\u0027revoke_api\u0027)"},{"line_number":1310,"context_line":"class TestTokenRevokeApi(TestTokenRevokeById):"},{"line_number":1311,"context_line":"    EXTENSION_NAME \u003d \u0027revoke\u0027"},{"line_number":1312,"context_line":"    EXTENSION_TO_ADD \u003d \u0027revoke_extension\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_55c5248c","side":"PARENT","line":1309,"updated":"2014-12-03 18:49:44.000000000","message":"guess it was never required here","commit_id":"50a9d6837c3a7bc6f73d17085150e874496a324b"}]}
