)]}'
{"watcher/decision_engine/manager.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"edbcfe8ec7ac0e72eee16c9865f317580f941e01","unresolved":false,"context_lines":[{"line_number":46,"context_line":"               default\u003d\u0027watcher.decision.api\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027The identifier used by watcher \u0027"},{"line_number":48,"context_line":"                    \u0027module on the message broker\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027max_workers\u0027,"},{"line_number":50,"context_line":"               default\u003d2,"},{"line_number":51,"context_line":"               required\u003dTrue,"},{"line_number":52,"context_line":"               help\u003d\u0027The maximum number of threads that can be used to \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_e4b69789","line":49,"range":{"start_line":49,"start_character":16,"end_line":49,"end_character":27},"updated":"2015-12-17 15:52:43.000000000","message":"You forgot to regenerate the sample config file ;)","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"31c3f93fece66307709de4d90558595639655933","unresolved":false,"context_lines":[{"line_number":46,"context_line":"               default\u003d\u0027watcher.decision.api\u0027,"},{"line_number":47,"context_line":"               help\u003d\u0027The identifier used by watcher \u0027"},{"line_number":48,"context_line":"                    \u0027module on the message broker\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027max_workers\u0027,"},{"line_number":50,"context_line":"               default\u003d2,"},{"line_number":51,"context_line":"               required\u003dTrue,"},{"line_number":52,"context_line":"               help\u003d\u0027The maximum number of threads that can be used to \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_ff44e074","line":49,"range":{"start_line":49,"start_character":16,"end_line":49,"end_character":27},"in_reply_to":"3a7e1126_e4b69789","updated":"2015-12-17 16:19:28.000000000","message":"I didn\u0027t forget it. \nI\u0027m waiting this fix https://review.openstack.org/#/c/258590/ to allow me to regenerate the file :)\nIt\u0027s why this patchset is -1 :)","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"}],"watcher/decision_engine/messaging/audit_endpoint.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"edbcfe8ec7ac0e72eee16c9865f317580f941e01","unresolved":false,"context_lines":[{"line_number":16,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":17,"context_line":"# limitations under the License."},{"line_number":18,"context_line":"#"},{"line_number":19,"context_line":"from concurrent.futures import ThreadPoolExecutor"},{"line_number":20,"context_line":"from oslo_log import log"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from watcher.decision_engine.audit.default import DefaultAuditHandler"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_bfb09844","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":49},"updated":"2015-12-17 15:52:43.000000000","message":"nit: this is a built-in so you need to add a extra line before the oslo import","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"31c3f93fece66307709de4d90558595639655933","unresolved":false,"context_lines":[{"line_number":16,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":17,"context_line":"# limitations under the License."},{"line_number":18,"context_line":"#"},{"line_number":19,"context_line":"from concurrent.futures import ThreadPoolExecutor"},{"line_number":20,"context_line":"from oslo_log import log"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from watcher.decision_engine.audit.default import DefaultAuditHandler"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_3a2d9646","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":49},"in_reply_to":"3a7e1126_bfb09844","updated":"2015-12-17 16:19:28.000000000","message":"Done","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"edbcfe8ec7ac0e72eee16c9865f317580f941e01","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class AuditEndpoint(object):"},{"line_number":30,"context_line":"    def __init__(self, messaging, max_workers\u003d2):"},{"line_number":31,"context_line":"        self._messaging \u003d messaging"},{"line_number":32,"context_line":"        self._collector_manager \u003d CollectorManager()"},{"line_number":33,"context_line":"        self._executor \u003d ThreadPoolExecutor(max_workers\u003dmax_workers)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_e43bf7e9","line":30,"range":{"start_line":30,"start_character":46,"end_line":30,"end_character":47},"updated":"2015-12-17 15:52:43.000000000","message":"IMHO, the default value here does not have any added value since anymore because 2 is also the default value in the new config opt you just created.","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"31c3f93fece66307709de4d90558595639655933","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class AuditEndpoint(object):"},{"line_number":30,"context_line":"    def __init__(self, messaging, max_workers\u003d2):"},{"line_number":31,"context_line":"        self._messaging \u003d messaging"},{"line_number":32,"context_line":"        self._collector_manager \u003d CollectorManager()"},{"line_number":33,"context_line":"        self._executor \u003d ThreadPoolExecutor(max_workers\u003dmax_workers)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_9a160af0","line":30,"range":{"start_line":30,"start_character":46,"end_line":30,"end_character":47},"in_reply_to":"3a7e1126_e43bf7e9","updated":"2015-12-17 16:19:28.000000000","message":"Done","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"edbcfe8ec7ac0e72eee16c9865f317580f941e01","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def __init__(self, messaging, max_workers\u003d2):"},{"line_number":31,"context_line":"        self._messaging \u003d messaging"},{"line_number":32,"context_line":"        self._collector_manager \u003d CollectorManager()"},{"line_number":33,"context_line":"        self._executor \u003d ThreadPoolExecutor(max_workers\u003dmax_workers)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @property"},{"line_number":36,"context_line":"    def collector_manager(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_9f303cea","line":33,"range":{"start_line":33,"start_character":25,"end_line":33,"end_character":43},"updated":"2015-12-17 15:52:43.000000000","message":"Maybe we could do a lazy loading for the collector manager and the executor. What do you think?","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"31c3f93fece66307709de4d90558595639655933","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def __init__(self, messaging, max_workers\u003d2):"},{"line_number":31,"context_line":"        self._messaging \u003d messaging"},{"line_number":32,"context_line":"        self._collector_manager \u003d CollectorManager()"},{"line_number":33,"context_line":"        self._executor \u003d ThreadPoolExecutor(max_workers\u003dmax_workers)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @property"},{"line_number":36,"context_line":"    def collector_manager(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_ba03c641","line":33,"range":{"start_line":33,"start_character":25,"end_line":33,"end_character":43},"in_reply_to":"3a7e1126_9f303cea","updated":"2015-12-17 16:19:28.000000000","message":"I don\u0027t think this is usefull here because model_collector is calling keystone only when get_cluster_model_collector is called.","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"}],"watcher/decision_engine/strategy/context/default.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"edbcfe8ec7ac0e72eee16c9865f317580f941e01","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class StrategyContext(BaseStrategyContext):"},{"line_number":25,"context_line":"    def __init__(self):"},{"line_number":26,"context_line":"        LOG.debug(\"Initializing Strategy Context\")"},{"line_number":27,"context_line":"        self._strategy_selector \u003d StrategySelector()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_442f6bf6","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":50},"updated":"2015-12-17 15:52:43.000000000","message":"Missing super() here","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"31c3f93fece66307709de4d90558595639655933","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class StrategyContext(BaseStrategyContext):"},{"line_number":25,"context_line":"    def __init__(self):"},{"line_number":26,"context_line":"        LOG.debug(\"Initializing Strategy Context\")"},{"line_number":27,"context_line":"        self._strategy_selector \u003d StrategySelector()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_5a51820d","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":50},"in_reply_to":"3a7e1126_442f6bf6","updated":"2015-12-17 16:19:28.000000000","message":"+1 already fix it in this review (https://review.openstack.org/#/c/258864/)","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"}],"watcher/tests/decision_engine/strategy/context/test_strategy_context.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"edbcfe8ec7ac0e72eee16c9865f317580f941e01","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from watcher.decision_engine.solution.default import DefaultSolution"},{"line_number":20,"context_line":"from watcher.decision_engine.strategy.context.default import StrategyContext"},{"line_number":21,"context_line":"from watcher.decision_engine.strategy.selection.default import StrategySelector"},{"line_number":22,"context_line":"from watcher.decision_engine.strategy.strategies.dummy_strategy import \\"},{"line_number":23,"context_line":"    DummyStrategy"},{"line_number":24,"context_line":"from watcher.tests import base"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_1f452c16","line":21,"range":{"start_line":21,"start_character":63,"end_line":21,"end_character":79},"updated":"2015-12-17 15:52:43.000000000","message":"nit: just noticed that although imported from a \u0027default\u0027 module it doesn\u0027t hold the DefaultStrategySelector naming I would have expected (like at line 19)","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"31c3f93fece66307709de4d90558595639655933","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from watcher.decision_engine.solution.default import DefaultSolution"},{"line_number":20,"context_line":"from watcher.decision_engine.strategy.context.default import StrategyContext"},{"line_number":21,"context_line":"from watcher.decision_engine.strategy.selection.default import StrategySelector"},{"line_number":22,"context_line":"from watcher.decision_engine.strategy.strategies.dummy_strategy import \\"},{"line_number":23,"context_line":"    DummyStrategy"},{"line_number":24,"context_line":"from watcher.tests import base"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_f5207f9d","line":21,"range":{"start_line":21,"start_character":63,"end_line":21,"end_character":79},"in_reply_to":"3a7e1126_1f452c16","updated":"2015-12-17 16:19:28.000000000","message":"Done","commit_id":"7f5744ad1e6cc0ec582be939f2cbd16899518b17"}]}
