)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8e5e7a0cf8fb9186d780c64ac84073aac6808edf","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix optional dependencies to allow using oauth"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixes: bug #1264803"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I37484bf844896b1a1b560923a8afaf99e91635e4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAT3%2F%2FutU%3D","line":9,"updated":"2014-01-02 19:28:26.000000000","message":"This should be Closes-Bug: #1264803","commit_id":"42850fd50834f8687f91838fc1ce497ec730183c"}],"httpd/keystone.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6180b6e7a531141c99f3575852a07ed5f0638a6f","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"drivers \u003d service.load_backends()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"dependency.resolve_future_dependencies()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# NOTE(ldbragst): \u0027application\u0027 is required in this context by WSGI spec."},{"line_number":56,"context_line":"# The following is a reference to Python Paste Deploy documentation"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FxOc%3D","line":53,"updated":"2014-01-08 17:25:19.000000000","message":"I think this has to happen after line 58, because we haven\u0027t loaded the paste pipeline yet.","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"95486f6be2bcefca0a8743b698ac8f485d5acf8c","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"drivers \u003d service.load_backends()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"dependency.resolve_future_dependencies()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# NOTE(ldbragst): \u0027application\u0027 is required in this context by WSGI spec."},{"line_number":56,"context_line":"# The following is a reference to Python Paste Deploy documentation"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Fw3g%3D","line":53,"in_reply_to":"AAAAUH%2F%2FxOc%3D","updated":"2014-01-08 18:51:10.000000000","message":"Done","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"}],"keystone/common/dependency.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"16e4a2fb8fc04e366e39fddcff4111611c8cde58","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        provider \u003d REGISTRY.get(dependency)"},{"line_number":203,"context_line":"        for target in targets:"},{"line_number":204,"context_line":"            setattr(target, dependency, provider)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    # Resolve optional dependencies, raises UnresolvableDependencyException if"},{"line_number":207,"context_line":"    # there\u0027s no provider registered."},{"line_number":208,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2Fuuw%3D","line":205,"updated":"2014-01-02 19:27:52.000000000","message":"revert this because it\u0027s working as designed.","commit_id":"42850fd50834f8687f91838fc1ce497ec730183c"}],"keystone/tests/core.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"16e4a2fb8fc04e366e39fddcff4111611c8cde58","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        kvs_core.KEY_VALUE_STORE_REGISTRY.clear()"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        drivers \u003d service.load_backends()"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        for manager_name, manager in drivers.iteritems():"},{"line_number":356,"context_line":"            setattr(self, manager_name, manager)"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2Fuuo%3D","line":354,"updated":"2014-01-02 19:27:52.000000000","message":"load the oauth backend here.","commit_id":"42850fd50834f8687f91838fc1ce497ec730183c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6180b6e7a531141c99f3575852a07ed5f0638a6f","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        for k, v in kw.iteritems():"},{"line_number":336,"context_line":"            CONF.set_override(k, v)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def load_backends(self, **kwargs):"},{"line_number":339,"context_line":"        \"\"\"Initializes each manager and assigns them to an attribute.\"\"\""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        # TODO(blk-u): Shouldn\u0027t need to clear the registry here, but some"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FxM4%3D","line":338,"updated":"2014-01-08 17:25:19.000000000","message":"The change to only load oauth backend in the oauth tests is a new feature and shouldn\u0027t be mixed in with the fix to load oauth. Put this into a separate commit.","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"90de722435cda7fc23a7b6fe310f4ef66f9b2258","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        for k, v in kw.iteritems():"},{"line_number":336,"context_line":"            CONF.set_override(k, v)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def load_backends(self, **kwargs):"},{"line_number":339,"context_line":"        \"\"\"Initializes each manager and assigns them to an attribute.\"\"\""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        # TODO(blk-u): Shouldn\u0027t need to clear the registry here, but some"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FwsU%3D","line":338,"in_reply_to":"AAAAUH%2F%2Fw0Q%3D","updated":"2014-01-08 19:12:21.000000000","message":"okay, thanks for confirming","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9709c26b194138507e76160f4b2830743a50334b","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        for k, v in kw.iteritems():"},{"line_number":336,"context_line":"            CONF.set_override(k, v)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def load_backends(self, **kwargs):"},{"line_number":339,"context_line":"        \"\"\"Initializes each manager and assigns them to an attribute.\"\"\""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        # TODO(blk-u): Shouldn\u0027t need to clear the registry here, but some"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Fw0Q%3D","line":338,"in_reply_to":"AAAAUH%2F%2Fw1Y%3D","updated":"2014-01-08 18:53:25.000000000","message":"I think the conditional on line 354 should be done in a separate commit.","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"95486f6be2bcefca0a8743b698ac8f485d5acf8c","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        for k, v in kw.iteritems():"},{"line_number":336,"context_line":"            CONF.set_override(k, v)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def load_backends(self, **kwargs):"},{"line_number":339,"context_line":"        \"\"\"Initializes each manager and assigns them to an attribute.\"\"\""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        # TODO(blk-u): Shouldn\u0027t need to clear the registry here, but some"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Fw1Y%3D","line":338,"in_reply_to":"AAAAUH%2F%2FxM4%3D","updated":"2014-01-08 18:51:10.000000000","message":"i can remove the changes from the oauth tests, but if you want to keep the conditional on line 354, then I need to keep kwargs here.","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6180b6e7a531141c99f3575852a07ed5f0638a6f","unresolved":false,"context_lines":[{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        drivers \u003d service.load_backends()"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        if \u0027include_oauth1\u0027 in kwargs:"},{"line_number":355,"context_line":"            from keystone.contrib import oauth1"},{"line_number":356,"context_line":"            drivers[\u0027oauth1_api\u0027] \u003d oauth1.Manager()"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FxOI%3D","line":354,"updated":"2014-01-08 17:25:19.000000000","message":"Suggest change to\n\n if kwargs.get(\u0027include_auth1\u0027):\n\nsince it should be a Boolean, or not present.","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"95486f6be2bcefca0a8743b698ac8f485d5acf8c","unresolved":false,"context_lines":[{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        drivers \u003d service.load_backends()"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        if \u0027include_oauth1\u0027 in kwargs:"},{"line_number":355,"context_line":"            from keystone.contrib import oauth1"},{"line_number":356,"context_line":"            drivers[\u0027oauth1_api\u0027] \u003d oauth1.Manager()"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Fw1Q%3D","line":354,"in_reply_to":"AAAAUH%2F%2FxOI%3D","updated":"2014-01-08 18:51:10.000000000","message":"Done","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a540079c8d83f36da67960ffe00a37862f2d1e61","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        drivers \u003d service.load_backends()"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        if \u0027include_oauth1\u0027 in kwargs:"},{"line_number":355,"context_line":"            from keystone.contrib import oauth1"},{"line_number":356,"context_line":"            drivers[\u0027oauth1_api\u0027] \u003d oauth1.Manager()"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        dependency.resolve_future_dependencies()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FwlU%3D","line":355,"updated":"2014-01-08 19:34:36.000000000","message":"I have to keep this part in here, or risk breaking the oauth tests completely. i\u0027ll add a TODO to make it conditional.","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"34a8f415b3c672a7840e010bac549599b526e960","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        drivers \u003d service.load_backends()"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        # TODO(stevemar): currently, load oauth1 driver as well, eventually"},{"line_number":355,"context_line":"        # we need to have this as optional."},{"line_number":356,"context_line":"        from keystone.contrib import oauth1"},{"line_number":357,"context_line":"        drivers[\u0027oauth1_api\u0027] \u003d oauth1.Manager()"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Fwj0%3D","line":355,"updated":"2014-01-08 19:38:55.000000000","message":"this was not optional before, since we always set include_oauth1\u003dTrue in load_backends for the tests.","commit_id":"8bf22c34fa9848e24de74ef1d72595b58352fd8e"}],"keystone/tests/test_v3.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"95486f6be2bcefca0a8743b698ac8f485d5acf8c","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        rules.reset()"},{"line_number":91,"context_line":"        super(RestfulTestCase, self).tearDown()"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def load_backends(self, **kwargs):"},{"line_number":94,"context_line":"        self.config(self.config_files())"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        self.setup_database()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Fw1I%3D","line":93,"updated":"2014-01-08 18:51:10.000000000","message":"i\u0027ll remove the changes in this file, and include them in another set when i change the oauth tests","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"}],"keystone/tests/test_v3_oauth1.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6180b6e7a531141c99f3575852a07ed5f0638a6f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        migration.db_version_control(version\u003dNone, repo_path\u003dself.repo_path)"},{"line_number":47,"context_line":"        migration.db_sync(version\u003dNone, repo_path\u003dself.repo_path)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def load_backends(self):"},{"line_number":50,"context_line":"        super(OAuth1Tests, self).load_backends(include_oauth1\u003dTrue)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FxNE%3D","line":49,"updated":"2014-01-08 17:25:19.000000000","message":"I\u0027d rather the signature didn\u0027t change when override.","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"95486f6be2bcefca0a8743b698ac8f485d5acf8c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        migration.db_version_control(version\u003dNone, repo_path\u003dself.repo_path)"},{"line_number":47,"context_line":"        migration.db_sync(version\u003dNone, repo_path\u003dself.repo_path)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def load_backends(self):"},{"line_number":50,"context_line":"        super(OAuth1Tests, self).load_backends(include_oauth1\u003dTrue)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Fw1A%3D","line":49,"in_reply_to":"AAAAUH%2F%2FxNE%3D","updated":"2014-01-08 18:51:10.000000000","message":"i\u0027ll remove this for now","commit_id":"47eb655bb6fad223579404c52c8ca789e5092162"}]}
