)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"6bde2cc8eb734aad57082b33ac71b3ec4ce72242","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"implement scheduled_operation_states table of db"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"implement scheduled_operation_states table of db,"},{"line_number":10,"context_line":"including the definition of table and the operation interface."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I7cad6009718fe9439237e2b51b47eeba02ef912d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a5de9d1_54a98e23","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":49},"updated":"2016-02-02 14:01:53.000000000","message":"No need to repeat. `Also includes ...` will do.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"25dad45b7c7dda5e98fe2b80c525b586d22850a3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"implement scheduled_operation_states table of db"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"implement scheduled_operation_states table of db,"},{"line_number":10,"context_line":"including the definition of table and the operation interface."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I7cad6009718fe9439237e2b51b47eeba02ef912d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5a5ae5dd_d4b58ad0","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":49},"in_reply_to":"7a5de9d1_54a98e23","updated":"2016-02-03 02:50:04.000000000","message":"got it, thanks.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"}],"smaug/db/api.py":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"6bde2cc8eb734aad57082b33ac71b3ec4ce72242","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    return IMPL.get_by_id(context, model, id, *args, **kwargs)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"###################"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def scheduled_operation_state_get(context, operation_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_f470bade","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":19},"updated":"2016-02-02 14:01:53.000000000","message":"What is this for?","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"25dad45b7c7dda5e98fe2b80c525b586d22850a3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    return IMPL.get_by_id(context, model, id, *args, **kwargs)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"###################"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"def scheduled_operation_state_get(context, operation_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_94d072cb","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":19},"in_reply_to":"7a5de9d1_f470bade","updated":"2016-02-03 02:50:04.000000000","message":"I leaned from nova. I think it is used to separate the different codes of functions.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"}],"smaug/db/sqlalchemy/api.py":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"6bde2cc8eb734aad57082b33ac71b3ec4ce72242","unresolved":false,"context_lines":[{"line_number":328,"context_line":"    return _GET_METHODS[model](context, id, *args, **kwargs)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"###################"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"def scheduled_operation_state_get(context, operation_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_576bd085","line":331,"range":{"start_line":331,"start_character":0,"end_line":331,"end_character":19},"updated":"2016-02-02 14:01:53.000000000","message":"What is this?","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"25dad45b7c7dda5e98fe2b80c525b586d22850a3","unresolved":false,"context_lines":[{"line_number":328,"context_line":"    return _GET_METHODS[model](context, id, *args, **kwargs)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"###################"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"def scheduled_operation_state_get(context, operation_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_5f3a13cf","line":331,"range":{"start_line":331,"start_character":0,"end_line":331,"end_character":19},"in_reply_to":"7a5de9d1_576bd085","updated":"2016-02-03 02:50:04.000000000","message":"also learned from nova.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"}],"smaug/db/sqlalchemy/migrate_repo/versions/001_smaug_init.py":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"6bde2cc8eb734aad57082b33ac71b3ec4ce72242","unresolved":false,"context_lines":[{"line_number":124,"context_line":"               nullable\u003dFalse),"},{"line_number":125,"context_line":"        Column(\u0027service_id\u0027, Integer, ForeignKey(\u0027services.id\u0027),"},{"line_number":126,"context_line":"               nullable\u003dFalse),"},{"line_number":127,"context_line":"        Column(\u0027state\u0027, String(length\u003d32), nullable\u003dFalse),"},{"line_number":128,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":129,"context_line":"    )"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_37be54d5","line":127,"range":{"start_line":127,"start_character":31,"end_line":127,"end_character":40},"updated":"2016-02-02 14:01:53.000000000","message":"Is 32 big enough? isn\u0027t the state a serialized object? Or is this just \"running\" and the persisted data attached to the operation is somewhere else.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"25dad45b7c7dda5e98fe2b80c525b586d22850a3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"               nullable\u003dFalse),"},{"line_number":125,"context_line":"        Column(\u0027service_id\u0027, Integer, ForeignKey(\u0027services.id\u0027),"},{"line_number":126,"context_line":"               nullable\u003dFalse),"},{"line_number":127,"context_line":"        Column(\u0027state\u0027, String(length\u003d32), nullable\u003dFalse),"},{"line_number":128,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027"},{"line_number":129,"context_line":"    )"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_bf39c743","line":127,"range":{"start_line":127,"start_character":31,"end_line":127,"end_character":40},"in_reply_to":"7a5de9d1_37be54d5","updated":"2016-02-03 02:50:04.000000000","message":"32 bits are enough. The values of \u0027state\u0027 are: \u0027init\u0027, \u0027registerd\u0027, \u0027triggered\u0027, \u0027running\u0027 and \u0027deleted\u0027. operation definition is stored in the scheduled_operations table, and the execution information of operation is stored in the scheduled_operation_logs table.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"2aceef242c54a4f7fd5a2cb896a860e42e2c655d","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    if migrate_engine.name \u003d\u003d \"mysql\":"},{"line_number":152,"context_line":"        tables \u003d [\"migrate_version\","},{"line_number":153,"context_line":"                  \"services\"]"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        migrate_engine.execute(\"SET foreign_key_checks \u003d 0\")"},{"line_number":156,"context_line":"        for table in tables:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_df7843fb","line":153,"range":{"start_line":153,"start_character":19,"end_line":153,"end_character":27},"updated":"2016-02-03 02:49:45.000000000","message":"Need put table name here to set CHARACTER SET of the table. The tables I commited have added in my patch. I will commited ASAP.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"27d30f4eec191b94dbacf9b667b89039d58338ed","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    if migrate_engine.name \u003d\u003d \"mysql\":"},{"line_number":152,"context_line":"        tables \u003d [\"migrate_version\","},{"line_number":153,"context_line":"                  \"services\"]"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        migrate_engine.execute(\"SET foreign_key_checks \u003d 0\")"},{"line_number":156,"context_line":"        for table in tables:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_baf795f4","line":153,"range":{"start_line":153,"start_character":19,"end_line":153,"end_character":27},"in_reply_to":"5a5ae5dd_df7843fb","updated":"2016-02-03 03:11:29.000000000","message":"got it. thanks.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"}],"smaug/tests/unit/db/test_models.py":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"6bde2cc8eb734aad57082b33ac71b3ec4ce72242","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                             state_ref[\u0027operation_id\u0027])"},{"line_number":121,"context_line":"        except exception.ScheduledOperationStateNotFound:"},{"line_number":122,"context_line":"            bingo \u003d 1"},{"line_number":123,"context_line":"        self.assertEqual(1, bingo)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        bingo \u003d 0"},{"line_number":126,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_178eb827","line":123,"range":{"start_line":123,"start_character":13,"end_line":123,"end_character":24},"updated":"2016-02-02 14:01:53.000000000","message":"Look at assertRaises","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"25dad45b7c7dda5e98fe2b80c525b586d22850a3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                             state_ref[\u0027operation_id\u0027])"},{"line_number":121,"context_line":"        except exception.ScheduledOperationStateNotFound:"},{"line_number":122,"context_line":"            bingo \u003d 1"},{"line_number":123,"context_line":"        self.assertEqual(1, bingo)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        bingo \u003d 0"},{"line_number":126,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_9f82cbc7","line":123,"range":{"start_line":123,"start_character":13,"end_line":123,"end_character":24},"in_reply_to":"7a5de9d1_178eb827","updated":"2016-02-03 02:50:04.000000000","message":"got it. thanks.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"6bde2cc8eb734aad57082b33ac71b3ec4ce72242","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                                {\"state\": \"success\"})"},{"line_number":144,"context_line":"        except exception.ScheduledOperationStateNotFound:"},{"line_number":145,"context_line":"            bingo \u003d 1"},{"line_number":146,"context_line":"        self.assertEqual(1, bingo)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_scheduled_operation_state_get(self):"},{"line_number":149,"context_line":"        state_ref \u003d self._create_scheduled_operation_state()"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_97a2a899","line":146,"range":{"start_line":146,"start_character":13,"end_line":146,"end_character":24},"updated":"2016-02-02 14:01:53.000000000","message":"ditto","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"25dad45b7c7dda5e98fe2b80c525b586d22850a3","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                                {\"state\": \"success\"})"},{"line_number":144,"context_line":"        except exception.ScheduledOperationStateNotFound:"},{"line_number":145,"context_line":"            bingo \u003d 1"},{"line_number":146,"context_line":"        self.assertEqual(1, bingo)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_scheduled_operation_state_get(self):"},{"line_number":149,"context_line":"        state_ref \u003d self._create_scheduled_operation_state()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_7f6a6f1c","line":146,"range":{"start_line":146,"start_character":13,"end_line":146,"end_character":24},"in_reply_to":"7a5de9d1_97a2a899","updated":"2016-02-03 02:50:04.000000000","message":"got it. thanks.","commit_id":"5f7a46cf90b7960a9a486072a4e1b1f6499678d9"}]}
