)]}'
{"keystone/logic/service.py":[{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"5b8f0c1f3c43d7884c2f2c374b976137cef31be9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            validate, user.id, auth_request.tenant_id)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def authenticate_with_unscoped_token(self,"},{"line_number":66,"context_line":"        auth_request):"},{"line_number":67,"context_line":"        # Check auth_with_unscoped_token"},{"line_number":68,"context_line":"        if not isinstance(auth_request, auth.AuthWithUnscopedToken):"},{"line_number":69,"context_line":"            raise fault.BadRequestFault(\"Expecting auth_with_unscoped_token!\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACn%2F%2F8q4%3D","line":66,"updated":"2011-11-23 18:39:12.000000000","message":"this should be a single line","commit_id":"c3491c85ae726cb1c4379e19ec98fa28e3b014b9"},{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"5b8f0c1f3c43d7884c2f2c374b976137cef31be9","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        def validate(duser):"},{"line_number":84,"context_line":"            # The user is already authenticated"},{"line_number":85,"context_line":"            return True"},{"line_number":86,"context_line":"        return self._authenticate(validate, user.id,"},{"line_number":87,"context_line":"                auth_request.tenant_id)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def authenticate_ec2(self, credentials):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACn%2F%2F8q0%3D","line":86,"updated":"2011-11-23 18:39:12.000000000","message":"this should be a single line","commit_id":"c3491c85ae726cb1c4379e19ec98fa28e3b014b9"},{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"5b8f0c1f3c43d7884c2f2c374b976137cef31be9","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                signature \u003d signer.generate(credentials)"},{"line_number":110,"context_line":"                return signature \u003d\u003d credentials.signature"},{"line_number":111,"context_line":"            return False"},{"line_number":112,"context_line":"        return self._authenticate(validate, creds.user_id,"},{"line_number":113,"context_line":"            creds.tenant_id)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _authenticate(self, validate, user_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACn%2F%2F8qw%3D","line":112,"updated":"2011-11-23 18:39:12.000000000","message":"this should be a single line","commit_id":"c3491c85ae726cb1c4379e19ec98fa28e3b014b9"},{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"5b8f0c1f3c43d7884c2f2c374b976137cef31be9","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        return self._authenticate(validate, creds.user_id,"},{"line_number":113,"context_line":"            creds.tenant_id)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _authenticate(self, validate, user_id,"},{"line_number":116,"context_line":"        tenant_id\u003dNone):"},{"line_number":117,"context_line":"        if tenant_id:"},{"line_number":118,"context_line":"            duser \u003d api.USER.get_by_tenant(user_id, tenant_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACn%2F%2F8qs%3D","line":115,"updated":"2011-11-23 18:39:12.000000000","message":"this should be a single line","commit_id":"c3491c85ae726cb1c4379e19ec98fa28e3b014b9"},{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"5b8f0c1f3c43d7884c2f2c374b976137cef31be9","unresolved":false,"context_lines":[{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    def is_user_admin_or_service_admin(self, user_id):"},{"line_number":688,"context_line":"        for role_ref in api.ROLE.ref_get_all_global_roles(user_id):"},{"line_number":689,"context_line":"            if (role_ref.role_id \u003d\u003d backends.ADMIN_ROLE_ID or \\"},{"line_number":690,"context_line":"                role_ref.role_id \u003d\u003d backends.SERVICE_ADMIN_ROLE_ID) \\"},{"line_number":691,"context_line":"                and role_ref.tenant_id is None:"},{"line_number":692,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACn%2F%2F8qk%3D","line":689,"updated":"2011-11-23 18:39:12.000000000","message":"more pythonic:\n\nrole_ref.role_id in [backends.ADMIN_ROLE_ID, backends.SERVICE_ADMIN_ROLE_ID] and role_ref.tenant_id is None","commit_id":"c3491c85ae726cb1c4379e19ec98fa28e3b014b9"},{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"5b8f0c1f3c43d7884c2f2c374b976137cef31be9","unresolved":false,"context_lines":[{"line_number":688,"context_line":"        for role_ref in api.ROLE.ref_get_all_global_roles(user_id):"},{"line_number":689,"context_line":"            if (role_ref.role_id \u003d\u003d backends.ADMIN_ROLE_ID or \\"},{"line_number":690,"context_line":"                role_ref.role_id \u003d\u003d backends.SERVICE_ADMIN_ROLE_ID) \\"},{"line_number":691,"context_line":"                and role_ref.tenant_id is None:"},{"line_number":692,"context_line":"                return True"},{"line_number":693,"context_line":"        return False"},{"line_number":694,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACn%2F%2F8qo%3D","line":691,"updated":"2011-11-23 18:39:12.000000000","message":"this should be 1 space to the left - the *and* is to the ( not to the role_ref.role_id above","commit_id":"c3491c85ae726cb1c4379e19ec98fa28e3b014b9"}],"keystone/logic/types/auth.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"4d33387d7de55721f34d26c0f67cca3e0f89f0a3","unresolved":false,"context_lines":[{"line_number":307,"context_line":"class AuthData(object):"},{"line_number":308,"context_line":"    \"\"\"Authentation Information returned upon successful login.\"\"\""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    url_kinds \u003d [\"internal\", \"public\", \"admin\"]"},{"line_number":311,"context_line":"    url_service_kinds \u003d [\"public\"]"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def __init__(self, token, user, base_urls\u003dNone, is_service_operation\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BfQ%3D","line":310,"updated":"2011-11-15 00:35:32.000000000","message":"\u0027url_kinds\u0027 doesn\u0027t really make much sense; these are \u0027endpoint_types\u0027","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":8,"name":"Yogeshwar Srikrishnan","email":"yoga80@yahoo.com","username":"yogesh-srikrishnan"},"change_message_id":"76cc31985c43a4cc90fcfe8a955640fb56ad1bd4","unresolved":false,"context_lines":[{"line_number":307,"context_line":"class AuthData(object):"},{"line_number":308,"context_line":"    \"\"\"Authentation Information returned upon successful login.\"\"\""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    url_kinds \u003d [\"internal\", \"public\", \"admin\"]"},{"line_number":311,"context_line":"    url_service_kinds \u003d [\"public\"]"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def __init__(self, token, user, base_urls\u003dNone, is_service_operation\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BYM%3D","line":310,"in_reply_to":"AAAACn%2F%2F%2Bdw%3D","updated":"2011-11-15 16:41:40.000000000","message":"Actually we are dealing with url types.Dont we?Out database stores them as three different URLS\npublic\nprivate and internal","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":8,"name":"Yogeshwar Srikrishnan","email":"yoga80@yahoo.com","username":"yogesh-srikrishnan"},"change_message_id":"ba4b42cc2e6d34704b308adeda51b42948cc7267","unresolved":false,"context_lines":[{"line_number":307,"context_line":"class AuthData(object):"},{"line_number":308,"context_line":"    \"\"\"Authentation Information returned upon successful login.\"\"\""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    url_kinds \u003d [\"internal\", \"public\", \"admin\"]"},{"line_number":311,"context_line":"    url_service_kinds \u003d [\"public\"]"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def __init__(self, token, user, base_urls\u003dNone, is_service_operation\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2Bdw%3D","line":310,"in_reply_to":"AAAACn%2F%2F%2BfQ%3D","updated":"2011-11-15 16:24:31.000000000","message":"Is this not the same variable that is already been used?","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"4d33387d7de55721f34d26c0f67cca3e0f89f0a3","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    \"\"\"Authentation Information returned upon successful login.\"\"\""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    url_kinds \u003d [\"internal\", \"public\", \"admin\"]"},{"line_number":311,"context_line":"    url_service_kinds \u003d [\"public\"]"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def __init__(self, token, user, base_urls\u003dNone, is_service_operation\u003dNone):"},{"line_number":314,"context_line":"        self.token \u003d token"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BfM%3D","line":311,"updated":"2011-11-15 00:35:32.000000000","message":"Similar to above, this is a list of \u0027service_types\u0027?","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d8252d18418db8f2960fc6a9494bd906ee1da710","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    \"\"\"Authentation Information returned upon successful login.\"\"\""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    url_kinds \u003d [\"internal\", \"public\", \"admin\"]"},{"line_number":311,"context_line":"    url_service_kinds \u003d [\"public\"]"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def __init__(self, token, user, base_urls\u003dNone, is_service_operation\u003dNone):"},{"line_number":314,"context_line":"        self.token \u003d token"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BSM%3D","line":311,"in_reply_to":"AAAACn%2F%2F%2BXg%3D","updated":"2011-11-15 18:34:55.000000000","message":"This is just an issue of grammar, \u0027kind\u0027 is an adjective, and \u0027type\u0027 is a noun.","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":8,"name":"Yogeshwar Srikrishnan","email":"yoga80@yahoo.com","username":"yogesh-srikrishnan"},"change_message_id":"8b60f61da765c9b2337a298d4f39cb7054fdfa98","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    \"\"\"Authentation Information returned upon successful login.\"\"\""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    url_kinds \u003d [\"internal\", \"public\", \"admin\"]"},{"line_number":311,"context_line":"    url_service_kinds \u003d [\"public\"]"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def __init__(self, token, user, base_urls\u003dNone, is_service_operation\u003dNone):"},{"line_number":314,"context_line":"        self.token \u003d token"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BXg%3D","line":311,"in_reply_to":"AAAACn%2F%2F%2BYI%3D","updated":"2011-11-15 16:51:21.000000000","message":"or better service_api_url_kinds and admin_api_url_kinds","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":8,"name":"Yogeshwar Srikrishnan","email":"yoga80@yahoo.com","username":"yogesh-srikrishnan"},"change_message_id":"76cc31985c43a4cc90fcfe8a955640fb56ad1bd4","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    \"\"\"Authentation Information returned upon successful login.\"\"\""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    url_kinds \u003d [\"internal\", \"public\", \"admin\"]"},{"line_number":311,"context_line":"    url_service_kinds \u003d [\"public\"]"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def __init__(self, token, user, base_urls\u003dNone, is_service_operation\u003dNone):"},{"line_number":314,"context_line":"        self.token \u003d token"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BYI%3D","line":311,"in_reply_to":"AAAACn%2F%2F%2BfM%3D","updated":"2011-11-15 16:41:40.000000000","message":"probably service_url_kinds","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"4d33387d7de55721f34d26c0f67cca3e0f89f0a3","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        self.d \u003d {}"},{"line_number":319,"context_line":"        if self.base_urls !\u003d None:"},{"line_number":320,"context_line":"            self.__convert_baseurls_to_dict()"},{"line_number":321,"context_line":"        if is_service_operation:"},{"line_number":322,"context_line":"            self.url_kinds \u003d AuthData.url_service_kinds"},{"line_number":323,"context_line":"        else:"},{"line_number":324,"context_line":"            self.url_kinds \u003d AuthData.url_kinds"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BfI%3D","line":321,"updated":"2011-11-15 00:35:32.000000000","message":"Having a flag alter the produced structure feels very dirty.","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d8252d18418db8f2960fc6a9494bd906ee1da710","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        self.d \u003d {}"},{"line_number":319,"context_line":"        if self.base_urls !\u003d None:"},{"line_number":320,"context_line":"            self.__convert_baseurls_to_dict()"},{"line_number":321,"context_line":"        if is_service_operation:"},{"line_number":322,"context_line":"            self.url_kinds \u003d AuthData.url_service_kinds"},{"line_number":323,"context_line":"        else:"},{"line_number":324,"context_line":"            self.url_kinds \u003d AuthData.url_kinds"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BSE%3D","line":321,"in_reply_to":"AAAACn%2F%2F%2BX4%3D","updated":"2011-11-15 18:34:55.000000000","message":"How would that avoid the use of a flag here?","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":8,"name":"Yogeshwar Srikrishnan","email":"yoga80@yahoo.com","username":"yogesh-srikrishnan"},"change_message_id":"76cc31985c43a4cc90fcfe8a955640fb56ad1bd4","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        self.d \u003d {}"},{"line_number":319,"context_line":"        if self.base_urls !\u003d None:"},{"line_number":320,"context_line":"            self.__convert_baseurls_to_dict()"},{"line_number":321,"context_line":"        if is_service_operation:"},{"line_number":322,"context_line":"            self.url_kinds \u003d AuthData.url_service_kinds"},{"line_number":323,"context_line":"        else:"},{"line_number":324,"context_line":"            self.url_kinds \u003d AuthData.url_kinds"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BX4%3D","line":321,"in_reply_to":"AAAACn%2F%2F%2BfI%3D","updated":"2011-11-15 16:41:40.000000000","message":"do u think passing the structure to\n self.__convert_baseurls_to_dict()\nie like\n self.__convert_baseurls_to_dict(url_kinds) would make it better?","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"}],"keystone/routers/admin.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"c9019c7b4abfa4bfe0fb24482cc524e08df92dcd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        mapper.connect(\"/tokens\", controller\u003dauth_controller,"},{"line_number":43,"context_line":"                       action\u003d\"authenticate\","},{"line_number":44,"context_line":"                       conditions\u003ddict(method\u003d[\"POST\"]))"},{"line_number":45,"context_line":"        # Also adding missing ec2 auth in admin as well."},{"line_number":46,"context_line":"        mapper.connect(\"/ec2tokens\", controller\u003dauth_controller,"},{"line_number":47,"context_line":"                       action\u003d\"authenticate_ec2\","},{"line_number":48,"context_line":"                       conditions\u003ddict(method\u003d[\"POST\"]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2Be4%3D","line":45,"updated":"2011-11-15 00:37:40.000000000","message":"This belongs in a different commit, and this comment is not appropriate.","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"5b8f0c1f3c43d7884c2f2c374b976137cef31be9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        mapper.connect(\"/tokens\", controller\u003dauth_controller,"},{"line_number":43,"context_line":"                       action\u003d\"authenticate\","},{"line_number":44,"context_line":"                       conditions\u003ddict(method\u003d[\"POST\"]))"},{"line_number":45,"context_line":"        # Also adding missing ec2 auth in admin as well."},{"line_number":46,"context_line":"        mapper.connect(\"/ec2tokens\", controller\u003dauth_controller,"},{"line_number":47,"context_line":"                       action\u003d\"authenticate_ec2\","},{"line_number":48,"context_line":"                       conditions\u003ddict(method\u003d[\"POST\"]))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACn%2F%2F8qc%3D","line":45,"updated":"2011-11-23 18:39:12.000000000","message":"this comment should be in your commit message? \n\nand should this be a separate commit?","commit_id":"c3491c85ae726cb1c4379e19ec98fa28e3b014b9"}],"keystone/routers/service.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"c9019c7b4abfa4bfe0fb24482cc524e08df92dcd","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        db.configure_backends(options)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        # Token Operations"},{"line_number":39,"context_line":"        auth_controller \u003d AuthController(options, True)"},{"line_number":40,"context_line":"        mapper.connect(\"/tokens\", controller\u003dauth_controller,"},{"line_number":41,"context_line":"                       action\u003d\"authenticate\","},{"line_number":42,"context_line":"                       conditions\u003ddict(method\u003d[\"POST\"]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2Be0%3D","line":39,"updated":"2011-11-15 00:37:40.000000000","message":"The problem with this approach is evident right here -- True *what*?","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d8252d18418db8f2960fc6a9494bd906ee1da710","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        db.configure_backends(options)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        # Token Operations"},{"line_number":39,"context_line":"        auth_controller \u003d AuthController(options, True)"},{"line_number":40,"context_line":"        mapper.connect(\"/tokens\", controller\u003dauth_controller,"},{"line_number":41,"context_line":"                       action\u003d\"authenticate\","},{"line_number":42,"context_line":"                       conditions\u003ddict(method\u003d[\"POST\"]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BSA%3D","line":39,"in_reply_to":"AAAACn%2F%2F%2BXw%3D","updated":"2011-11-15 18:34:55.000000000","message":"That\u0027s better, but auth_controller \u003d ServiceAuthController(options) would be much cleaner","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"},{"author":{"_account_id":8,"name":"Yogeshwar Srikrishnan","email":"yoga80@yahoo.com","username":"yogesh-srikrishnan"},"change_message_id":"76cc31985c43a4cc90fcfe8a955640fb56ad1bd4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        db.configure_backends(options)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        # Token Operations"},{"line_number":39,"context_line":"        auth_controller \u003d AuthController(options, True)"},{"line_number":40,"context_line":"        mapper.connect(\"/tokens\", controller\u003dauth_controller,"},{"line_number":41,"context_line":"                       action\u003d\"authenticate\","},{"line_number":42,"context_line":"                       conditions\u003ddict(method\u003d[\"POST\"]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F%2BXw%3D","line":39,"in_reply_to":"AAAACn%2F%2F%2Be0%3D","updated":"2011-11-15 16:41:40.000000000","message":"would auth_controller \u003d AuthController(options\u003doptions, is_service_operation\u003dTrue)\nmake u happy?","commit_id":"df71941378d518aa84aebfe5c5a4406d34dbb464"}]}
