)]}'
{"ceilometer/cmd/storage.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7187db79395e85b3a5f6064ba656239ee836e61c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                     \"is disabled\"))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def db_clean_legacy():"},{"line_number":59,"context_line":"    service.prepare_service()"},{"line_number":60,"context_line":"    for purpose in [\u0027metering\u0027, \u0027event\u0027]:"},{"line_number":61,"context_line":"        url \u003d (getattr(cfg.CONF.database, \u0027%s_connection\u0027 % purpose) or"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_9cfffba9","line":58,"range":{"start_line":58,"start_character":4,"end_line":58,"end_character":22},"updated":"2016-05-24 08:01:15.000000000","message":"considering add a detailed warning and ask for type \u0027yes\u0027 to continue (to avoid accident typing or bash complition)? \n\noptional accept --force option to enable shell script work if possible\n\nor perfect if we support dump to a specified file then remove it so user will have a copy, but this is too far, so I think it just be optional","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"015b77e0770f312780b10df83ead79d651681fae","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                     \"is disabled\"))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def db_clean_legacy():"},{"line_number":59,"context_line":"    service.prepare_service()"},{"line_number":60,"context_line":"    for purpose in [\u0027metering\u0027, \u0027event\u0027]:"},{"line_number":61,"context_line":"        url \u003d (getattr(cfg.CONF.database, \u0027%s_connection\u0027 % purpose) or"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_f780e04b","line":58,"range":{"start_line":58,"start_character":4,"end_line":58,"end_character":22},"in_reply_to":"bab6814e_9cfffba9","updated":"2016-05-24 08:22:15.000000000","message":"thanks for this suggestion, will add it. may the --force only needed when the tables are not empty ?\n\nbut the db dump is more like OPS works.","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7187db79395e85b3a5f6064ba656239ee836e61c","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def db_clean_legacy():"},{"line_number":59,"context_line":"    service.prepare_service()"},{"line_number":60,"context_line":"    for purpose in [\u0027metering\u0027, \u0027event\u0027]:"},{"line_number":61,"context_line":"        url \u003d (getattr(cfg.CONF.database, \u0027%s_connection\u0027 % purpose) or"},{"line_number":62,"context_line":"               cfg.CONF.database.connection)"},{"line_number":63,"context_line":"        connection_scheme \u003d urlparse.urlparse(url).scheme"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_5c3d93ba","line":60,"range":{"start_line":60,"start_character":32,"end_line":60,"end_character":39},"updated":"2016-05-24 08:01:15.000000000","message":"for now, we only clean alarm table, so the event scope is not needed","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"015b77e0770f312780b10df83ead79d651681fae","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def db_clean_legacy():"},{"line_number":59,"context_line":"    service.prepare_service()"},{"line_number":60,"context_line":"    for purpose in [\u0027metering\u0027, \u0027event\u0027]:"},{"line_number":61,"context_line":"        url \u003d (getattr(cfg.CONF.database, \u0027%s_connection\u0027 % purpose) or"},{"line_number":62,"context_line":"               cfg.CONF.database.connection)"},{"line_number":63,"context_line":"        connection_scheme \u003d urlparse.urlparse(url).scheme"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_d78b1c1d","line":60,"range":{"start_line":60,"start_character":32,"end_line":60,"end_character":39},"in_reply_to":"bab6814e_5c3d93ba","updated":"2016-05-24 08:22:15.000000000","message":"if we use sql backend, the dbsync command will also run all the migration scripts for event connection, if we configured two different sql connection url for *event* and *metering* data, the event storage upgrade will also create all the tables, so we need to consider event scop. (there is another problem, if we configured two different sql urls for event and metering, the dbsync will also create \"meter\", \"samples\", \"resource\"... tables for event storage, but I am not sure it is worth to fix since we are starting to port panko :) )","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7187db79395e85b3a5f6064ba656239ee836e61c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        url \u003d (getattr(cfg.CONF.database, \u0027%s_connection\u0027 % purpose) or"},{"line_number":62,"context_line":"               cfg.CONF.database.connection)"},{"line_number":63,"context_line":"        connection_scheme \u003d urlparse.urlparse(url).scheme"},{"line_number":64,"context_line":"        if connection_scheme not in (\u0027mysql\u0027, \u0027mysql+pymysql\u0027, \u0027postgresql\u0027,"},{"line_number":65,"context_line":"                                     \u0027sqlite\u0027):"},{"line_number":66,"context_line":"            LOG.info(_LI(\"Only SQL backends need to clean legacy alarm tables,\""},{"line_number":67,"context_line":"                         \" skipping with connection: %s\"), url)"},{"line_number":68,"context_line":"            continue"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_5cabd3d6","line":65,"range":{"start_line":64,"start_character":8,"end_line":65,"end_character":47},"updated":"2016-05-24 08:01:15.000000000","message":"no, alarm collection in mongodb will not expire automatically, and if alarm history ttl is not set, it lasts as well","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"015b77e0770f312780b10df83ead79d651681fae","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        url \u003d (getattr(cfg.CONF.database, \u0027%s_connection\u0027 % purpose) or"},{"line_number":62,"context_line":"               cfg.CONF.database.connection)"},{"line_number":63,"context_line":"        connection_scheme \u003d urlparse.urlparse(url).scheme"},{"line_number":64,"context_line":"        if connection_scheme not in (\u0027mysql\u0027, \u0027mysql+pymysql\u0027, \u0027postgresql\u0027,"},{"line_number":65,"context_line":"                                     \u0027sqlite\u0027):"},{"line_number":66,"context_line":"            LOG.info(_LI(\"Only SQL backends need to clean legacy alarm tables,\""},{"line_number":67,"context_line":"                         \" skipping with connection: %s\"), url)"},{"line_number":68,"context_line":"            continue"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_179da459","line":65,"range":{"start_line":64,"start_character":8,"end_line":65,"end_character":47},"in_reply_to":"bab6814e_5cabd3d6","updated":"2016-05-24 08:22:15.000000000","message":"I only considered the master branch upgrade code... my bad, will update.","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7187db79395e85b3a5f6064ba656239ee836e61c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bab6814e_bcf0ffca","line":80,"updated":"2016-05-24 08:01:15.000000000","message":"add a messaging to indicate job finished ?","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"015b77e0770f312780b10df83ead79d651681fae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bab6814e_b7ac988d","line":80,"in_reply_to":"bab6814e_bcf0ffca","updated":"2016-05-24 08:22:15.000000000","message":"will do it.","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b7703b0d138a015f4f2d3542329a03b3ca938918","unresolved":false,"context_lines":[{"line_number":58,"context_line":"# NOTE(liusheng): need to modify this function when splitting out the event in"},{"line_number":59,"context_line":"# Ceilometer"},{"line_number":60,"context_line":"def db_clean_legacy():"},{"line_number":61,"context_line":"    confirm \u003d raw_input(\"Do you really want to drop legacy db tables ?, \""},{"line_number":62,"context_line":"                        \"please type \u0027yes\u0027 to confirm: \")"},{"line_number":63,"context_line":"    if confirm !\u003d \u0027yes\u0027:"},{"line_number":64,"context_line":"        print(\"DB legacy cleanup aborted!\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_71f9ab4d","line":61,"updated":"2016-05-27 10:28:29.000000000","message":"There\u0027s nothing indicating that legacy includes \"event\". It might not be legacy at all for people using Ceilometer with only one DB.","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"a89176abd6d6a8e9d9216182cf311c4eac50df08","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    service.prepare_service()"},{"line_number":67,"context_line":"    for purpose in [\u0027metering\u0027, \u0027event\u0027]:"},{"line_number":68,"context_line":"        LOG.info(_LI(\u0027Start to drop alarm and alarm history tables in %s\u0027"},{"line_number":69,"context_line":"                     \u0027 backend\u0027),  purpose)"},{"line_number":70,"context_line":"        url \u003d (getattr(cfg.CONF.database, \u0027%s_connection\u0027 % purpose) or"},{"line_number":71,"context_line":"               cfg.CONF.database.connection)"},{"line_number":72,"context_line":"        connection_scheme \u003d urlparse.urlparse(url).scheme"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_267fbdab","line":69,"range":{"start_line":69,"start_character":22,"end_line":69,"end_character":23},"updated":"2016-05-29 01:45:39.000000000","message":"You should unify that all the continuing lines\u0027 blank space left at the end of the previous line.\nGood lines (eg. Line 54, Line 61)\nBad Lines (eg. Line 82, Line 118 )","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"a89176abd6d6a8e9d9216182cf311c4eac50df08","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                alarm \u003d sa.Table(\u0027alarm\u0027, meta, autoload\u003dTrue)"},{"line_number":80,"context_line":"                alarm.drop()"},{"line_number":81,"context_line":"                LOG.info(_LI(\"Legacy alarm table of SQL backend has been\""},{"line_number":82,"context_line":"                             \" dropped.\"))"},{"line_number":83,"context_line":"            else:"},{"line_number":84,"context_line":"                LOG.info(_LI(\u0027ALarm table not exist.\u0027))"},{"line_number":85,"context_line":"            if engine.has_table(\u0027alarm_history\u0027):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_864ae981","line":82,"range":{"start_line":82,"start_character":30,"end_line":82,"end_character":31},"updated":"2016-05-29 01:45:39.000000000","message":"ditto","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b7703b0d138a015f4f2d3542329a03b3ca938918","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                LOG.info(_LI(\"Legacy alarm table of SQL backend has been\""},{"line_number":82,"context_line":"                             \" dropped.\"))"},{"line_number":83,"context_line":"            else:"},{"line_number":84,"context_line":"                LOG.info(_LI(\u0027ALarm table not exist.\u0027))"},{"line_number":85,"context_line":"            if engine.has_table(\u0027alarm_history\u0027):"},{"line_number":86,"context_line":"                alarm_history \u003d sa.Table(\u0027alarm_history\u0027, meta, autoload\u003dTrue)"},{"line_number":87,"context_line":"                alarm_history.drop()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_d15fb773","line":84,"range":{"start_line":84,"start_character":30,"end_line":84,"end_character":35},"updated":"2016-05-27 10:28:29.000000000","message":"Alarm","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b7703b0d138a015f4f2d3542329a03b3ca938918","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                LOG.info(_LI(\"Legacy alarm_history table of SQL has been \""},{"line_number":89,"context_line":"                             \"dropped.\"))"},{"line_number":90,"context_line":"            else:"},{"line_number":91,"context_line":"                LOG.info(_LI(\u0027ALarm history table not exist.\u0027))"},{"line_number":92,"context_line":"        if connection_scheme \u003d\u003d \u0027hbase\u0027:"},{"line_number":93,"context_line":"            with conn.conn_pool.connection() as h_conn:"},{"line_number":94,"context_line":"                tables \u003d h_conn.tables()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_d1c69715","line":91,"range":{"start_line":91,"start_character":30,"end_line":91,"end_character":35},"updated":"2016-05-27 10:28:29.000000000","message":"Alarm","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b7703b0d138a015f4f2d3542329a03b3ca938918","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                        LOG.info(_LI(\"Legacy alarm table of Hbase backend \""},{"line_number":100,"context_line":"                                     \"has been dropped.\"))"},{"line_number":101,"context_line":"                    else:"},{"line_number":102,"context_line":"                        LOG.info(_LI(\u0027ALarm table not exist.\u0027))"},{"line_number":103,"context_line":"                    if \u0027alarm_h\u0027 in tables:"},{"line_number":104,"context_line":"                        h_conn.disable_table(\u0027alarm_h\u0027)"},{"line_number":105,"context_line":"                        h_conn.delete_table(\u0027alarm_h\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_11d13fce","line":102,"range":{"start_line":102,"start_character":38,"end_line":102,"end_character":43},"updated":"2016-05-27 10:28:29.000000000","message":"Alarm","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"a89176abd6d6a8e9d9216182cf311c4eac50df08","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            if \u0027alarm\u0027 in conn.db.conn.collection_names():"},{"line_number":116,"context_line":"                conn.db.conn.drop_collection(\u0027alarm\u0027)"},{"line_number":117,"context_line":"                LOG.info(_LI(\"Legacy alarm table of Hbase backend has been\""},{"line_number":118,"context_line":"                             \" dropped.\"))"},{"line_number":119,"context_line":"            else:"},{"line_number":120,"context_line":"                LOG.info(_LI(\u0027ALarm table not exist.\u0027))"},{"line_number":121,"context_line":"            if \u0027alarm_history\u0027 in conn.db.conn.collection_names():"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_664f0593","line":118,"range":{"start_line":118,"start_character":30,"end_line":118,"end_character":31},"updated":"2016-05-29 01:45:39.000000000","message":"ditto","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b7703b0d138a015f4f2d3542329a03b3ca938918","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                LOG.info(_LI(\"Legacy alarm table of Hbase backend has been\""},{"line_number":118,"context_line":"                             \" dropped.\"))"},{"line_number":119,"context_line":"            else:"},{"line_number":120,"context_line":"                LOG.info(_LI(\u0027ALarm table not exist.\u0027))"},{"line_number":121,"context_line":"            if \u0027alarm_history\u0027 in conn.db.conn.collection_names():"},{"line_number":122,"context_line":"                conn.db.conn.drop_collection(\u0027alarm_history\u0027)"},{"line_number":123,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_3151e363","line":120,"range":{"start_line":120,"start_character":30,"end_line":120,"end_character":35},"updated":"2016-05-27 10:28:29.000000000","message":"Alarm","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b7703b0d138a015f4f2d3542329a03b3ca938918","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            if \u0027alarm_history\u0027 in conn.db.conn.collection_names():"},{"line_number":122,"context_line":"                conn.db.conn.drop_collection(\u0027alarm_history\u0027)"},{"line_number":123,"context_line":"            else:"},{"line_number":124,"context_line":"                LOG.info(_LI(\u0027ALarm history table not exist.\u0027))"},{"line_number":125,"context_line":"    LOG.info(\u0027End legacy alarm tables cleanup.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_714b6bb1","line":124,"range":{"start_line":124,"start_character":30,"end_line":124,"end_character":35},"updated":"2016-05-27 10:28:29.000000000","message":"Alarm","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b7703b0d138a015f4f2d3542329a03b3ca938918","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                conn.db.conn.drop_collection(\u0027alarm_history\u0027)"},{"line_number":123,"context_line":"            else:"},{"line_number":124,"context_line":"                LOG.info(_LI(\u0027ALarm history table not exist.\u0027))"},{"line_number":125,"context_line":"    LOG.info(\u0027End legacy alarm tables cleanup.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_11e81f7c","line":125,"updated":"2016-05-27 10:28:29.000000000","message":"\"Legacy alarm tables cleanup done\"","commit_id":"f6d14beda3bb18b95ee0939d68c1bbf4fa49b685"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b8c9e269fa30865732796d60c5b2049aa0019507","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def db_clean_legacy():"},{"line_number":59,"context_line":"    confirm \u003d raw_input(\"Do you really want to drop legacy db tables ?, \""},{"line_number":60,"context_line":"                        \"please type \u0027yes\u0027 to confirm: \")"},{"line_number":61,"context_line":"    if confirm !\u003d \u0027yes\u0027:"},{"line_number":62,"context_line":"        print(\"DB legacy cleanup aborted!\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_f3b79437","line":59,"range":{"start_line":59,"start_character":68,"end_line":59,"end_character":69},"updated":"2016-06-14 13:19:35.000000000","message":"extra space","commit_id":"c2b9ec49a87438d5cc1802a0d9f6257bc9f1fcfe"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"66953201cccf1292aa5140d924af000b98509309","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def db_clean_legacy():"},{"line_number":59,"context_line":"    confirm \u003d raw_input(\"Do you really want to drop legacy db tables ?, \""},{"line_number":60,"context_line":"                        \"please type \u0027yes\u0027 to confirm: \")"},{"line_number":61,"context_line":"    if confirm !\u003d \u0027yes\u0027:"},{"line_number":62,"context_line":"        print(\"DB legacy cleanup aborted!\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_b98da67d","line":59,"range":{"start_line":59,"start_character":68,"end_line":59,"end_character":69},"in_reply_to":"7aa08908_f3b79437","updated":"2016-06-22 02:03:07.000000000","message":"The prompt here should have the information about db connection configurations(i.e. CONF.database.metering_connection) or maybe we should move this prompt into the for loop below, so the admin know where the alarm tables will be deleted.","commit_id":"c2b9ec49a87438d5cc1802a0d9f6257bc9f1fcfe"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b8c9e269fa30865732796d60c5b2049aa0019507","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def db_clean_legacy():"},{"line_number":59,"context_line":"    confirm \u003d raw_input(\"Do you really want to drop legacy db tables ?, \""},{"line_number":60,"context_line":"                        \"please type \u0027yes\u0027 to confirm: \")"},{"line_number":61,"context_line":"    if confirm !\u003d \u0027yes\u0027:"},{"line_number":62,"context_line":"        print(\"DB legacy cleanup aborted!\")"},{"line_number":63,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_33ebdc14","line":60,"updated":"2016-06-14 13:19:35.000000000","message":"Can you add something like\n\n\"THIS WILL DESTROY DATA DEFINITELY\" because I don\u0027t want anyone to complain lol","commit_id":"c2b9ec49a87438d5cc1802a0d9f6257bc9f1fcfe"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"66953201cccf1292aa5140d924af000b98509309","unresolved":false,"context_lines":[{"line_number":58,"context_line":"def db_clean_legacy():"},{"line_number":59,"context_line":"    confirm \u003d raw_input(\"Do you really want to drop legacy db tables ?, \""},{"line_number":60,"context_line":"                        \"please type \u0027yes\u0027 to confirm: \")"},{"line_number":61,"context_line":"    if confirm !\u003d \u0027yes\u0027:"},{"line_number":62,"context_line":"        print(\"DB legacy cleanup aborted!\")"},{"line_number":63,"context_line":"        return"},{"line_number":64,"context_line":"    service.prepare_service()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_be4bccaf","line":61,"range":{"start_line":61,"start_character":22,"end_line":61,"end_character":24},"updated":"2016-06-22 02:03:07.000000000","message":"Let\u0027s follow the convention to use capitalized \u0027YES\u0027 for such data loss operation.","commit_id":"c2b9ec49a87438d5cc1802a0d9f6257bc9f1fcfe"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b8c9e269fa30865732796d60c5b2049aa0019507","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                             \"dropped.\"))"},{"line_number":88,"context_line":"            else:"},{"line_number":89,"context_line":"                LOG.info(_LI(\u0027Alarm history table not exist.\u0027))"},{"line_number":90,"context_line":"        if connection_scheme \u003d\u003d \u0027hbase\u0027:"},{"line_number":91,"context_line":"            with conn.conn_pool.connection() as h_conn:"},{"line_number":92,"context_line":"                tables \u003d h_conn.tables()"},{"line_number":93,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_536f88c3","line":90,"updated":"2016-06-14 13:19:35.000000000","message":"elif","commit_id":"c2b9ec49a87438d5cc1802a0d9f6257bc9f1fcfe"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b8c9e269fa30865732796d60c5b2049aa0019507","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                    LOG.error(_LE(\u0027Error occurred when drop alarm tables of \u0027"},{"line_number":110,"context_line":"                                  \u0027Hbase, %s\u0027), str(e))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        if connection_scheme \u003d\u003d \u0027mongodb\u0027:"},{"line_number":113,"context_line":"            if \u0027alarm\u0027 in conn.db.conn.collection_names():"},{"line_number":114,"context_line":"                conn.db.conn.drop_collection(\u0027alarm\u0027)"},{"line_number":115,"context_line":"                LOG.info(_LI(\"Legacy alarm table of Hbase backend has been \""}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_936570e2","line":112,"updated":"2016-06-14 13:19:35.000000000","message":"elif","commit_id":"c2b9ec49a87438d5cc1802a0d9f6257bc9f1fcfe"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"3b129cef4010ed982f6bc53055f6f72532544e12","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        if connection_scheme \u003d\u003d \u0027mongodb\u0027:"},{"line_number":113,"context_line":"            if \u0027alarm\u0027 in conn.db.conn.collection_names():"},{"line_number":114,"context_line":"                conn.db.conn.drop_collection(\u0027alarm\u0027)"},{"line_number":115,"context_line":"                LOG.info(_LI(\"Legacy alarm table of Hbase backend has been \""},{"line_number":116,"context_line":"                             \"dropped.\"))"},{"line_number":117,"context_line":"            else:"},{"line_number":118,"context_line":"                LOG.info(_LI(\u0027Alarm table not exist.\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_5da80778","line":115,"range":{"start_line":115,"start_character":52,"end_line":115,"end_character":65},"updated":"2016-06-15 09:07:45.000000000","message":"Are you sure Hbase?","commit_id":"c2b9ec49a87438d5cc1802a0d9f6257bc9f1fcfe"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"3b129cef4010ed982f6bc53055f6f72532544e12","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            else:"},{"line_number":118,"context_line":"                LOG.info(_LI(\u0027Alarm table not exist.\u0027))"},{"line_number":119,"context_line":"            if \u0027alarm_history\u0027 in conn.db.conn.collection_names():"},{"line_number":120,"context_line":"                conn.db.conn.drop_collection(\u0027alarm_history\u0027)"},{"line_number":121,"context_line":"            else:"},{"line_number":122,"context_line":"                LOG.info(_LI(\u0027Alarm history table not exist.\u0027))"},{"line_number":123,"context_line":"    LOG.info(\u0027Legacy alarm tables cleanup done.\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_1d215ffd","line":120,"updated":"2016-06-15 09:07:45.000000000","message":"Could you add a LOG.info after this drop operator.","commit_id":"c2b9ec49a87438d5cc1802a0d9f6257bc9f1fcfe"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"3b129cef4010ed982f6bc53055f6f72532544e12","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                                  \u0027Hbase, %s\u0027), str(e))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        if connection_scheme \u003d\u003d \u0027mongodb\u0027:"},{"line_number":113,"context_line":"            if \u0027alarm\u0027 in conn.db.conn.collection_names():"},{"line_number":114,"context_line":"                conn.db.conn.drop_collection(\u0027alarm\u0027)"},{"line_number":115,"context_line":"                LOG.info(_LI(\"Legacy alarm table of Hbase backend has been \""},{"line_number":116,"context_line":"                             \"dropped.\"))"},{"line_number":117,"context_line":"            else:"},{"line_number":118,"context_line":"                LOG.info(_LI(\u0027Alarm table not exist.\u0027))"},{"line_number":119,"context_line":"            if \u0027alarm_history\u0027 in conn.db.conn.collection_names():"},{"line_number":120,"context_line":"                conn.db.conn.drop_collection(\u0027alarm_history\u0027)"},{"line_number":121,"context_line":"            else:"},{"line_number":122,"context_line":"                LOG.info(_LI(\u0027Alarm history table not exist.\u0027))"},{"line_number":123,"context_line":"    LOG.info(\u0027Legacy alarm tables cleanup done.\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_081e3b5f","line":122,"range":{"start_line":113,"start_character":12,"end_line":122,"end_character":63},"updated":"2016-06-15 09:07:45.000000000","message":"If you use a \"for syntax\", it will more refining.\n\nFYI.  \nfor table_name in [\u0027alarm\u0027, \u0027alarm_history\u0027]:\n    if table_name in conn.db.conn.collection_names():\n         conn.db.conn.drop_collection(table_name)\n         LOG.info(....)\n     else:\n         LOG.info(....)\n\nThank you. :)","commit_id":"c2b9ec49a87438d5cc1802a0d9f6257bc9f1fcfe"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8b8a15242554a7d9a00f6a26da547201ccc787ce","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        url \u003d (getattr(cfg.CONF.database, \u0027%s_connection\u0027 % purpose) or"},{"line_number":67,"context_line":"               cfg.CONF.database.connection)"},{"line_number":68,"context_line":"        LOG.info(_LI(\u0027Start to drop alarm and alarm history tables in \u0027"},{"line_number":69,"context_line":"                     \u0027%(purpose)s backend: %(url)s\u0027),"},{"line_number":70,"context_line":"                 {\u0027purpose\u0027: purpose, \u0027url\u0027: url})"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        connection_scheme \u003d urlparse.urlparse(url).scheme"}],"source_content_type":"text/x-python","patch_set":9,"id":"3aaa91ec_9d42010f","line":69,"range":{"start_line":69,"start_character":43,"end_line":69,"end_character":51},"updated":"2016-06-23 11:27:16.000000000","message":"I\u0027m wondering if it is good to print plain text password in screen:\n\nINFO ceilometer.cmd.storage [-] Start to drop alarm and alarm history tables in metering backend: mysql+pymysql://root:admin@127.0.0.1/ceilometer?charset\u003dutf8\n\nI think url.hostname will be enough, or if you want to be perfect, use urlunparse and mock the password","commit_id":"73c7065844121c31c6f0e75160f65746e6e50e12"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"f5d780d06489cec85ee9cada8a6fb5fc40a6d79c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        url \u003d (getattr(cfg.CONF.database, \u0027%s_connection\u0027 % purpose) or"},{"line_number":67,"context_line":"               cfg.CONF.database.connection)"},{"line_number":68,"context_line":"        LOG.info(_LI(\u0027Start to drop alarm and alarm history tables in \u0027"},{"line_number":69,"context_line":"                     \u0027%(purpose)s backend: %(url)s\u0027),"},{"line_number":70,"context_line":"                 {\u0027purpose\u0027: purpose, \u0027url\u0027: url})"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        connection_scheme \u003d urlparse.urlparse(url).scheme"}],"source_content_type":"text/x-python","patch_set":9,"id":"3aaa91ec_bab9947b","line":69,"range":{"start_line":69,"start_character":43,"end_line":69,"end_character":51},"in_reply_to":"3aaa91ec_9d42010f","updated":"2016-06-24 01:42:16.000000000","message":"oslo.config.OptConfig has a secret param, but it seems that can not be used here. Yes, maybe we should urlparse and urlunparse to sanitize the password part in the url","commit_id":"73c7065844121c31c6f0e75160f65746e6e50e12"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8b8a15242554a7d9a00f6a26da547201ccc787ce","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                                     table_name_mapping[table_name])"},{"line_number":103,"context_line":"                    except Exception as e:"},{"line_number":104,"context_line":"                        LOG.error(_LE(\u0027Error occurred when drop alarm tables \u0027"},{"line_number":105,"context_line":"                                      \u0027of Hbase, %s\u0027), str(e))"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        elif connection_scheme \u003d\u003d \u0027mongodb\u0027:"},{"line_number":108,"context_line":"            for table_name in [\u0027alarm\u0027, \u0027alarm_history\u0027]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3aaa91ec_da4c8f44","line":105,"range":{"start_line":105,"start_character":55,"end_line":105,"end_character":58},"updated":"2016-06-23 11:27:16.000000000","message":"no need to use it","commit_id":"73c7065844121c31c6f0e75160f65746e6e50e12"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"725d82fe9cf490bfcdb82d62c2ddf3978a88ad74","unresolved":false,"context_lines":[{"line_number":57,"context_line":"def db_clean_legacy():"},{"line_number":58,"context_line":"    confirm \u003d raw_input(\"Do you really want to drop the legacy alarm tables? \""},{"line_number":59,"context_line":"                        \"This will destroy data definitely if it exist. \""},{"line_number":60,"context_line":"                        \"please type \u0027YES\u0027 to confirm: \")"},{"line_number":61,"context_line":"    if confirm !\u003d \u0027YES\u0027:"},{"line_number":62,"context_line":"        print(\"DB legacy cleanup aborted!\")"},{"line_number":63,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_a5c60614","line":60,"range":{"start_line":60,"start_character":25,"end_line":60,"end_character":26},"updated":"2016-06-28 07:45:13.000000000","message":"I would write it with capital P, since it is right after a full stop.","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c44e027364d797c8ce7ca61f4e3adb763b040b05","unresolved":false,"context_lines":[{"line_number":57,"context_line":"def db_clean_legacy():"},{"line_number":58,"context_line":"    confirm \u003d raw_input(\"Do you really want to drop the legacy alarm tables? \""},{"line_number":59,"context_line":"                        \"This will destroy data definitely if it exist. \""},{"line_number":60,"context_line":"                        \"please type \u0027YES\u0027 to confirm: \")"},{"line_number":61,"context_line":"    if confirm !\u003d \u0027YES\u0027:"},{"line_number":62,"context_line":"        print(\"DB legacy cleanup aborted!\")"},{"line_number":63,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_1d7d7b1c","line":60,"range":{"start_line":60,"start_character":25,"end_line":60,"end_character":26},"in_reply_to":"3aaa91ec_a5c60614","updated":"2016-06-29 01:07:31.000000000","message":"Done","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"725d82fe9cf490bfcdb82d62c2ddf3978a88ad74","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            masked_url \u003d urlparse.urlunparse(masked_url)"},{"line_number":74,"context_line":"        else:"},{"line_number":75,"context_line":"            masked_url \u003d url"},{"line_number":76,"context_line":"        LOG.info(_LI(\u0027Start to drop alarm and alarm history tables in \u0027"},{"line_number":77,"context_line":"                     \u0027%(purpose)s backend: %(url)s\u0027), {"},{"line_number":78,"context_line":"            \u0027purpose\u0027: purpose, \u0027url\u0027: masked_url})"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_eb561f05","line":76,"range":{"start_line":76,"start_character":22,"end_line":76,"end_character":35},"updated":"2016-06-28 07:45:13.000000000","message":"For me \"Starting to drop\" or \"Dropping\" sounds more natural.","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c44e027364d797c8ce7ca61f4e3adb763b040b05","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            masked_url \u003d urlparse.urlunparse(masked_url)"},{"line_number":74,"context_line":"        else:"},{"line_number":75,"context_line":"            masked_url \u003d url"},{"line_number":76,"context_line":"        LOG.info(_LI(\u0027Start to drop alarm and alarm history tables in \u0027"},{"line_number":77,"context_line":"                     \u0027%(purpose)s backend: %(url)s\u0027), {"},{"line_number":78,"context_line":"            \u0027purpose\u0027: purpose, \u0027url\u0027: masked_url})"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_5d77033a","line":76,"range":{"start_line":76,"start_character":22,"end_line":76,"end_character":35},"in_reply_to":"3aaa91ec_eb561f05","updated":"2016-06-29 01:07:31.000000000","message":"Done","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"725d82fe9cf490bfcdb82d62c2ddf3978a88ad74","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    LOG.info(_LI(\"Legacy %s table of SQL backend has been \""},{"line_number":91,"context_line":"                                 \"dropped.\"), table_name)"},{"line_number":92,"context_line":"                else:"},{"line_number":93,"context_line":"                    LOG.info(_LI(\u0027%s table not exist.\u0027), table_name)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        elif connection_scheme \u003d\u003d \u0027hbase\u0027:"},{"line_number":96,"context_line":"            with conn.conn_pool.connection() as h_conn:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_2502163f","line":93,"range":{"start_line":93,"start_character":43,"end_line":93,"end_character":46},"updated":"2016-06-28 07:45:13.000000000","message":"does not","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"725d82fe9cf490bfcdb82d62c2ddf3978a88ad74","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                         \"has been dropped.\"),"},{"line_number":107,"context_line":"                                     table_name_mapping[table_name])"},{"line_number":108,"context_line":"                        else:"},{"line_number":109,"context_line":"                            LOG.info(_LI(\u0027%s table not exist.\u0027),"},{"line_number":110,"context_line":"                                     table_name_mapping[table_name])"},{"line_number":111,"context_line":"                    except Exception as e:"},{"line_number":112,"context_line":"                        LOG.error(_LE(\u0027Error occurred when drop alarm tables \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_2b966794","line":109,"range":{"start_line":109,"start_character":51,"end_line":109,"end_character":54},"updated":"2016-06-28 07:45:13.000000000","message":"does not","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c44e027364d797c8ce7ca61f4e3adb763b040b05","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                         \"has been dropped.\"),"},{"line_number":107,"context_line":"                                     table_name_mapping[table_name])"},{"line_number":108,"context_line":"                        else:"},{"line_number":109,"context_line":"                            LOG.info(_LI(\u0027%s table not exist.\u0027),"},{"line_number":110,"context_line":"                                     table_name_mapping[table_name])"},{"line_number":111,"context_line":"                    except Exception as e:"},{"line_number":112,"context_line":"                        LOG.error(_LE(\u0027Error occurred when drop alarm tables \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_3d72f749","line":109,"range":{"start_line":109,"start_character":51,"end_line":109,"end_character":54},"in_reply_to":"3aaa91ec_2b966794","updated":"2016-06-29 01:07:31.000000000","message":"Done","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"725d82fe9cf490bfcdb82d62c2ddf3978a88ad74","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                            LOG.info(_LI(\u0027%s table not exist.\u0027),"},{"line_number":110,"context_line":"                                     table_name_mapping[table_name])"},{"line_number":111,"context_line":"                    except Exception as e:"},{"line_number":112,"context_line":"                        LOG.error(_LE(\u0027Error occurred when drop alarm tables \u0027"},{"line_number":113,"context_line":"                                      \u0027of Hbase, %s\u0027), e)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        elif connection_scheme \u003d\u003d \u0027mongodb\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_6bb98f2e","line":112,"range":{"start_line":112,"start_character":54,"end_line":112,"end_character":63},"updated":"2016-06-28 07:45:13.000000000","message":"while dropping","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c44e027364d797c8ce7ca61f4e3adb763b040b05","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                            LOG.info(_LI(\u0027%s table not exist.\u0027),"},{"line_number":110,"context_line":"                                     table_name_mapping[table_name])"},{"line_number":111,"context_line":"                    except Exception as e:"},{"line_number":112,"context_line":"                        LOG.error(_LE(\u0027Error occurred when drop alarm tables \u0027"},{"line_number":113,"context_line":"                                      \u0027of Hbase, %s\u0027), e)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        elif connection_scheme \u003d\u003d \u0027mongodb\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_7d92bf4c","line":112,"range":{"start_line":112,"start_character":54,"end_line":112,"end_character":63},"in_reply_to":"3aaa91ec_6bb98f2e","updated":"2016-06-29 01:07:31.000000000","message":"Done","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"725d82fe9cf490bfcdb82d62c2ddf3978a88ad74","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                    LOG.info(_LI(\"Legacy %s table of Mongodb backend has been \""},{"line_number":120,"context_line":"                                 \"dropped.\"), table_name)"},{"line_number":121,"context_line":"                else:"},{"line_number":122,"context_line":"                    LOG.info(_LI(\u0027%s table not exist.\u0027), table_name)"},{"line_number":123,"context_line":"    LOG.info(\u0027Legacy alarm tables cleanup done.\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_8b867b63","line":122,"range":{"start_line":122,"start_character":43,"end_line":122,"end_character":46},"updated":"2016-06-28 07:45:13.000000000","message":"does not","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c44e027364d797c8ce7ca61f4e3adb763b040b05","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                    LOG.info(_LI(\"Legacy %s table of Mongodb backend has been \""},{"line_number":120,"context_line":"                                 \"dropped.\"), table_name)"},{"line_number":121,"context_line":"                else:"},{"line_number":122,"context_line":"                    LOG.info(_LI(\u0027%s table not exist.\u0027), table_name)"},{"line_number":123,"context_line":"    LOG.info(\u0027Legacy alarm tables cleanup done.\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3aaa91ec_bd9c275e","line":122,"range":{"start_line":122,"start_character":43,"end_line":122,"end_character":46},"in_reply_to":"3aaa91ec_8b867b63","updated":"2016-06-29 01:07:31.000000000","message":"Done","commit_id":"c97c42d52088aaf1517b3db437231cadbc3625d8"}],"releasenotes/notes/add-db-legacy-clean-tool-7b3e3714f414c448.yaml":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7187db79395e85b3a5f6064ba656239ee836e61c","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1578128 \u003chttps://bugs.launchpad.net/ceilometer/+bug/1578128\u003e`_]"},{"line_number":5,"context_line":"    Add a tool that allow users to drop the legacy alarm and alarm_history"},{"line_number":6,"context_line":"    tables with SQL backends."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"bab6814e_3ce6cfe8","line":6,"range":{"start_line":6,"start_character":16,"end_line":6,"end_character":28},"updated":"2016-05-24 08:01:15.000000000","message":"not only sql backends need to drop, mongodb and hbase as well","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"015b77e0770f312780b10df83ead79d651681fae","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1578128 \u003chttps://bugs.launchpad.net/ceilometer/+bug/1578128\u003e`_]"},{"line_number":5,"context_line":"    Add a tool that allow users to drop the legacy alarm and alarm_history"},{"line_number":6,"context_line":"    tables with SQL backends."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"bab6814e_77407036","line":6,"range":{"start_line":6,"start_character":16,"end_line":6,"end_character":28},"in_reply_to":"bab6814e_3ce6cfe8","updated":"2016-05-24 08:22:15.000000000","message":"According the current code, the mongodb and hbase won\u0027t create alarm tables when do upgrade. but may your suggestion also sounds reasonable. we may need to consider the old legacy tables, will mention that.","commit_id":"9d243ca8f29b6870ee4446d1670c23f1a74a2ec7"}]}
