)]}'
{"karbor/common/config.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"dce2791c5ee33c226286f1577655a8400537804e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                    \u0027to use for client requests in SSL connections.\u0027),"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    cfg.BoolOpt(\u0027auth_insecure\u0027,"},{"line_number":99,"context_line":"                default\u003dTrue,"},{"line_number":100,"context_line":"                help\u003d\u0027Bypass verification of server certificate when \u0027"},{"line_number":101,"context_line":"                     \u0027making SSL connection to service.\u0027)"},{"line_number":102,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":43,"id":"fa6399be_b1df0f68","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":29},"updated":"2016-10-13 11:36:55.000000000","message":"Default MUST be false here.","commit_id":"feeb7c421faf7ad659296ecb80e47ffaee1e9bc3"}],"karbor/services/operationengine/karbor_client.py":[{"author":{"_account_id":21648,"name":"zhangshuai","email":"446077695@qq.com","username":"zhangshuai"},"change_message_id":"25607e23e82620a454024b155a90b5889f72023d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        sc_cfg \u003d CONF[CONFIG_GROUP]"},{"line_number":31,"context_line":"        kc_plugin \u003d karbor_keystone_plugin.KarborKeystonePlugin()"},{"line_number":32,"context_line":"        return kc_plugin.get_service_endpoint("},{"line_number":33,"context_line":"            sc_cfg.service_name, sc_cfg.service_type, \u0027public\u0027,"},{"line_number":34,"context_line":"            sc_cfg.region_id)"},{"line_number":35,"context_line":"    except Exception:"},{"line_number":36,"context_line":"        raise"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"5a8bc5a2_ca5d1b4a","line":34,"range":{"start_line":33,"start_character":54,"end_line":34,"end_character":28},"updated":"2016-09-28 09:40:50.000000000","message":"According to the defination of KarborKeystonePlugin.get_service_endpoint(), \u0027public\u0027 should after sc_cfg.region_id.","commit_id":"6d702e5bdf24311664290405e7f010bf77ef0414"}],"smaug/services/operationengine/engine/executors/green_thread_executor.py":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"1476ba03950a79d6909e10cd459c19a817676f6f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        super(GreenThreadExecutor, self).__init__()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self._operation_manager \u003d operation_manager.OperationManager()"},{"line_number":42,"context_line":"        self._smaug_endpoint \u003d smaug_client.get_smaug_endpoint()"},{"line_number":43,"context_line":"        self._operation_thread_map \u003d {}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def execute_operation(self, operation_id, triggered_time,"}],"source_content_type":"text/x-python","patch_set":27,"id":"bacf61ea_4b5d8e78","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":64},"updated":"2016-08-03 15:36:08.000000000","message":"I dno\u0027t think the smaug endpoint should be part of the executor. You should just be able to get it from a factory or something.\nThe operation might want to initialize it in a certain way.\n\nIn general, there is no reason to tie these components together.","commit_id":"e2b2675bb4d089a9313bcafcc5cee618041ed781"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"f8520a99219a0a06101b60a23fdfddd66457990a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        super(GreenThreadExecutor, self).__init__()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self._operation_manager \u003d operation_manager.OperationManager()"},{"line_number":42,"context_line":"        self._smaug_endpoint \u003d smaug_client.get_smaug_endpoint()"},{"line_number":43,"context_line":"        self._operation_thread_map \u003d {}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def execute_operation(self, operation_id, triggered_time,"}],"source_content_type":"text/x-python","patch_set":27,"id":"bacf61ea_467d6ab0","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":64},"in_reply_to":"bacf61ea_4b5d8e78","updated":"2016-08-04 02:38:56.000000000","message":"yes, I totally agree with you. The reason I put it here is that\nmaybe each operation will use smaug client to send the request,\nand the smaug endpoint is needed. If each operations get the endpoint by themselves, it will access Keystone each time\nit runs which is not a good way.\n\nMy solutions is to add a config named as \u0027smaug_endpoint\u0027, and when the Operation Engine service starts, get the smaug endpoint firstly, and reset the config. When the operation runs, it can get the endpoint from config. what\u0027s you opinion?","commit_id":"e2b2675bb4d089a9313bcafcc5cee618041ed781"}],"smaug/services/operationengine/engine/executors/scheduled_operation_executor.py":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"1476ba03950a79d6909e10cd459c19a817676f6f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def __init__(self):"},{"line_number":43,"context_line":"        super(ScheduledOperationExecutor, self).__init__()"},{"line_number":44,"context_line":"        self._operation_manager \u003d operation_manager.OperationManager()"},{"line_number":45,"context_line":"        self._smaug_endpoint \u003d smaug_client.get_smaug_endpoint()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def execute_operation(self, operation_id, triggered_time,"},{"line_number":48,"context_line":"                          expect_start_time, window_time, **kwargs):"}],"source_content_type":"text/x-python","patch_set":27,"id":"bacf61ea_cb497eb9","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":64},"updated":"2016-08-03 15:36:08.000000000","message":"ditto","commit_id":"e2b2675bb4d089a9313bcafcc5cee618041ed781"}],"smaug/services/operationengine/smaug_client.py":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"d07b4a5ba01bf8524ce85376bc328a8efda586d9","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        return auth_plugin"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def get_token_and_endpoint(self, user_id, project_id):"},{"line_number":83,"context_line":"        key \u003d \"%s_%s\" % (user_id, project_id)"},{"line_number":84,"context_line":"        auth_plugin_info \u003d self._user_auth_plugin_map.get(key)"},{"line_number":85,"context_line":"        if not auth_plugin_info:"},{"line_number":86,"context_line":"            return None, None"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_ade694ad","line":84,"range":{"start_line":83,"start_character":8,"end_line":84,"end_character":62},"updated":"2016-05-31 14:23:47.000000000","message":"extract to method.\n def get_plugin_info(user_id, project_id):\n     return self._user_path_plugin_map.get(\n         \"%s_%s\" % (user_id, project_id))\n\nThen reuse all around the codebase.","commit_id":"6c51eabb51aebf3b1eb720584689c1393698fb2f"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"529e7f130b7aabcce343e6911b7539e36ce444c3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        return auth_plugin"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def get_token_and_endpoint(self, user_id, project_id):"},{"line_number":83,"context_line":"        key \u003d \"%s_%s\" % (user_id, project_id)"},{"line_number":84,"context_line":"        auth_plugin_info \u003d self._user_auth_plugin_map.get(key)"},{"line_number":85,"context_line":"        if not auth_plugin_info:"},{"line_number":86,"context_line":"            return None, None"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_3ac26f85","line":84,"range":{"start_line":83,"start_character":8,"end_line":84,"end_character":62},"in_reply_to":"9abb7d3a_ade694ad","updated":"2016-06-02 02:54:15.000000000","message":"Done","commit_id":"6c51eabb51aebf3b1eb720584689c1393698fb2f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"d07b4a5ba01bf8524ce85376bc328a8efda586d9","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        self._user_auth_plugin_map[key] \u003d {"},{"line_number":147,"context_line":"            \u0027auth_plugin\u0027: auth_plugin,"},{"line_number":148,"context_line":"            \u0027operation_ids\u0027: set([operation_id]),"},{"line_number":149,"context_line":"            \u0027trust_id\u0027: trust_id,"},{"line_number":150,"context_line":"            \u0027session\u0027: session.Session(auth\u003dauth_plugin)"},{"line_number":151,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_0d02400b","line":148,"range":{"start_line":148,"start_character":29,"end_line":148,"end_character":48},"updated":"2016-05-31 14:23:47.000000000","message":"{operation_id,}","commit_id":"6c51eabb51aebf3b1eb720584689c1393698fb2f"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"529e7f130b7aabcce343e6911b7539e36ce444c3","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        self._user_auth_plugin_map[key] \u003d {"},{"line_number":147,"context_line":"            \u0027auth_plugin\u0027: auth_plugin,"},{"line_number":148,"context_line":"            \u0027operation_ids\u0027: set([operation_id]),"},{"line_number":149,"context_line":"            \u0027trust_id\u0027: trust_id,"},{"line_number":150,"context_line":"            \u0027session\u0027: session.Session(auth\u003dauth_plugin)"},{"line_number":151,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_facbc7a1","line":148,"range":{"start_line":148,"start_character":29,"end_line":148,"end_character":48},"in_reply_to":"9abb7d3a_0d02400b","updated":"2016-06-02 02:54:15.000000000","message":"Done","commit_id":"6c51eabb51aebf3b1eb720584689c1393698fb2f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"d07b4a5ba01bf8524ce85376bc328a8efda586d9","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        if not auth_plugin_info:"},{"line_number":158,"context_line":"            return"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        operation_ids \u003d auth_plugin_info[\u0027operation_ids\u0027]"},{"line_number":161,"context_line":"        if operation_id in operation_ids:"},{"line_number":162,"context_line":"            operation_ids.remove(operation_id)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            if 0 \u003d\u003d len(operation_ids):"},{"line_number":165,"context_line":"                l_kc_v3 \u003d kc_v3.Client(session\u003dauth_plugin_info[\u0027session\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_516182d2","line":162,"range":{"start_line":160,"start_character":8,"end_line":162,"end_character":46},"updated":"2016-05-31 14:23:47.000000000","message":"operation_ids is a set.\nThis means you can use:\n operation_ids.discard(operation_id)","commit_id":"6c51eabb51aebf3b1eb720584689c1393698fb2f"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"529e7f130b7aabcce343e6911b7539e36ce444c3","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        if not auth_plugin_info:"},{"line_number":158,"context_line":"            return"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        operation_ids \u003d auth_plugin_info[\u0027operation_ids\u0027]"},{"line_number":161,"context_line":"        if operation_id in operation_ids:"},{"line_number":162,"context_line":"            operation_ids.remove(operation_id)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            if 0 \u003d\u003d len(operation_ids):"},{"line_number":165,"context_line":"                l_kc_v3 \u003d kc_v3.Client(session\u003dauth_plugin_info[\u0027session\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_faf467f1","line":162,"range":{"start_line":160,"start_character":8,"end_line":162,"end_character":46},"in_reply_to":"9abb7d3a_516182d2","updated":"2016-06-02 02:54:15.000000000","message":"Done","commit_id":"6c51eabb51aebf3b1eb720584689c1393698fb2f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"d07b4a5ba01bf8524ce85376bc328a8efda586d9","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        if operation_id in operation_ids:"},{"line_number":162,"context_line":"            operation_ids.remove(operation_id)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            if 0 \u003d\u003d len(operation_ids):"},{"line_number":165,"context_line":"                l_kc_v3 \u003d kc_v3.Client(session\u003dauth_plugin_info[\u0027session\u0027])"},{"line_number":166,"context_line":"                l_kc_v3.trusts.delete(auth_plugin_info[\u0027trust_id\u0027])"},{"line_number":167,"context_line":"                del self._user_auth_plugin_map[key]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_318cbe7e","line":164,"range":{"start_line":164,"start_character":12,"end_line":164,"end_character":39},"updated":"2016-05-31 14:23:47.000000000","message":"Please don\u0027t use Yoda conditions.\n\nhttps://en.wikipedia.org/wiki/Yoda_conditions","commit_id":"6c51eabb51aebf3b1eb720584689c1393698fb2f"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"529e7f130b7aabcce343e6911b7539e36ce444c3","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        if operation_id in operation_ids:"},{"line_number":162,"context_line":"            operation_ids.remove(operation_id)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            if 0 \u003d\u003d len(operation_ids):"},{"line_number":165,"context_line":"                l_kc_v3 \u003d kc_v3.Client(session\u003dauth_plugin_info[\u0027session\u0027])"},{"line_number":166,"context_line":"                l_kc_v3.trusts.delete(auth_plugin_info[\u0027trust_id\u0027])"},{"line_number":167,"context_line":"                del self._user_auth_plugin_map[key]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9abb7d3a_7a8a3765","line":164,"range":{"start_line":164,"start_character":12,"end_line":164,"end_character":39},"in_reply_to":"9abb7d3a_318cbe7e","updated":"2016-06-02 02:54:15.000000000","message":"Done","commit_id":"6c51eabb51aebf3b1eb720584689c1393698fb2f"},{"author":{"_account_id":17192,"name":"xiangxinyong","email":"xiangxinyong@huawei.com","username":"xianxinyong"},"change_message_id":"b27a186612b07673fc86c0bb54e068674a3bdb4a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\"\"\"At present, we can only use the lib \u0027freezer\u0027 to"},{"line_number":15,"context_line":"create the freezer client. So the file name of myself"},{"line_number":16,"context_line":"can not be named as freezer.py."},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":26,"id":"bacf61ea_0e674826","line":17,"range":{"start_line":14,"start_character":0,"end_line":17,"end_character":3},"updated":"2016-08-03 03:56:37.000000000","message":"Do you consider to change freezer to smaug?","commit_id":"5e26e18bfdc3eecc769d1731a962c4f1cf1cc310"}],"smaug/tests/unit/operationengine/test_smaug_client.py":[{"author":{"_account_id":21648,"name":"zhangshuai","email":"446077695@qq.com","username":"zhangshuai"},"change_message_id":"8cda9be43facb749702257df06d06e312380396f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from smaug.tests import base"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class SmaugClientTest(base.TestCase):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @mock.patch.object(smaug_keystone_plugin.SmaugKeystonePlugin, \u0027_do_init\u0027)"},{"line_number":26,"context_line":"    @mock.patch.object(smaug_keystone_plugin.SmaugKeystonePlugin,"}],"source_content_type":"text/x-python","patch_set":40,"id":"5a8bc5a2_ccf65b5c","line":23,"range":{"start_line":23,"start_character":6,"end_line":23,"end_character":11},"updated":"2016-09-27 09:51:46.000000000","message":"Maybe, you should rebase and update this patch.","commit_id":"6d702e5bdf24311664290405e7f010bf77ef0414"}]}
