)]}'
{"watcher/cmd/sync.py":[{"author":{"_account_id":15949,"name":"Atul Pandey","email":"atul.pandey@nectechnologies.in","username":"atulpandey"},"change_message_id":"80f597b1d396ac7fb09def23176ba0870aa294ae","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from watcher.decision_engine import sync"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":"CONF \u003d conf.CONF"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_b348645d","line":31,"range":{"start_line":31,"start_character":7,"end_line":31,"end_character":11},"updated":"2016-11-15 05:13:28.000000000","message":"Is it kept as placeholder for future use or otherwise it might be an unnecessary import?","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"710964f1d009c4a8a9d5d57a85cc3efa166b3859","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from watcher.decision_engine import sync"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":"CONF \u003d conf.CONF"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_fde7ff3d","line":31,"range":{"start_line":31,"start_character":7,"end_line":31,"end_character":11},"in_reply_to":"7a77a97e_b348645d","updated":"2016-11-15 10:56:20.000000000","message":"This has to be imported in order to load the configuration options. Instead of not using it, I now pass it to prepare_service()","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"}],"watcher/conf/_opts.py":[{"author":{"_account_id":15949,"name":"Atul Pandey","email":"atul.pandey@nectechnologies.in","username":"atulpandey"},"change_message_id":"80f597b1d396ac7fb09def23176ba0870aa294ae","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from watcher.common import paths"},{"line_number":26,"context_line":"from watcher.db.sqlalchemy import models"},{"line_number":27,"context_line":"from watcher.decision_engine.audit import continuous"},{"line_number":28,"context_line":"from watcher.decision_engine import manager as decision_engine_manger"},{"line_number":29,"context_line":"from watcher.decision_engine.planner import manager as planner_manager"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_f3a57cb5","line":28,"updated":"2016-11-15 05:13:28.000000000","message":"typo: change it to decision_engine_manager.","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"710964f1d009c4a8a9d5d57a85cc3efa166b3859","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from watcher.common import paths"},{"line_number":26,"context_line":"from watcher.db.sqlalchemy import models"},{"line_number":27,"context_line":"from watcher.decision_engine.audit import continuous"},{"line_number":28,"context_line":"from watcher.decision_engine import manager as decision_engine_manger"},{"line_number":29,"context_line":"from watcher.decision_engine.planner import manager as planner_manager"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_bdc4a792","line":28,"in_reply_to":"7a77a97e_f3a57cb5","updated":"2016-11-15 10:56:20.000000000","message":"Done","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":15949,"name":"Atul Pandey","email":"atul.pandey@nectechnologies.in","username":"atulpandey"},"change_message_id":"80f597b1d396ac7fb09def23176ba0870aa294ae","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        (\u0027api\u0027, api_app.API_SERVICE_OPTS),"},{"line_number":40,"context_line":"        (\u0027database\u0027, models.SQL_OPTS),"},{"line_number":41,"context_line":"        (\u0027watcher_decision_engine\u0027,"},{"line_number":42,"context_line":"         (decision_engine_manger.WATCHER_DECISION_ENGINE_OPTS +"},{"line_number":43,"context_line":"          continuous.WATCHER_CONTINUOUS_OPTS)),"},{"line_number":44,"context_line":"        (\u0027watcher_applier\u0027, applier_manager.APPLIER_MANAGER_OPTS),"},{"line_number":45,"context_line":"        (\u0027watcher_planner\u0027, planner_manager.WATCHER_PLANNER_OPTS),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_5395503e","line":42,"updated":"2016-11-15 05:13:28.000000000","message":"same as above.","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"710964f1d009c4a8a9d5d57a85cc3efa166b3859","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        (\u0027api\u0027, api_app.API_SERVICE_OPTS),"},{"line_number":40,"context_line":"        (\u0027database\u0027, models.SQL_OPTS),"},{"line_number":41,"context_line":"        (\u0027watcher_decision_engine\u0027,"},{"line_number":42,"context_line":"         (decision_engine_manger.WATCHER_DECISION_ENGINE_OPTS +"},{"line_number":43,"context_line":"          continuous.WATCHER_CONTINUOUS_OPTS)),"},{"line_number":44,"context_line":"        (\u0027watcher_applier\u0027, applier_manager.APPLIER_MANAGER_OPTS),"},{"line_number":45,"context_line":"        (\u0027watcher_planner\u0027, planner_manager.WATCHER_PLANNER_OPTS),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_fdbe1ffe","line":42,"in_reply_to":"7a77a97e_5395503e","updated":"2016-11-15 10:56:20.000000000","message":"Done","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"}],"watcher/conf/opts.py":[{"author":{"_account_id":15949,"name":"Atul Pandey","email":"atul.pandey@nectechnologies.in","username":"atulpandey"},"change_message_id":"80f597b1d396ac7fb09def23176ba0870aa294ae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_f3ed7c26","line":1,"range":{"start_line":1,"start_character":2,"end_line":1,"end_character":34},"updated":"2016-11-15 05:13:28.000000000","message":"This should be changed.","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"710964f1d009c4a8a9d5d57a85cc3efa166b3859","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_dd488330","line":1,"range":{"start_line":1,"start_character":2,"end_line":1,"end_character":34},"in_reply_to":"7a77a97e_f3ed7c26","updated":"2016-11-15 10:56:20.000000000","message":"Done","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":15949,"name":"Atul Pandey","email":"atul.pandey@nectechnologies.in","username":"atulpandey"},"change_message_id":"80f597b1d396ac7fb09def23176ba0870aa294ae","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    return [(key, val) for key, val in dct.items()]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def list_opts():"},{"line_number":43,"context_line":"    opts \u003d collections.defaultdict(list)"},{"line_number":44,"context_line":"    module_names \u003d _list_module_names()"},{"line_number":45,"context_line":"    imported_modules \u003d _import_modules(module_names)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_73488c2e","line":42,"updated":"2016-11-15 05:13:28.000000000","message":"Adding a docstring would be helpful.","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"710964f1d009c4a8a9d5d57a85cc3efa166b3859","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    return [(key, val) for key, val in dct.items()]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def list_opts():"},{"line_number":43,"context_line":"    opts \u003d collections.defaultdict(list)"},{"line_number":44,"context_line":"    module_names \u003d _list_module_names()"},{"line_number":45,"context_line":"    imported_modules \u003d _import_modules(module_names)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_bddbc7ec","line":42,"in_reply_to":"7a77a97e_73488c2e","updated":"2016-11-15 10:56:20.000000000","message":"Done","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":15949,"name":"Atul Pandey","email":"atul.pandey@nectechnologies.in","username":"atulpandey"},"change_message_id":"80f597b1d396ac7fb09def23176ba0870aa294ae","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    return _tupleize(opts)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def _list_module_names():"},{"line_number":51,"context_line":"    module_names \u003d []"},{"line_number":52,"context_line":"    package_path \u003d os.path.dirname(os.path.abspath(__file__))"},{"line_number":53,"context_line":"    for __, modname, ispkg in pkgutil.iter_modules(path\u003d[package_path]):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_135838fa","line":50,"updated":"2016-11-15 05:13:28.000000000","message":"same as above.","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"710964f1d009c4a8a9d5d57a85cc3efa166b3859","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    return _tupleize(opts)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def _list_module_names():"},{"line_number":51,"context_line":"    module_names \u003d []"},{"line_number":52,"context_line":"    package_path \u003d os.path.dirname(os.path.abspath(__file__))"},{"line_number":53,"context_line":"    for __, modname, ispkg in pkgutil.iter_modules(path\u003d[package_path]):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_7de84f7d","line":50,"in_reply_to":"7a77a97e_135838fa","updated":"2016-11-15 10:56:20.000000000","message":"This is an internal method so IMO there\u0027s no need to add a docstring here.","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"}],"watcher/conf/plugins.py":[{"author":{"_account_id":15949,"name":"Atul Pandey","email":"atul.pandey@nectechnologies.in","username":"atulpandey"},"change_message_id":"80f597b1d396ac7fb09def23176ba0870aa294ae","unresolved":false,"context_lines":[{"line_number":33,"context_line":")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def list_opts():"},{"line_number":37,"context_line":"    \"\"\"Load config options for all Watcher plugins\"\"\""},{"line_number":38,"context_line":"    plugins_opts \u003d []"},{"line_number":39,"context_line":"    for plugin_loader_cls in PLUGIN_LOADERS:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_b373044d","line":36,"range":{"start_line":36,"start_character":4,"end_line":36,"end_character":13},"updated":"2016-11-15 05:13:28.000000000","message":"Can we change this name to earlier one as it will confusing with same in _opts.py.","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"710964f1d009c4a8a9d5d57a85cc3efa166b3859","unresolved":false,"context_lines":[{"line_number":33,"context_line":")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def list_opts():"},{"line_number":37,"context_line":"    \"\"\"Load config options for all Watcher plugins\"\"\""},{"line_number":38,"context_line":"    plugins_opts \u003d []"},{"line_number":39,"context_line":"    for plugin_loader_cls in PLUGIN_LOADERS:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_9d2b6b30","line":36,"range":{"start_line":36,"start_character":4,"end_line":36,"end_character":13},"in_reply_to":"7a77a97e_b373044d","updated":"2016-11-15 10:56:20.000000000","message":"No we cannot because all modules under watcher/conf/ should implement their own list_opts() (see https://review.openstack.org/#/c/396281/3/watcher/conf/opts.py@34)","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"}],"watcher/conf/service.py":[{"author":{"_account_id":15949,"name":"Atul Pandey","email":"atul.pandey@nectechnologies.in","username":"atulpandey"},"change_message_id":"80f597b1d396ac7fb09def23176ba0870aa294ae","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"SERVICE_OPTS \u003d ["},{"line_number":26,"context_line":"    cfg.IntOpt(\u0027periodic_interval\u0027,"},{"line_number":27,"context_line":"               default\u003d60,"},{"line_number":28,"context_line":"               help\u003d_(\u0027Seconds between running periodic tasks.\u0027)),"},{"line_number":29,"context_line":"    cfg.StrOpt(\u0027host\u0027,"},{"line_number":30,"context_line":"               default\u003dsocket.gethostname(),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_73c7ac45","line":27,"range":{"start_line":27,"start_character":23,"end_line":27,"end_character":25},"updated":"2016-11-15 05:13:28.000000000","message":"Question: Is this a agreed value for periodic check?","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"710964f1d009c4a8a9d5d57a85cc3efa166b3859","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"SERVICE_OPTS \u003d ["},{"line_number":26,"context_line":"    cfg.IntOpt(\u0027periodic_interval\u0027,"},{"line_number":27,"context_line":"               default\u003d60,"},{"line_number":28,"context_line":"               help\u003d_(\u0027Seconds between running periodic tasks.\u0027)),"},{"line_number":29,"context_line":"    cfg.StrOpt(\u0027host\u0027,"},{"line_number":30,"context_line":"               default\u003dsocket.gethostname(),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_ddcb2371","line":27,"range":{"start_line":27,"start_character":23,"end_line":27,"end_character":25},"in_reply_to":"7a77a97e_73c7ac45","updated":"2016-11-15 10:56:20.000000000","message":"Well, this is not a new parameter, I just moved it away from https://review.openstack.org/#/c/396281/3/watcher/common/service.py","commit_id":"da3541cf363aec25c63fb564748c43a3d87ecda9"}]}
