)]}'
{"devstack/plugin.sh":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"7c6638a7dcacabc127a851b6b8985f3a7f75fa48","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    fi"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    if [[ \"$1\" \u003d\u003d \"unstack\" ]]; then"},{"line_number":425,"context_line":"        cleanup_database"},{"line_number":426,"context_line":"        stop_df"},{"line_number":427,"context_line":"        stop_ovs_dp"},{"line_number":428,"context_line":"        cleanup_ovs"}],"source_content_type":"text/x-sh","patch_set":1,"id":"5aef4532_dfe18dd2","line":425,"updated":"2016-03-07 13:50:02.000000000","message":"Consider moving to the end. That way if one of the services decides to write to the db during or just before shutdown, the db stays clean.","commit_id":"8dca6061902e30a7f65d1105c0195c3e78ab812e"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"82f96f96ef8564ee21693a9005c5cd207ca22561","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    fi"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    if [[ \"$1\" \u003d\u003d \"unstack\" ]]; then"},{"line_number":425,"context_line":"        cleanup_database"},{"line_number":426,"context_line":"        stop_df"},{"line_number":427,"context_line":"        stop_ovs_dp"},{"line_number":428,"context_line":"        cleanup_ovs"}],"source_content_type":"text/x-sh","patch_set":1,"id":"5aef4532_a936a6e4","line":425,"in_reply_to":"5aef4532_dfe18dd2","updated":"2016-03-09 07:40:21.000000000","message":"Done","commit_id":"8dca6061902e30a7f65d1105c0195c3e78ab812e"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"6fd91942ed4c1bb3572d7d46c43d04315dd3eecf","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    fi"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    if [[ \"$1\" \u003d\u003d \"unstack\" ]]; then"},{"line_number":425,"context_line":"        stop_df"},{"line_number":426,"context_line":"        stop_ovs_dp"},{"line_number":427,"context_line":"        cleanup_ovs"},{"line_number":428,"context_line":"        if [[ \"$DF_PUB_SUB\" \u003d\u003d \"True\" ]]; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"3afc51ec_0f3ba0d2","line":425,"updated":"2016-03-13 15:02:33.000000000","message":"Can we club both stop and clean together?","commit_id":"2737b907e56ce45cd0a83103c0f1ab30962b1699"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"d9b1e69151a6445eba6a3c2be8284b1409f934a6","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    fi"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    if [[ \"$1\" \u003d\u003d \"unstack\" ]]; then"},{"line_number":425,"context_line":"        stop_df"},{"line_number":426,"context_line":"        stop_ovs_dp"},{"line_number":427,"context_line":"        cleanup_ovs"},{"line_number":428,"context_line":"        if [[ \"$DF_PUB_SUB\" \u003d\u003d \"True\" ]]; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"3afc51ec_d7b946cd","line":425,"in_reply_to":"3afc51ec_0f3ba0d2","updated":"2016-03-14 03:04:02.000000000","message":"Thanks for your reviewing. Is it necessary for this patch? Maybe we can find another chance to refactor the devstack script.","commit_id":"2737b907e56ce45cd0a83103c0f1ab30962b1699"}],"dragonflow/cli/df_db.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"6fd91942ed4c1bb3572d7d46c43d04315dd3eecf","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    except df_exceptions.DBKeyNotFound:"},{"line_number":104,"context_line":"        print(\u0027Table not found: \u0027 + table)"},{"line_number":105,"context_line":"        return"},{"line_number":106,"context_line":"    for key in keys:"},{"line_number":107,"context_line":"        db_driver.delete_key(table, key)"},{"line_number":108,"context_line":"    print(\u0027DF DB is cleaned up.\u0027)"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_8f4df074","line":106,"updated":"2016-03-13 15:02:33.000000000","message":"How about moving the for loop inside the try block?","commit_id":"2737b907e56ce45cd0a83103c0f1ab30962b1699"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"d9b1e69151a6445eba6a3c2be8284b1409f934a6","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    except df_exceptions.DBKeyNotFound:"},{"line_number":104,"context_line":"        print(\u0027Table not found: \u0027 + table)"},{"line_number":105,"context_line":"        return"},{"line_number":106,"context_line":"    for key in keys:"},{"line_number":107,"context_line":"        db_driver.delete_key(table, key)"},{"line_number":108,"context_line":"    print(\u0027DF DB is cleaned up.\u0027)"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_f72ba2e9","line":106,"in_reply_to":"3afc51ec_8f4df074","updated":"2016-03-14 03:04:02.000000000","message":"seems almost the same logic. if some table is not found, it will return and notify the user to check.","commit_id":"2737b907e56ce45cd0a83103c0f1ab30962b1699"}]}
