)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"86bb5003db039962efd29907c716f6c9381e67be","unresolved":false,"context_lines":[{"line_number":10,"context_line":"For now we leave the database migrations in the extension directory"},{"line_number":11,"context_line":"until we have a general policy for merging these into core."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"DocImpact: You should no longer run the migrations for this extension"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I0ed1ec44d42c3b379a5c2a40e3e6298842dfc01d"},{"line_number":16,"context_line":"Implements: bp move-extensions"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"da85f559_6b3e938d","line":13,"updated":"2015-11-11 16:00:26.000000000","message":"I think this might need a different DocImpact tag.\n\nThis says we are leaving the database migrations, we should remove the oauth1 extension from the keystone paste pipeline, right? \n\n    DocImpact: update keystone-paste and remove oauth1 from pipeline","commit_id":"c2a3e9306460e3affda46524b782f3ded317fdaf"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"55580772ae3430d243f0b914d33df4835b2e1faf","unresolved":false,"context_lines":[{"line_number":10,"context_line":"For now we leave the database migrations in the extension directory"},{"line_number":11,"context_line":"until we have a general policy for merging these into core."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"DocImpact: You should no longer run the migrations for this extension"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I0ed1ec44d42c3b379a5c2a40e3e6298842dfc01d"},{"line_number":16,"context_line":"Implements: bp move-extensions"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"ba8a016a_0a5f130f","line":13,"in_reply_to":"da85f559_6b3e938d","updated":"2015-11-17 19:40:34.000000000","message":"Done","commit_id":"c2a3e9306460e3affda46524b782f3ded317fdaf"}],"keystone/common/config.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ba95ee316a64fd25cf9c9eccdca21479c0dae634","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                        \u0027keystone.credential namespace.\u0027),"},{"line_number":420,"context_line":"    ],"},{"line_number":421,"context_line":"    \u0027oauth1\u0027: ["},{"line_number":422,"context_line":"        cfg.BoolOpt(\u0027enabled\u0027,"},{"line_number":423,"context_line":"                    default\u003dTrue,"},{"line_number":424,"context_line":"                    help\u003d\u0027Enable OAuth1 delegation functionality.\u0027),"},{"line_number":425,"context_line":"        cfg.StrOpt(\u0027driver\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a26ad4f_086e3795","line":422,"updated":"2015-10-30 02:04:57.000000000","message":"removed this option","commit_id":"bd5b054b2365884aed991b0c4eb3b0c8a1b58eb7"}],"keystone/contrib/oauth1/backends/sql.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ba95ee316a64fd25cf9c9eccdca21479c0dae634","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"_OLD \u003d \u0027keystone.contrib.oauth1.backends.sql.OAuth1\u0027"},{"line_number":21,"context_line":"_NEW \u003d \u0027keystone.oauth1.backends.sql.OAuth1\u0027"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class OAuth1(sql.OAuth1):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a26ad4f_08a157a3","line":21,"updated":"2015-10-30 02:04:57.000000000","message":"use \u0027sql\u0027","commit_id":"bd5b054b2365884aed991b0c4eb3b0c8a1b58eb7"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ba95ee316a64fd25cf9c9eccdca21479c0dae634","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @versionutils.deprecated(versionutils.deprecated.MITAKA,"},{"line_number":27,"context_line":"                             in_favor_of\u003d_NEW,"},{"line_number":28,"context_line":"                             remove_in\u003d1,"},{"line_number":29,"context_line":"                             what\u003d_OLD)"},{"line_number":30,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":31,"context_line":"        super(OAuth1, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a26ad4f_68924b59","line":28,"updated":"2015-10-30 02:04:57.000000000","message":"remove in 2","commit_id":"bd5b054b2365884aed991b0c4eb3b0c8a1b58eb7"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"80dd2ad9c0972d778cf9b707b78aaecd42df03e1","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @versionutils.deprecated(versionutils.deprecated.MITAKA,"},{"line_number":27,"context_line":"                             in_favor_of\u003d_NEW,"},{"line_number":28,"context_line":"                             what\u003d_OLD)"},{"line_number":29,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":30,"context_line":"        super(OAuth1, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":15,"id":"da85f559_ebc84424","line":28,"updated":"2015-11-11 15:54:25.000000000","message":"Missing a \u0027when\u0027 here. Are we removing this in O?","commit_id":"c2a3e9306460e3affda46524b782f3ded317fdaf"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"55580772ae3430d243f0b914d33df4835b2e1faf","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @versionutils.deprecated(versionutils.deprecated.MITAKA,"},{"line_number":27,"context_line":"                             in_favor_of\u003d_NEW,"},{"line_number":28,"context_line":"                             what\u003d_OLD)"},{"line_number":29,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":30,"context_line":"        super(OAuth1, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba8a016a_8a7223ac","line":28,"in_reply_to":"da85f559_ebc84424","updated":"2015-11-17 19:40:34.000000000","message":"2 is the default","commit_id":"c2a3e9306460e3affda46524b782f3ded317fdaf"}],"keystone/contrib/oauth1/routers.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ba95ee316a64fd25cf9c9eccdca21479c0dae634","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1a26ad4f_88b1e7e3","updated":"2015-10-30 02:04:57.000000000","message":"change this to match the federation deprecation","commit_id":"bd5b054b2365884aed991b0c4eb3b0c8a1b58eb7"},{"author":{"_account_id":16523,"name":"ZhangLei","display_name":"ZhangLei","email":"zhang.lei@99cloud.net","username":"zhang.lei"},"change_message_id":"32c343a73cedc9b50f73bd9924aa9dddc128ef76","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from oslo_log import versionutils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from keystone.common import wsgi"},{"line_number":19,"context_line":"from keystone.i18n import _ "},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_4b92e458","line":19,"updated":"2015-10-30 06:08:17.000000000","message":"delete trailing whitespace","commit_id":"55beb4aa891f12f8665c4c9a8908fce404215f4b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"80dd2ad9c0972d778cf9b707b78aaecd42df03e1","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        msg \u003d _(\"Remove oauth1_extension from the paste pipeline, the \""},{"line_number":30,"context_line":"                \"oauth1 extension is now always available. Update the \""},{"line_number":31,"context_line":"                \"[pipeline:api_v3] section in keystone-paste.ini accordingly, \""},{"line_number":32,"context_line":"                \"as it will be removed in the O release.\")"},{"line_number":33,"context_line":"        versionutils.report_deprecated_feature(LOG, msg)"}],"source_content_type":"text/x-python","patch_set":15,"id":"da85f559_cbd300d4","line":32,"updated":"2015-11-11 15:54:25.000000000","message":"Yep, looks like we are.","commit_id":"c2a3e9306460e3affda46524b782f3ded317fdaf"}],"keystone/oauth1/__init__.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"256cb38f046d978a1d1cb9ed1081b89c32cd87ac","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from keystone.oauth1.core import *  # noqa"},{"line_number":16,"context_line":"from keystone.oauth1 import routers  # noqa"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_78d01d54","line":16,"updated":"2015-10-19 09:54:46.000000000","message":"why import routers in this file? does this used anywhere?","commit_id":"8ed914c570e38de30cb9541ff93107542c49af7b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"48b4d3c068f7cebae7a1c7d9486ef2a53d9ab0d4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from keystone.oauth1.core import *  # noqa"},{"line_number":16,"context_line":"from keystone.oauth1 import routers  # noqa"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_d917e1a1","line":16,"in_reply_to":"3a29b11f_78d01d54","updated":"2015-10-19 15:57:00.000000000","message":"it\u0027s needed to load the routes in keystone/version/service.py","commit_id":"8ed914c570e38de30cb9541ff93107542c49af7b"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ba6ac7c987aa41356ee6310f203d1c727e2452b4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from keystone.oauth1.core import *  # noqa"},{"line_number":16,"context_line":"from keystone.oauth1 import routers  # noqa"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_ade3aa32","line":16,"in_reply_to":"3a29b11f_d917e1a1","updated":"2015-10-20 01:46:02.000000000","message":"Get it, thanks for the explanation.","commit_id":"8ed914c570e38de30cb9541ff93107542c49af7b"}],"keystone/oauth1/validator.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"256cb38f046d978a1d1cb9ed1081b89c32cd87ac","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from keystone.common import dependency"},{"line_number":21,"context_line":"from keystone import exception"},{"line_number":22,"context_line":"from keystone.oauth1 import core as oauth1"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"METHOD_NAME \u003d \u0027oauth_validator\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_f8966d93","line":22,"updated":"2015-10-19 09:54:46.000000000","message":"change to \"from keystone import oauth1\" and also in other occurance.","commit_id":"8ed914c570e38de30cb9541ff93107542c49af7b"}],"keystone/tests/unit/test_v3_oauth1.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a355b760d0bbdb3b188a1b73423fc12f11df400a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from keystone import exception"},{"line_number":25,"context_line":"from keystone import oauth1"},{"line_number":26,"context_line":"from keystone.oauth1 import controllers"},{"line_number":27,"context_line":"from keystone.oauth1 import core"},{"line_number":28,"context_line":"from keystone.tests.unit.common import test_notifications"},{"line_number":29,"context_line":"from keystone.tests.unit.ksfixtures import temporaryfile"},{"line_number":30,"context_line":"from keystone.tests.unit import test_v3"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_12f8e7e4","line":27,"updated":"2015-10-19 09:47:54.000000000","message":"remove this line, this line is redundant since oauth1 already import core.","commit_id":"8ed914c570e38de30cb9541ff93107542c49af7b"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a355b760d0bbdb3b188a1b73423fc12f11df400a","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        url \u003d self._authorize_request_token(request_key)"},{"line_number":261,"context_line":"        body \u003d {\u0027roles\u0027: [{\u0027id\u0027: self.role_id}]}"},{"line_number":262,"context_line":"        resp \u003d self.put(url, body\u003dbody, expected_status\u003dhttp_client.OK)"},{"line_number":263,"context_line":"        self.verifier \u003d resp.result[\u0027token\u0027][\u0027oauth_verifier\u0027]"},{"line_number":264,"context_line":"        self.assertTrue(all(i in core.VERIFIER_CHARS for i in self.verifier))"},{"line_number":265,"context_line":"        self.assertEqual(8, len(self.verifier))"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_f83aedcc","line":263,"updated":"2015-10-19 09:47:54.000000000","message":"so all of these lines could be used as oauth1.VERIFIER_CHARS.","commit_id":"8ed914c570e38de30cb9541ff93107542c49af7b"}]}
