)]}'
{"karbor/services/operationengine/operation_manager.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"9fb72167821edb24d289753b68938cee1342a822","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    _instance \u003d None"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def __new__(cls, *args, **kwargs):"},{"line_number":29,"context_line":"        if not OperationManager._instance:"},{"line_number":30,"context_line":"            OperationManager._instance \u003d super("},{"line_number":31,"context_line":"                OperationManager, cls).__new__("},{"line_number":32,"context_line":"                    cls, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_7f892aca","line":29,"range":{"start_line":29,"start_character":15,"end_line":29,"end_character":31},"updated":"2016-11-15 09:34:58.000000000","message":"replace `OperationManager` with `cls`","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"17bb7675e60e01930ed5045c49de84a7e150187c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    _instance \u003d None"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def __new__(cls, *args, **kwargs):"},{"line_number":29,"context_line":"        if not OperationManager._instance:"},{"line_number":30,"context_line":"            OperationManager._instance \u003d super("},{"line_number":31,"context_line":"                OperationManager, cls).__new__("},{"line_number":32,"context_line":"                    cls, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_12f2c46f","line":29,"range":{"start_line":29,"start_character":15,"end_line":29,"end_character":31},"in_reply_to":"7a77a97e_7f892aca","updated":"2016-11-16 01:40:53.000000000","message":"Done","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"9fb72167821edb24d289753b68938cee1342a822","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            OperationManager._instance._init()"},{"line_number":34,"context_line":"        return OperationManager._instance"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _init(self):"},{"line_number":37,"context_line":"        all_cls \u003d operations.all_operations()"},{"line_number":38,"context_line":"        self._operation_cls_map \u003d {cls.OPERATION_TYPE: cls"},{"line_number":39,"context_line":"                                   for cls in all_cls}"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def do_init(self):"},{"line_number":42,"context_line":"        for t, cls in six.iteritems(self._operation_cls_map):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_bae590a9","line":39,"range":{"start_line":36,"start_character":0,"end_line":39,"end_character":54},"updated":"2016-11-15 09:34:58.000000000","message":"why not move this to `do_init`?","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"f31503756294c3eb2bbc5407ca6c2f8455ebef8f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            OperationManager._instance._init()"},{"line_number":34,"context_line":"        return OperationManager._instance"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _init(self):"},{"line_number":37,"context_line":"        all_cls \u003d operations.all_operations()"},{"line_number":38,"context_line":"        self._operation_cls_map \u003d {cls.OPERATION_TYPE: cls"},{"line_number":39,"context_line":"                                   for cls in all_cls}"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def do_init(self):"},{"line_number":42,"context_line":"        for t, cls in six.iteritems(self._operation_cls_map):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_9292549e","line":39,"range":{"start_line":36,"start_character":0,"end_line":39,"end_character":54},"in_reply_to":"7a77a97e_bae590a9","updated":"2016-11-16 01:07:27.000000000","message":"The instance of OperationManger is use at two places. One is at api/v1/scheduled_operation.py which is used for checking the definition of operation and doesn\u0027t need to invoke the \u0027do_init\u0027. The other one is at engine/executors where \u0027do_init\u0027 should be invoked.","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"}],"karbor/services/operationengine/user_trust_manager.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"9fb72167821edb24d289753b68938cee1342a822","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    _instance \u003d None"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def __new__(cls, *args, **kwargs):"},{"line_number":27,"context_line":"        if not UserTrustManager._instance:"},{"line_number":28,"context_line":"            UserTrustManager._instance \u003d super(UserTrustManager, cls).__new__("},{"line_number":29,"context_line":"                cls, *args, **kwargs)"},{"line_number":30,"context_line":"            UserTrustManager._instance._init()"},{"line_number":31,"context_line":"        return UserTrustManager._instance"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _init(self):"},{"line_number":34,"context_line":"        self._user_trust_map \u003d {}"},{"line_number":35,"context_line":"        self._skp \u003d karbor_keystone_plugin.KarborKeystonePlugin()"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _user_trust_key(self, user_id, project_id):"},{"line_number":38,"context_line":"        return \"%s_%s\" % (user_id, project_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_3ae8a07c","line":35,"range":{"start_line":27,"start_character":0,"end_line":35,"end_character":65},"updated":"2016-11-15 09:34:58.000000000","message":"ditto","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"17bb7675e60e01930ed5045c49de84a7e150187c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    _instance \u003d None"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def __new__(cls, *args, **kwargs):"},{"line_number":27,"context_line":"        if not UserTrustManager._instance:"},{"line_number":28,"context_line":"            UserTrustManager._instance \u003d super(UserTrustManager, cls).__new__("},{"line_number":29,"context_line":"                cls, *args, **kwargs)"},{"line_number":30,"context_line":"            UserTrustManager._instance._init()"},{"line_number":31,"context_line":"        return UserTrustManager._instance"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _init(self):"},{"line_number":34,"context_line":"        self._user_trust_map \u003d {}"},{"line_number":35,"context_line":"        self._skp \u003d karbor_keystone_plugin.KarborKeystonePlugin()"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _user_trust_key(self, user_id, project_id):"},{"line_number":38,"context_line":"        return \"%s_%s\" % (user_id, project_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_b2e670b2","line":35,"range":{"start_line":27,"start_character":0,"end_line":35,"end_character":65},"in_reply_to":"7a77a97e_3ae8a07c","updated":"2016-11-16 01:40:53.000000000","message":"Done","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"}],"karbor/tests/unit/operationengine/test_operation_manager.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"9fb72167821edb24d289753b68938cee1342a822","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.om \u003d operation_manager.OperationManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_singleton_operation_manager(self):"},{"line_number":47,"context_line":"        id1 \u003d id(self.om._operation_cls_map)"},{"line_number":48,"context_line":"        second \u003d operation_manager.OperationManager()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.assertEqual(id(self.om), id(second))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_daf96c4f","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":11},"updated":"2016-11-15 09:34:58.000000000","message":"id1 is not a descriptive variable name","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"17bb7675e60e01930ed5045c49de84a7e150187c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.om \u003d operation_manager.OperationManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_singleton_operation_manager(self):"},{"line_number":47,"context_line":"        id1 \u003d id(self.om._operation_cls_map)"},{"line_number":48,"context_line":"        second \u003d operation_manager.OperationManager()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.assertEqual(id(self.om), id(second))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_92697428","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":11},"in_reply_to":"7a77a97e_daf96c4f","updated":"2016-11-16 01:40:53.000000000","message":"Done","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"9fb72167821edb24d289753b68938cee1342a822","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_singleton_operation_manager(self):"},{"line_number":47,"context_line":"        id1 \u003d id(self.om._operation_cls_map)"},{"line_number":48,"context_line":"        second \u003d operation_manager.OperationManager()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.assertEqual(id(self.om), id(second))"},{"line_number":51,"context_line":"        self.assertEqual(id1, id(second._operation_cls_map))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_5aa47c56","line":48,"range":{"start_line":48,"start_character":8,"end_line":48,"end_character":14},"updated":"2016-11-15 09:34:58.000000000","message":"second is a confusing an not descriptive variable name","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"17bb7675e60e01930ed5045c49de84a7e150187c","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_singleton_operation_manager(self):"},{"line_number":47,"context_line":"        id1 \u003d id(self.om._operation_cls_map)"},{"line_number":48,"context_line":"        second \u003d operation_manager.OperationManager()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.assertEqual(id(self.om), id(second))"},{"line_number":51,"context_line":"        self.assertEqual(id1, id(second._operation_cls_map))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_b27830f4","line":48,"range":{"start_line":48,"start_character":8,"end_line":48,"end_character":14},"in_reply_to":"7a77a97e_5aa47c56","updated":"2016-11-16 01:40:53.000000000","message":"Done","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"}],"karbor/tests/unit/operationengine/test_user_trust_manager.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"9fb72167821edb24d289753b68938cee1342a822","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @mock.patch.object(karbor_keystone_plugin.KarborKeystonePlugin, \u0027_do_init\u0027)"},{"line_number":58,"context_line":"    def test_singleton_user_trust_manager(self, do_init):"},{"line_number":59,"context_line":"        id1 \u003d id(self._manager._user_trust_map)"},{"line_number":60,"context_line":"        second \u003d user_trust_manager.UserTrustManager()"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self.assertEqual(id(self._manager), id(second))"},{"line_number":63,"context_line":"        self.assertEqual(id1, id(second._user_trust_map))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_ba93d0f9","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":54},"updated":"2016-11-15 09:34:58.000000000","message":"ditto","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"17bb7675e60e01930ed5045c49de84a7e150187c","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @mock.patch.object(karbor_keystone_plugin.KarborKeystonePlugin, \u0027_do_init\u0027)"},{"line_number":58,"context_line":"    def test_singleton_user_trust_manager(self, do_init):"},{"line_number":59,"context_line":"        id1 \u003d id(self._manager._user_trust_map)"},{"line_number":60,"context_line":"        second \u003d user_trust_manager.UserTrustManager()"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self.assertEqual(id(self._manager), id(second))"},{"line_number":63,"context_line":"        self.assertEqual(id1, id(second._user_trust_map))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_92fed436","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":54},"in_reply_to":"7a77a97e_ba93d0f9","updated":"2016-11-16 01:40:53.000000000","message":"Done","commit_id":"32b35be80802d53e33e097b9b55e018a9bead7d4"}]}
