)]}'
{"watcher/db/sqlalchemy/alembic/versions/0f6042416884_.py":[{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"109f293b3ea72a308f01b32df849642abe551600","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\"\"\"Add apscheduler_jobs table to store background jobs"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"Revision ID: 0f6042416884"},{"line_number":4,"context_line":"Revises: 001"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_de8e562d","line":1,"updated":"2017-03-24 16:22:58.000000000","message":"Should this file match the naming convention used by the other file?  001_pike.py?","commit_id":"9038b9bcf19af2f1668f4d2d80820b1d86953487"}],"watcher/decision_engine/audit/base.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a5f6d98aed18ee1157cc2a78680cf1640a9135ed","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class Singleton(type):"},{"line_number":37,"context_line":"    _instances \u003d {}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __call__(cls, *args, **kwargs):"},{"line_number":40,"context_line":"        if cls not in cls._instances:"},{"line_number":41,"context_line":"            cls._instances[cls] \u003d super(Singleton, cls).__call__(*args,"},{"line_number":42,"context_line":"                                                                 **kwargs)"},{"line_number":43,"context_line":"        return cls._instances[cls]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bff0334d_d6b812e6","line":43,"range":{"start_line":36,"start_character":0,"end_line":43,"end_character":34},"updated":"2017-04-10 11:29:57.000000000","message":"Why not using https://github.com/openstack/watcher/blob/master/watcher/common/service.py#L72 which is alias from https://github.com/openstack/oslo.service/blob/master/oslo_service/service.py#L114-L123 ?","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e31812adfd775cb092a84795117e3b36c41e7087","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class Singleton(type):"},{"line_number":37,"context_line":"    _instances \u003d {}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __call__(cls, *args, **kwargs):"},{"line_number":40,"context_line":"        if cls not in cls._instances:"},{"line_number":41,"context_line":"            cls._instances[cls] \u003d super(Singleton, cls).__call__(*args,"},{"line_number":42,"context_line":"                                                                 **kwargs)"},{"line_number":43,"context_line":"        return cls._instances[cls]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_9fda0515","line":43,"range":{"start_line":36,"start_character":0,"end_line":43,"end_character":34},"in_reply_to":"bff0334d_d6b812e6","updated":"2017-04-18 08:16:15.000000000","message":"Done","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a5f6d98aed18ee1157cc2a78680cf1640a9135ed","unresolved":false,"context_lines":[{"line_number":68,"context_line":"class AuditHandler(BaseAuditHandler):"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __init__(self):"},{"line_number":71,"context_line":"        self._strategy_context \u003d default_context.DefaultStrategyContext()"},{"line_number":72,"context_line":"        self._planner_manager \u003d planner_manager.PlannerManager()"},{"line_number":73,"context_line":"        self._planner \u003d None"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bff0334d_36d5fe1c","line":71,"updated":"2017-04-10 11:29:57.000000000","message":"the super() is actually missing here","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e31812adfd775cb092a84795117e3b36c41e7087","unresolved":false,"context_lines":[{"line_number":68,"context_line":"class AuditHandler(BaseAuditHandler):"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def __init__(self):"},{"line_number":71,"context_line":"        self._strategy_context \u003d default_context.DefaultStrategyContext()"},{"line_number":72,"context_line":"        self._planner_manager \u003d planner_manager.PlannerManager()"},{"line_number":73,"context_line":"        self._planner \u003d None"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_5f06bd88","line":71,"in_reply_to":"bff0334d_36d5fe1c","updated":"2017-04-18 08:16:15.000000000","message":"Done","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"}],"watcher/decision_engine/audit/continuous.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a5f6d98aed18ee1157cc2a78680cf1640a9135ed","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @classmethod"},{"line_number":86,"context_line":"    def execute_audit(cls, audit, request_context):"},{"line_number":87,"context_line":"        self \u003d cls.__call__()"},{"line_number":88,"context_line":"        if not self._is_audit_inactive(audit):"},{"line_number":89,"context_line":"            self.execute(audit, request_context)"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bff0334d_16967a40","line":87,"range":{"start_line":87,"start_character":15,"end_line":87,"end_character":29},"updated":"2017-04-10 11:29:57.000000000","message":"why not cls() ?","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e31812adfd775cb092a84795117e3b36c41e7087","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @classmethod"},{"line_number":86,"context_line":"    def execute_audit(cls, audit, request_context):"},{"line_number":87,"context_line":"        self \u003d cls.__call__()"},{"line_number":88,"context_line":"        if not self._is_audit_inactive(audit):"},{"line_number":89,"context_line":"            self.execute(audit, request_context)"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_9ff3259f","line":87,"range":{"start_line":87,"start_character":15,"end_line":87,"end_character":29},"in_reply_to":"bff0334d_16967a40","updated":"2017-04-18 08:16:15.000000000","message":"Done","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a5f6d98aed18ee1157cc2a78680cf1640a9135ed","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            \u0027interval\u0027,"},{"line_number":117,"context_line":"            seconds\u003dCONF.watcher_decision_engine.continuous_audit_interval,"},{"line_number":118,"context_line":"            next_run_time\u003ddatetime.datetime.now(),"},{"line_number":119,"context_line":"            jobstore\u003d\u0027memory\u0027)"},{"line_number":120,"context_line":"        self.scheduler.start()"}],"source_content_type":"text/x-python","patch_set":5,"id":"bff0334d_b67fce13","line":119,"range":{"start_line":119,"start_character":21,"end_line":119,"end_character":29},"updated":"2017-04-10 11:29:57.000000000","message":"Shouldn\u0027t this be a new configuration parameter?","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e31812adfd775cb092a84795117e3b36c41e7087","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            \u0027interval\u0027,"},{"line_number":117,"context_line":"            seconds\u003dCONF.watcher_decision_engine.continuous_audit_interval,"},{"line_number":118,"context_line":"            next_run_time\u003ddatetime.datetime.now(),"},{"line_number":119,"context_line":"            jobstore\u003d\u0027memory\u0027)"},{"line_number":120,"context_line":"        self.scheduler.start()"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_1f9f1504","line":119,"range":{"start_line":119,"start_character":21,"end_line":119,"end_character":29},"in_reply_to":"bff0334d_b67fce13","updated":"2017-04-18 08:16:15.000000000","message":"I don\u0027t think so. If we stored launch_audits_periodically jobs, it would make DE service stateful.","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"}],"watcher/decision_engine/audit/oneshot.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a5f6d98aed18ee1157cc2a78680cf1640a9135ed","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class OneShotAuditHandler(base.AuditHandler):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def __init__(self):"},{"line_number":24,"context_line":"        super(OneShotAuditHandler, self).__init__()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def do_execute(self, audit, request_context):"},{"line_number":27,"context_line":"        # execute the strategy"}],"source_content_type":"text/x-python","patch_set":5,"id":"bff0334d_96ca8a4b","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":51},"updated":"2017-04-10 11:29:57.000000000","message":"nit: since you don\u0027t do anything more than super(), it looks pretty useless to me now.","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e31812adfd775cb092a84795117e3b36c41e7087","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class OneShotAuditHandler(base.AuditHandler):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def __init__(self):"},{"line_number":24,"context_line":"        super(OneShotAuditHandler, self).__init__()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def do_execute(self, audit, request_context):"},{"line_number":27,"context_line":"        # execute the strategy"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_ffa3494e","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":51},"in_reply_to":"bff0334d_96ca8a4b","updated":"2017-04-18 08:16:15.000000000","message":"Done","commit_id":"45277dad6f32293d0f259c0a372a96fd37fda703"}],"watcher/tests/decision_engine/audit/test_audit_handlers.py":[{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"847f6a7f62448fd9ae2b127e42b4f548c3342ee5","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        mock_jobs.return_value \u003d mock.MagicMock()"},{"line_number":291,"context_line":"        m_service.return_value \u003d mock.MagicMock()"},{"line_number":292,"context_line":"        m_engine.return_value \u003d mock.MagicMock()"},{"line_number":293,"context_line":"        self.audits[1].state \u003d objects.audit.State.CANCELLED"},{"line_number":294,"context_line":"        ap_jobs \u003d [job.Job(mock.MagicMock(), name\u003d\u0027execute_audit\u0027,"},{"line_number":295,"context_line":"                           func\u003daudit_handler.execute_audit,"},{"line_number":296,"context_line":"                           args\u003d(self.audits[0], mock.MagicMock()),"}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_07c09ae0","line":293,"range":{"start_line":293,"start_character":8,"end_line":293,"end_character":60},"updated":"2017-04-27 01:30:23.000000000","message":"Why did you remove objects.audit.State.SUSPENDED?","commit_id":"e190a56555597f7858579bae27b52874fd52ac26"}]}
