)]}'
{"etc/monasca.conf":[{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"767059b5993f0a5e03a834e8b05164b1eb026649","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"da86d52c_ac36cbe5","updated":"2015-01-30 19:57:20.000000000","message":"default_authorized_roles needs to be updated.","commit_id":"c781b8c5982cba2c273345c3231f132fffba0605"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"9ad6ba2955dfa88abaf937e29e9e51c380675ca7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"da86d52c_3ddade78","in_reply_to":"da86d52c_ac36cbe5","updated":"2015-02-02 12:23:06.000000000","message":"Done","commit_id":"c781b8c5982cba2c273345c3231f132fffba0605"}],"monasca/middleware/auth.py":[{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"46f21a30ef0a70bb6d6b4713d86301ae309eb38c","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def __call__(self, env, start_response):"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        LOG.debug(\"Creating Keystone Context Objetct.\")"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        user_id \u003d env.get(\u0027HTTP_X_USER_ID\u0027, env.get(\u0027HTTP_X_USER\u0027))"},{"line_number":50,"context_line":"        if user_id is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa81d914_665639d4","line":47,"updated":"2015-01-29 22:18:21.000000000","message":"spelling","commit_id":"c781b8c5982cba2c273345c3231f132fffba0605"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"9ad6ba2955dfa88abaf937e29e9e51c380675ca7","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def __call__(self, env, start_response):"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        LOG.debug(\"Creating Keystone Context Objetct.\")"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        user_id \u003d env.get(\u0027HTTP_X_USER_ID\u0027, env.get(\u0027HTTP_X_USER\u0027))"},{"line_number":50,"context_line":"        if user_id is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_9dd02a55","line":47,"in_reply_to":"fa81d914_665639d4","updated":"2015-02-02 12:23:06.000000000","message":"Done. I\u0027ll also provide a better commit message.","commit_id":"c781b8c5982cba2c273345c3231f132fffba0605"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"841a44afd4eda654551c6d6e1355a4371463740c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_fac5953d","line":1,"updated":"2015-02-02 22:09:18.000000000","message":"2015","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"e9645c6e75aa242e11c5254ae43329eba9391539","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_417104df","line":1,"in_reply_to":"da86d52c_fac5953d","updated":"2015-02-04 12:38:51.000000000","message":"Done","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"841a44afd4eda654551c6d6e1355a4371463740c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":"Auth Middleware Module."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import falcon"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_d37277ac","line":17,"updated":"2015-02-02 22:09:18.000000000","message":"That comment is not very useful. Might as well remove.","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"e9645c6e75aa242e11c5254ae43329eba9391539","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":"Auth Middleware Module."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import falcon"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_0152ac3a","line":17,"in_reply_to":"da86d52c_d37277ac","updated":"2015-02-04 12:38:51.000000000","message":"Done","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"841a44afd4eda654551c6d6e1355a4371463740c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    return validator_filter"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class MonascaKeystoneContextFilter(object):"},{"line_number":39,"context_line":"    \"\"\"Make a request context from keystone headers.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, app, conf):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_9a8499d5","line":38,"updated":"2015-02-02 22:09:18.000000000","message":"Do we just want to name the file keystone_context_filter.py and name this class KeystoneContextFilter.\n\nIt seems a little redundant to have Monasca as the prefix on the class.","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"e9645c6e75aa242e11c5254ae43329eba9391539","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    return validator_filter"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class MonascaKeystoneContextFilter(object):"},{"line_number":39,"context_line":"    \"\"\"Make a request context from keystone headers.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, app, conf):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_618b68c3","line":38,"in_reply_to":"da86d52c_9a8499d5","updated":"2015-02-04 12:38:51.000000000","message":"Done","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"841a44afd4eda654551c6d6e1355a4371463740c","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, app, conf):"},{"line_number":42,"context_line":"        self.app \u003d app"},{"line_number":43,"context_line":"        self.conf \u003d conf"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def __call__(self, env, start_response):"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_da545156","line":43,"updated":"2015-02-02 22:09:18.000000000","message":"If app and conf are meant to be private members of this class I would prefer _app and _conf.","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"e9645c6e75aa242e11c5254ae43329eba9391539","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, app, conf):"},{"line_number":42,"context_line":"        self.app \u003d app"},{"line_number":43,"context_line":"        self.conf \u003d conf"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def __call__(self, env, start_response):"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_a191e0f2","line":43,"in_reply_to":"da86d52c_da545156","updated":"2015-02-04 12:38:51.000000000","message":"Done","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"841a44afd4eda654551c6d6e1355a4371463740c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                LOG.error(msg)"},{"line_number":79,"context_line":"                raise falcon.HTTPInternalServerError(msg)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        # NOTE(jamielennox): This is a full auth plugin set by auth_token"},{"line_number":82,"context_line":"        # middleware in newer versions."},{"line_number":83,"context_line":"        user_auth_plugin \u003d env.get(\u0027keystone.token_auth\u0027)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_3a8f2dce","line":81,"updated":"2015-02-02 22:09:18.000000000","message":"Who\u0027s jamielennox? Probably should remove this comment.\nBTW, Annie Lennox was the lead singer for the Eurythmics.","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"e9645c6e75aa242e11c5254ae43329eba9391539","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                LOG.error(msg)"},{"line_number":79,"context_line":"                raise falcon.HTTPInternalServerError(msg)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        # NOTE(jamielennox): This is a full auth plugin set by auth_token"},{"line_number":82,"context_line":"        # middleware in newer versions."},{"line_number":83,"context_line":"        user_auth_plugin \u003d env.get(\u0027keystone.token_auth\u0027)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_016b8cf2","line":81,"in_reply_to":"da86d52c_3a8f2dce","updated":"2015-02-04 12:38:51.000000000","message":"LOL. He\u0027s a keystone core, one of the main developers of keystonemiddleware. Will remove this","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"}],"monasca/middleware/context.py":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"841a44afd4eda654551c6d6e1355a4371463740c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_f03f7123","line":1,"updated":"2015-02-02 22:09:18.000000000","message":"2015","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"e9645c6e75aa242e11c5254ae43329eba9391539","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_3c7277ad","line":1,"in_reply_to":"da86d52c_f03f7123","updated":"2015-02-04 12:38:51.000000000","message":"Done","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"841a44afd4eda654551c6d6e1355a4371463740c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        if not timestamp:"},{"line_number":51,"context_line":"            timestamp \u003d timeutils.utcnow()"},{"line_number":52,"context_line":"        if isinstance(timestamp, six.string_types):"},{"line_number":53,"context_line":"            timestamp \u003d timeutils.parse_strtime(timestamp)"},{"line_number":54,"context_line":"        self.timestamp \u003d timestamp"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        if not request_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_90cb951d","line":53,"updated":"2015-02-02 22:09:18.000000000","message":"What happens if timestamp is not a string? Looks like the code just continues on silently.","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"e9645c6e75aa242e11c5254ae43329eba9391539","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        if not timestamp:"},{"line_number":51,"context_line":"            timestamp \u003d timeutils.utcnow()"},{"line_number":52,"context_line":"        if isinstance(timestamp, six.string_types):"},{"line_number":53,"context_line":"            timestamp \u003d timeutils.parse_strtime(timestamp)"},{"line_number":54,"context_line":"        self.timestamp \u003d timestamp"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        if not request_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_1c0e93e5","line":53,"in_reply_to":"da86d52c_90cb951d","updated":"2015-02-04 12:38:51.000000000","message":"We are currently not passing timestamp. I\u0027ll simplify this","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"841a44afd4eda654551c6d6e1355a4371463740c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        if service_catalog:"},{"line_number":62,"context_line":"            # Only include required parts of service_catalog"},{"line_number":63,"context_line":"            self.service_catalog \u003d [s for s in service_catalog"},{"line_number":64,"context_line":"                                    if s.get(\u0027type\u0027) in (\u0027volume\u0027, \u0027volumev2\u0027)]"},{"line_number":65,"context_line":"        else:"},{"line_number":66,"context_line":"            # if list is empty or none"},{"line_number":67,"context_line":"            self.service_catalog \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_10d7a5c0","line":64,"updated":"2015-02-02 22:09:18.000000000","message":"What does this previous statement do? Looks like it is looking for \"volume\" and \"volumev2\", is that correct?","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"841a44afd4eda654551c6d6e1355a4371463740c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.project_id \u003d project_id"},{"line_number":76,"context_line":"        self.project_name \u003d project_name"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.user_auth_plugin \u003d user_auth_plugin"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def to_dict(self):"},{"line_number":81,"context_line":"        return {\u0027user_id\u0027: self.user_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_50e11d99","line":78,"updated":"2015-02-02 22:09:18.000000000","message":"It would be good to get all these private members with a \"_\" prefix.","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"e9645c6e75aa242e11c5254ae43329eba9391539","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.project_id \u003d project_id"},{"line_number":76,"context_line":"        self.project_name \u003d project_name"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        self.user_auth_plugin \u003d user_auth_plugin"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def to_dict(self):"},{"line_number":81,"context_line":"        return {\u0027user_id\u0027: self.user_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_9cab6374","line":78,"in_reply_to":"da86d52c_50e11d99","updated":"2015-02-04 12:38:51.000000000","message":"Done","commit_id":"3b64fbcee8b0e4e28c72bb964f6e520058c72239"}]}
