)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"00848bbde0b552a342f3c3987e75bc42efd5ea31","unresolved":false,"context_lines":[{"line_number":7,"context_line":"db2 support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch set makes db2 available as a database backend for ceilometer"},{"line_number":10,"context_line":"it implements the blueprint documented at:"},{"line_number":11,"context_line":"blueprints.launchpad.net/ceilometer/+spec/ibm-db2-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I33903fe5ebd02679d5a7adbd79dd2650a52f689a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAQ3%2F%2F3bs%3D","line":10,"updated":"2013-08-13 19:15:19.000000000","message":"Change lines 10 and 11 to simply:\n\nimplements bp ibm-db2-support","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"cd864b9d37bb217c94a92b3eef5fd65e6a1ef0a5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"db2 support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch set makes db2 available as a database backend for ceilometer"},{"line_number":10,"context_line":"it implements the blueprint documented at:"},{"line_number":11,"context_line":"blueprints.launchpad.net/ceilometer/+spec/ibm-db2-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I33903fe5ebd02679d5a7adbd79dd2650a52f689a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAARH%2F%2F5uM%3D","line":10,"in_reply_to":"AAAAQ3%2F%2F3bs%3D","updated":"2013-08-15 14:21:02.000000000","message":"If I do not get the actual url, when this patchset gets merged, then the url\nwill point to non existing page, it is very irritating. that thing only works while\nthe blueprint is in the works.","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"}],"ceilometer/storage/impl_db2.py":[{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"e43e3c60ce3a1b236d143bf41408fb19caca023a","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if start_timestamp_op \u003d\u003d \u0027gt\u0027:"},{"line_number":89,"context_line":"            start_timestamp_op \u003d \u0027$gt\u0027"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            start_timestamp_op \u003d \u0027$gte\u0027"},{"line_number":92,"context_line":"        ts_range[start_timestamp_op] \u003d start"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    if end:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2B7%2B8%3D","line":91,"updated":"2013-08-09 17:31:16.000000000","message":"how about start_timestamp_op \u003d \"gte\" in the parameter and\nstart_timestamp_op \u003d \"$%s\" % start_timestamp_op here? \n\nRemoves all the if\u0027s and keeps the unit tests simple.","commit_id":"c93a48d63894210055ec50fce31062c10e7cab38"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"e43e3c60ce3a1b236d143bf41408fb19caca023a","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    if sample_filter.source:"},{"line_number":131,"context_line":"        q[\u0027source\u0027] \u003d sample_filter.source"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    # so the samples call metadata resource_metadata, so we convert"},{"line_number":134,"context_line":"    # to that."},{"line_number":135,"context_line":"    q.update(dict((\u0027resource_%s\u0027 % k, v)"},{"line_number":136,"context_line":"                  for (k, v) in sample_filter.metaquery.iteritems()))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2B7%2Bo%3D","line":133,"updated":"2013-08-09 17:31:16.000000000","message":"Not really sure what this comment is trying to convey?\n\nIs it \"The samples name metadata \u0027resource_XXX\u0027, adjust accordingly\"?","commit_id":"c93a48d63894210055ec50fce31062c10e7cab38"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"2744d3b66a003be25a0f0830d307fedccd86d408","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    if sample_filter.source:"},{"line_number":131,"context_line":"        q[\u0027source\u0027] \u003d sample_filter.source"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    # so the samples call metadata resource_metadata, so we convert"},{"line_number":134,"context_line":"    # to that."},{"line_number":135,"context_line":"    q.update(dict((\u0027resource_%s\u0027 % k, v)"},{"line_number":136,"context_line":"                  for (k, v) in sample_filter.metaquery.iteritems()))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2B77c%3D","line":133,"in_reply_to":"AAAAQn%2F%2B7%2Bo%3D","updated":"2013-08-09 17:40:01.000000000","message":"Sandy, most of the code was copied from impl_mongo.py. only things\nchanged are the db2 specified functions or workaround because of\nmissing functions such as map_reduce.","commit_id":"c93a48d63894210055ec50fce31062c10e7cab38"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"e43e3c60ce3a1b236d143bf41408fb19caca023a","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"class ConnectionPool(object):"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def __init__(self):"},{"line_number":143,"context_line":"        self._pool \u003d {}"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2B7%2BY%3D","line":141,"updated":"2013-08-09 17:31:16.000000000","message":"doc string.","commit_id":"c93a48d63894210055ec50fce31062c10e7cab38"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"e43e3c60ce3a1b236d143bf41408fb19caca023a","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                return client"},{"line_number":150,"context_line":"        LOG.info(\u0027connecting to DB2 on %s\u0027, url)"},{"line_number":151,"context_line":"        # Since we are using url to connect, the url must start with"},{"line_number":152,"context_line":"        # mongodb:, replace db2 with mongodb:"},{"line_number":153,"context_line":"        url \u003d url.replace(\u0027db2:\u0027, \u0027mongodb:\u0027, 1)"},{"line_number":154,"context_line":"        client \u003d pymongo.MongoClient("},{"line_number":155,"context_line":"            url,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2B7%2BU%3D","line":152,"updated":"2013-08-09 17:31:16.000000000","message":"huh? Why are we using mongo in the url?","commit_id":"c93a48d63894210055ec50fce31062c10e7cab38"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"2744d3b66a003be25a0f0830d307fedccd86d408","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                return client"},{"line_number":150,"context_line":"        LOG.info(\u0027connecting to DB2 on %s\u0027, url)"},{"line_number":151,"context_line":"        # Since we are using url to connect, the url must start with"},{"line_number":152,"context_line":"        # mongodb:, replace db2 with mongodb:"},{"line_number":153,"context_line":"        url \u003d url.replace(\u0027db2:\u0027, \u0027mongodb:\u0027, 1)"},{"line_number":154,"context_line":"        client \u003d pymongo.MongoClient("},{"line_number":155,"context_line":"            url,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2B78A%3D","line":152,"in_reply_to":"AAAAQn%2F%2B7%2BU%3D","updated":"2013-08-09 17:40:01.000000000","message":"we are using pymongo library and it has to be mongodb, otherwise,\npymongo falls over.","commit_id":"c93a48d63894210055ec50fce31062c10e7cab38"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"e43e3c60ce3a1b236d143bf41408fb19caca023a","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        self.conn \u003d self.CONNECTION_POOL.connect(url)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        url \u003d url.replace(\u0027db2:\u0027, \u0027mongodb:\u0027, 1)"},{"line_number":204,"context_line":"        connection_options \u003d pymongo.uri_parser.parse_uri(url)"},{"line_number":205,"context_line":"        self.db \u003d getattr(self.conn, connection_options[\u0027database\u0027])"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2B7%2BA%3D","line":203,"updated":"2013-08-09 17:31:16.000000000","message":"If this is to keep the unit tests happy, it shouldn\u0027t be in the production code.","commit_id":"c93a48d63894210055ec50fce31062c10e7cab38"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"2744d3b66a003be25a0f0830d307fedccd86d408","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        self.conn \u003d self.CONNECTION_POOL.connect(url)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        url \u003d url.replace(\u0027db2:\u0027, \u0027mongodb:\u0027, 1)"},{"line_number":204,"context_line":"        connection_options \u003d pymongo.uri_parser.parse_uri(url)"},{"line_number":205,"context_line":"        self.db \u003d getattr(self.conn, connection_options[\u0027database\u0027])"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2B77U%3D","line":203,"in_reply_to":"AAAAQn%2F%2B7%2BA%3D","updated":"2013-08-09 17:40:01.000000000","message":"no, this is needed, same reason as above.","commit_id":"c93a48d63894210055ec50fce31062c10e7cab38"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"9022853cded82cd2d53625fcd6e30d75f9b76afe","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                    \"No DB2 test URL set,\""},{"line_number":198,"context_line":"                    \"export CEILOMETER_TEST_DB2_URL environment variable\")"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        url \u003d url.replace(\u0027db2:\u0027, \u0027mongodb:\u0027, 1)"},{"line_number":201,"context_line":"        self.conn \u003d self.CONNECTION_POOL.connect(url)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        # Require MongoDB 2.2 to use aggregate(), since we are using mongodb"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAARn%2F%2F%2FO8%3D","line":200,"updated":"2013-08-19 08:33:14.000000000","message":"Not sure why we replace db2 to mongodb, I understand, that the real database we use is mongodb, and have to install a mongodb in the db2 node, right?","commit_id":"95d56b29e77dbbe158a34d4c832f7e39a983e919"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"ffdbe12349cef66364974eaca4dfae7ac2dc2994","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                    \"No DB2 test URL set,\""},{"line_number":198,"context_line":"                    \"export CEILOMETER_TEST_DB2_URL environment variable\")"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        url \u003d url.replace(\u0027db2:\u0027, \u0027mongodb:\u0027, 1)"},{"line_number":201,"context_line":"        self.conn \u003d self.CONNECTION_POOL.connect(url)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        # Require MongoDB 2.2 to use aggregate(), since we are using mongodb"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAARn%2F%2F%2BTw%3D","line":200,"in_reply_to":"AAAARn%2F%2F%2FO8%3D","updated":"2013-08-19 13:35:17.000000000","message":"if you are using pymongo, the scheme has to be mongodb. pymongo is used\nto connect to db2 database. The database used is DB2. Not mongodb. That\nis the whole point of having this driver. Only on Jenkins, we use mongodb\nto verify test cases.","commit_id":"95d56b29e77dbbe158a34d4c832f7e39a983e919"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":37,"context_line":"from ceilometer.storage import models"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"cfg.CONF.import_opt(\u0027time_to_live\u0027, \u0027ceilometer.storage\u0027,"},{"line_number":40,"context_line":"                    group\u003d\"database\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F20M%3D","line":40,"updated":"2013-08-21 05:06:41.000000000","message":"this isn\u0027t used ever","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a6b407fcfe93c3b6ee67fe75f06eef7f8858a802","unresolved":false,"context_lines":[{"line_number":37,"context_line":"from ceilometer.storage import models"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"cfg.CONF.import_opt(\u0027time_to_live\u0027, \u0027ceilometer.storage\u0027,"},{"line_number":40,"context_line":"                    group\u003d\"database\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F02I%3D","line":40,"in_reply_to":"AAAARn%2F%2F20M%3D","updated":"2013-08-21 13:51:07.000000000","message":"copy paste, this can be removed since db2 does not support TTL","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                return client"},{"line_number":149,"context_line":"        LOG.info(\u0027connecting to DB2 on %s\u0027, url)"},{"line_number":150,"context_line":"        # Since we are using url to connect, the url must start with"},{"line_number":151,"context_line":"        # mongodb:, replace db2 with mongodb:"},{"line_number":152,"context_line":"        client \u003d pymongo.MongoClient("},{"line_number":153,"context_line":"            url,"},{"line_number":154,"context_line":"            use_greenlets\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F2zU%3D","line":151,"updated":"2013-08-21 05:06:41.000000000","message":"this note probably doesn\u0027t need to be here since the replace happens lower down","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a6b407fcfe93c3b6ee67fe75f06eef7f8858a802","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                return client"},{"line_number":149,"context_line":"        LOG.info(\u0027connecting to DB2 on %s\u0027, url)"},{"line_number":150,"context_line":"        # Since we are using url to connect, the url must start with"},{"line_number":151,"context_line":"        # mongodb:, replace db2 with mongodb:"},{"line_number":152,"context_line":"        client \u003d pymongo.MongoClient("},{"line_number":153,"context_line":"            url,"},{"line_number":154,"context_line":"            use_greenlets\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F02A%3D","line":151,"in_reply_to":"AAAARn%2F%2F2zU%3D","updated":"2013-08-21 13:51:07.000000000","message":"Done","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"ab0597600f41a2c16a1aad6b4c79d6fcad82177d","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    def __init__(self, conf):"},{"line_number":184,"context_line":"        url \u003d conf.database.connection"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        # Since we are uisng pymongo, even though we are connecting to DB2"},{"line_number":187,"context_line":"        # we still have to make sure that the scheme which used to distinguish"},{"line_number":188,"context_line":"        # db2 driver from mongodb driver be replaced so that pymongo will not"},{"line_number":189,"context_line":"        # produce an exception on the scheme."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F8nk%3D","line":186,"updated":"2013-08-19 21:13:39.000000000","message":"(nit) uisng -\u003e using","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"6edf7410b7bd0d0ae6511f78b534e954ec6bf80b","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    def __init__(self, conf):"},{"line_number":184,"context_line":"        url \u003d conf.database.connection"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        # Since we are uisng pymongo, even though we are connecting to DB2"},{"line_number":187,"context_line":"        # we still have to make sure that the scheme which used to distinguish"},{"line_number":188,"context_line":"        # db2 driver from mongodb driver be replaced so that pymongo will not"},{"line_number":189,"context_line":"        # produce an exception on the scheme."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F7ws%3D","line":186,"in_reply_to":"AAAARn%2F%2F8nk%3D","updated":"2013-08-20 01:35:08.000000000","message":"will fix.","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    def clear(self):"},{"line_number":255,"context_line":"        # db2 does not support drop_database, remove all collections"},{"line_number":256,"context_line":"        for col in [\u0027user\u0027, \u0027project\u0027, \u0027resource\u0027, \u0027meter\u0027]:"},{"line_number":257,"context_line":"            self.db[col].drop()"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def record_metering_data(self, data):"},{"line_number":260,"context_line":"        \"\"\"Write the data to the backend storage system."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F2vg%3D","line":257,"updated":"2013-08-21 05:06:41.000000000","message":"is drop() a db2 thing? this should be drop_collection() no? \nhttp://api.mongodb.org/python/current/api/pymongo/database.htm","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"31e14b1971b0a3c57d16ff8859d6418bb2855535","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    def clear(self):"},{"line_number":255,"context_line":"        # db2 does not support drop_database, remove all collections"},{"line_number":256,"context_line":"        for col in [\u0027user\u0027, \u0027project\u0027, \u0027resource\u0027, \u0027meter\u0027]:"},{"line_number":257,"context_line":"            self.db[col].drop()"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def record_metering_data(self, data):"},{"line_number":260,"context_line":"        \"\"\"Write the data to the backend storage system."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F004%3D","line":257,"in_reply_to":"AAAARn%2F%2F05k%3D","updated":"2013-08-21 13:51:08.000000000","message":"yes, you are right. was thinking database but should\u0027ve been looking at collection.","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"9c2684a004f12df773df7ff35cd31142866d4abf","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    def clear(self):"},{"line_number":255,"context_line":"        # db2 does not support drop_database, remove all collections"},{"line_number":256,"context_line":"        for col in [\u0027user\u0027, \u0027project\u0027, \u0027resource\u0027, \u0027meter\u0027]:"},{"line_number":257,"context_line":"            self.db[col].drop()"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def record_metering_data(self, data):"},{"line_number":260,"context_line":"        \"\"\"Write the data to the backend storage system."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F05k%3D","line":257,"in_reply_to":"AAAARn%2F%2F2vg%3D","updated":"2013-08-21 13:25:51.000000000","message":"db2 does not have drop database, this is a word around. drop_collection is\na alias to drop_collection.","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        # FIXME(jd): We should use self.db.meter.group() and not use the"},{"line_number":387,"context_line":"        # resource collection, but that\u0027s not supported by MIM, so it\u0027s not"},{"line_number":388,"context_line":"        # easily testable yet. Since it was bugged before anyway, it\u0027s still"},{"line_number":389,"context_line":"        # better for now."},{"line_number":390,"context_line":"        resource_ids \u003d self.db.meter.find(q).distinct(\u0027resource_id\u0027)"},{"line_number":391,"context_line":"        q \u003d {\u0027_id\u0027: {\u0027$in\u0027: resource_ids}}"},{"line_number":392,"context_line":"        for resource in self.db.resource.find(q):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F2u4%3D","line":389,"updated":"2013-08-21 05:06:41.000000000","message":"are these fixme\u0027s still relevant? the code here is quite different from the mongo impl","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a6b407fcfe93c3b6ee67fe75f06eef7f8858a802","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        # FIXME(jd): We should use self.db.meter.group() and not use the"},{"line_number":387,"context_line":"        # resource collection, but that\u0027s not supported by MIM, so it\u0027s not"},{"line_number":388,"context_line":"        # easily testable yet. Since it was bugged before anyway, it\u0027s still"},{"line_number":389,"context_line":"        # better for now."},{"line_number":390,"context_line":"        resource_ids \u003d self.db.meter.find(q).distinct(\u0027resource_id\u0027)"},{"line_number":391,"context_line":"        q \u003d {\u0027_id\u0027: {\u0027$in\u0027: resource_ids}}"},{"line_number":392,"context_line":"        for resource in self.db.resource.find(q):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F010%3D","line":389,"in_reply_to":"AAAARn%2F%2F2u4%3D","updated":"2013-08-21 13:51:07.000000000","message":"Done","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"ab0597600f41a2c16a1aad6b4c79d6fcad82177d","unresolved":false,"context_lines":[{"line_number":526,"context_line":""},{"line_number":527,"context_line":"    def get_alarms(self, name\u003dNone, user\u003dNone,"},{"line_number":528,"context_line":"                   project\u003dNone, enabled\u003dTrue, alarm_id\u003dNone):"},{"line_number":529,"context_line":"        \"\"\"Yields a lists of alarms that match filters"},{"line_number":530,"context_line":"        \"\"\""},{"line_number":531,"context_line":"        q \u003d {}"},{"line_number":532,"context_line":"        if user is not None:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F8lM%3D","line":529,"updated":"2013-08-19 21:13:39.000000000","message":"(nit) lists -\u003e list","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"6edf7410b7bd0d0ae6511f78b534e954ec6bf80b","unresolved":false,"context_lines":[{"line_number":526,"context_line":""},{"line_number":527,"context_line":"    def get_alarms(self, name\u003dNone, user\u003dNone,"},{"line_number":528,"context_line":"                   project\u003dNone, enabled\u003dTrue, alarm_id\u003dNone):"},{"line_number":529,"context_line":"        \"\"\"Yields a lists of alarms that match filters"},{"line_number":530,"context_line":"        \"\"\""},{"line_number":531,"context_line":"        q \u003d {}"},{"line_number":532,"context_line":"        if user is not None:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F7wo%3D","line":529,"in_reply_to":"AAAARn%2F%2F8lM%3D","updated":"2013-08-20 01:35:08.000000000","message":"will fix.","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"ab0597600f41a2c16a1aad6b4c79d6fcad82177d","unresolved":false,"context_lines":[{"line_number":570,"context_line":"        return models.Alarm(**stored_alarm)"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    def delete_alarm(self, alarm_id):"},{"line_number":573,"context_line":"        \"\"\"Delete a alarm"},{"line_number":574,"context_line":"        \"\"\""},{"line_number":575,"context_line":"        self.db.alarm.remove({\u0027alarm_id\u0027: alarm_id})"},{"line_number":576,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F8ks%3D","line":573,"updated":"2013-08-19 21:13:39.000000000","message":"(nit) a -\u003e an","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"6edf7410b7bd0d0ae6511f78b534e954ec6bf80b","unresolved":false,"context_lines":[{"line_number":570,"context_line":"        return models.Alarm(**stored_alarm)"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    def delete_alarm(self, alarm_id):"},{"line_number":573,"context_line":"        \"\"\"Delete a alarm"},{"line_number":574,"context_line":"        \"\"\""},{"line_number":575,"context_line":"        self.db.alarm.remove({\u0027alarm_id\u0027: alarm_id})"},{"line_number":576,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F7wk%3D","line":573,"in_reply_to":"AAAARn%2F%2F8ks%3D","updated":"2013-08-20 01:35:08.000000000","message":"will fix.","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0869e476d5285c6ba74e5c13eda7b8575d10792b","unresolved":false,"context_lines":[{"line_number":246,"context_line":"    def clear(self):"},{"line_number":247,"context_line":"        # db2 does not support drop_database, remove all collections"},{"line_number":248,"context_line":"        for col in [\u0027user\u0027, \u0027project\u0027, \u0027resource\u0027, \u0027meter\u0027]:"},{"line_number":249,"context_line":"            self.conn.drop_database(col)"},{"line_number":250,"context_line":"        # database, this command does nothing on db2 database since this has"},{"line_number":251,"context_line":"        # not been implemented. However calling this method is important for"},{"line_number":252,"context_line":"        # removal of all the empty dbs created during the test runs"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAASX%2F%2F%2FzY%3D","line":249,"updated":"2013-08-22 19:08:01.000000000","message":"Tong, as agreed, change to drop_collection(col) in subsequent patch.","commit_id":"195fc834ade2c255aca03be88237629b039b7166"}],"doc/source/install/manual.rst":[{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"00848bbde0b552a342f3c3987e75bc42efd5ea31","unresolved":false,"context_lines":[{"line_number":445,"context_line":"   double: installing; database, hbase, mysql, db2"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":".. note::"},{"line_number":448,"context_line":"   The Ceilometer by default uses mongodb as its backend data repository. "},{"line_number":449,"context_line":"   A deployment can choose to use other databases, currently the supported"},{"line_number":450,"context_line":"   databases are mongodb, hbase, mysql (or sqlachemy enabled databases) and"},{"line_number":451,"context_line":"   db2. To use databases other then mongodb, one can simply make changes to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"AAAAQ3%2F%2F3a4%3D","line":448,"updated":"2013-08-13 19:15:19.000000000","message":"Remove whitespace","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"cd864b9d37bb217c94a92b3eef5fd65e6a1ef0a5","unresolved":false,"context_lines":[{"line_number":445,"context_line":"   double: installing; database, hbase, mysql, db2"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":".. note::"},{"line_number":448,"context_line":"   The Ceilometer by default uses mongodb as its backend data repository. "},{"line_number":449,"context_line":"   A deployment can choose to use other databases, currently the supported"},{"line_number":450,"context_line":"   databases are mongodb, hbase, mysql (or sqlachemy enabled databases) and"},{"line_number":451,"context_line":"   db2. To use databases other then mongodb, one can simply make changes to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"AAAARH%2F%2F5uE%3D","line":448,"in_reply_to":"AAAAQ3%2F%2F3a4%3D","updated":"2013-08-15 14:21:02.000000000","message":"Done","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"00848bbde0b552a342f3c3987e75bc42efd5ea31","unresolved":false,"context_lines":[{"line_number":452,"context_line":"   the Ceilometer configuration file, normally that configuration file can"},{"line_number":453,"context_line":"   be found in /etc/ceilometer directory and named ceilometer.conf. Here are"},{"line_number":454,"context_line":"   few examples how the database configuration section look like:"},{"line_number":455,"context_line":"   "},{"line_number":456,"context_line":"   To use db2 as the ceilometer database backend, use db2 as the scheme"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        [database]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"AAAAQ3%2F%2F3as%3D","line":455,"updated":"2013-08-13 19:15:19.000000000","message":"Remove whitespace","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"cd864b9d37bb217c94a92b3eef5fd65e6a1ef0a5","unresolved":false,"context_lines":[{"line_number":452,"context_line":"   the Ceilometer configuration file, normally that configuration file can"},{"line_number":453,"context_line":"   be found in /etc/ceilometer directory and named ceilometer.conf. Here are"},{"line_number":454,"context_line":"   few examples how the database configuration section look like:"},{"line_number":455,"context_line":"   "},{"line_number":456,"context_line":"   To use db2 as the ceilometer database backend, use db2 as the scheme"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        [database]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"AAAARH%2F%2F5t8%3D","line":455,"in_reply_to":"AAAAQ3%2F%2F3as%3D","updated":"2013-08-15 14:21:02.000000000","message":"Done","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":439,"context_line":"   service, all metering data received by Ceilometer collector will be dropped."},{"line_number":440,"context_line":""},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"Use other databases"},{"line_number":443,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":444,"context_line":".. index::"},{"line_number":445,"context_line":"   double: installing; database, hbase, mysql, db2"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F21w%3D","line":442,"updated":"2013-08-21 05:06:41.000000000","message":"s/Use/Using/","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":444,"context_line":".. index::"},{"line_number":445,"context_line":"   double: installing; database, hbase, mysql, db2"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":".. note::"},{"line_number":448,"context_line":"   The Ceilometer by default uses mongodb as its backend data repository."},{"line_number":449,"context_line":"   A deployment can choose to use other databases, currently the supported"},{"line_number":450,"context_line":"   databases are mongodb, hbase, mysql (or sqlachemy enabled databases) and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F23I%3D","line":447,"updated":"2013-08-21 05:06:41.000000000","message":"remove note, note should be used to call out something important in the section. the whole section shouldn\u0027t be a note","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a6b407fcfe93c3b6ee67fe75f06eef7f8858a802","unresolved":false,"context_lines":[{"line_number":444,"context_line":".. index::"},{"line_number":445,"context_line":"   double: installing; database, hbase, mysql, db2"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":".. note::"},{"line_number":448,"context_line":"   The Ceilometer by default uses mongodb as its backend data repository."},{"line_number":449,"context_line":"   A deployment can choose to use other databases, currently the supported"},{"line_number":450,"context_line":"   databases are mongodb, hbase, mysql (or sqlachemy enabled databases) and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F01k%3D","line":447,"in_reply_to":"AAAARn%2F%2F23I%3D","updated":"2013-08-21 13:51:07.000000000","message":"Done","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":445,"context_line":"   double: installing; database, hbase, mysql, db2"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":".. note::"},{"line_number":448,"context_line":"   The Ceilometer by default uses mongodb as its backend data repository."},{"line_number":449,"context_line":"   A deployment can choose to use other databases, currently the supported"},{"line_number":450,"context_line":"   databases are mongodb, hbase, mysql (or sqlachemy enabled databases) and"},{"line_number":451,"context_line":"   db2. To use databases other then mongodb, one can simply make changes to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F23Q%3D","line":448,"updated":"2013-08-21 05:06:41.000000000","message":"s/The Ceilometer by/Ceilometer by/","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a6b407fcfe93c3b6ee67fe75f06eef7f8858a802","unresolved":false,"context_lines":[{"line_number":445,"context_line":"   double: installing; database, hbase, mysql, db2"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":".. note::"},{"line_number":448,"context_line":"   The Ceilometer by default uses mongodb as its backend data repository."},{"line_number":449,"context_line":"   A deployment can choose to use other databases, currently the supported"},{"line_number":450,"context_line":"   databases are mongodb, hbase, mysql (or sqlachemy enabled databases) and"},{"line_number":451,"context_line":"   db2. To use databases other then mongodb, one can simply make changes to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F01c%3D","line":448,"in_reply_to":"AAAARn%2F%2F23Q%3D","updated":"2013-08-21 13:51:07.000000000","message":"Done","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":447,"context_line":".. note::"},{"line_number":448,"context_line":"   The Ceilometer by default uses mongodb as its backend data repository."},{"line_number":449,"context_line":"   A deployment can choose to use other databases, currently the supported"},{"line_number":450,"context_line":"   databases are mongodb, hbase, mysql (or sqlachemy enabled databases) and"},{"line_number":451,"context_line":"   db2. To use databases other then mongodb, one can simply make changes to"},{"line_number":452,"context_line":"   the Ceilometer configuration file, normally that configuration file can"},{"line_number":453,"context_line":"   be found in /etc/ceilometer directory and named ceilometer.conf. Here are"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F228%3D","line":450,"updated":"2013-08-21 05:06:41.000000000","message":"s/sqlachemy enabled/sqlalchemy-enabled/\n\nalso capitalize where appropriate","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a6b407fcfe93c3b6ee67fe75f06eef7f8858a802","unresolved":false,"context_lines":[{"line_number":447,"context_line":".. note::"},{"line_number":448,"context_line":"   The Ceilometer by default uses mongodb as its backend data repository."},{"line_number":449,"context_line":"   A deployment can choose to use other databases, currently the supported"},{"line_number":450,"context_line":"   databases are mongodb, hbase, mysql (or sqlachemy enabled databases) and"},{"line_number":451,"context_line":"   db2. To use databases other then mongodb, one can simply make changes to"},{"line_number":452,"context_line":"   the Ceilometer configuration file, normally that configuration file can"},{"line_number":453,"context_line":"   be found in /etc/ceilometer directory and named ceilometer.conf. Here are"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F01Y%3D","line":450,"in_reply_to":"AAAARn%2F%2F228%3D","updated":"2013-08-21 13:51:07.000000000","message":"Done","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":451,"context_line":"   db2. To use databases other then mongodb, one can simply make changes to"},{"line_number":452,"context_line":"   the Ceilometer configuration file, normally that configuration file can"},{"line_number":453,"context_line":"   be found in /etc/ceilometer directory and named ceilometer.conf. Here are"},{"line_number":454,"context_line":"   few examples how the database configuration section look like:"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"   To use db2 as the ceilometer database backend, use db2 as the scheme"},{"line_number":457,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F21k%3D","line":454,"updated":"2013-08-21 05:06:41.000000000","message":"remove the following as the install guide explains ceilometer.conf above: \"To use databases other then mongodb, ....  Here are few examples how the database configuration section look like:\" \n\nchange to \"To use a database other than MongoDB, edit the database section in ceilometer.conf:\u0027","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a6b407fcfe93c3b6ee67fe75f06eef7f8858a802","unresolved":false,"context_lines":[{"line_number":451,"context_line":"   db2. To use databases other then mongodb, one can simply make changes to"},{"line_number":452,"context_line":"   the Ceilometer configuration file, normally that configuration file can"},{"line_number":453,"context_line":"   be found in /etc/ceilometer directory and named ceilometer.conf. Here are"},{"line_number":454,"context_line":"   few examples how the database configuration section look like:"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"   To use db2 as the ceilometer database backend, use db2 as the scheme"},{"line_number":457,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F01Q%3D","line":454,"in_reply_to":"AAAARn%2F%2F21k%3D","updated":"2013-08-21 13:51:07.000000000","message":"Done","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":453,"context_line":"   be found in /etc/ceilometer directory and named ceilometer.conf. Here are"},{"line_number":454,"context_line":"   few examples how the database configuration section look like:"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"   To use db2 as the ceilometer database backend, use db2 as the scheme"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        [database]"},{"line_number":459,"context_line":"        connection \u003d db2://username:password@host:27017/ceilometer"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F21M%3D","line":456,"updated":"2013-08-21 05:06:41.000000000","message":"add :: to the end","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a6b407fcfe93c3b6ee67fe75f06eef7f8858a802","unresolved":false,"context_lines":[{"line_number":453,"context_line":"   be found in /etc/ceilometer directory and named ceilometer.conf. Here are"},{"line_number":454,"context_line":"   few examples how the database configuration section look like:"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"   To use db2 as the ceilometer database backend, use db2 as the scheme"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        [database]"},{"line_number":459,"context_line":"        connection \u003d db2://username:password@host:27017/ceilometer"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F01E%3D","line":456,"in_reply_to":"AAAARn%2F%2F21M%3D","updated":"2013-08-21 13:51:07.000000000","message":"Done","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"35a975abea82b294ff4f50076c49a7dadcafa3cb","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        [database]"},{"line_number":459,"context_line":"        connection \u003d db2://username:password@host:27017/ceilometer"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    To use mongodb as the ceilometer backend, use the mongodb as the scheme"},{"line_number":462,"context_line":"        [database]"},{"line_number":463,"context_line":"        connection \u003d mongodb://username:password@host:27017/ceilometer"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F21E%3D","line":461,"updated":"2013-08-21 05:06:41.000000000","message":"add :: to the end","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"a6b407fcfe93c3b6ee67fe75f06eef7f8858a802","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        [database]"},{"line_number":459,"context_line":"        connection \u003d db2://username:password@host:27017/ceilometer"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    To use mongodb as the ceilometer backend, use the mongodb as the scheme"},{"line_number":462,"context_line":"        [database]"},{"line_number":463,"context_line":"        connection \u003d mongodb://username:password@host:27017/ceilometer"}],"source_content_type":"text/x-rst","patch_set":8,"id":"AAAARn%2F%2F01A%3D","line":461,"in_reply_to":"AAAARn%2F%2F21E%3D","updated":"2013-08-21 13:51:07.000000000","message":"Done","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"}],"run-tests.sh":[{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"00848bbde0b552a342f3c3987e75bc42efd5ea31","unresolved":false,"context_lines":[{"line_number":52,"context_line":"do"},{"line_number":53,"context_line":"    echo \"$line\" | grep -q \u0027waiting for connections on port\u0027 \u0026\u0026 break"},{"line_number":54,"context_line":"done \u003c ${DB2_DATA}/out"},{"line_number":55,"context_line":"# Read the fifo for ever otherwise mongod would block"},{"line_number":56,"context_line":"# + that gives us the log on screen"},{"line_number":57,"context_line":"cat ${DB2_DATA}/out \u0026"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAQ3%2F%2F3aE%3D","line":55,"updated":"2013-08-13 19:15:19.000000000","message":"Should \"mongod\" here be changed to the name of the DB2 process?","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"cd864b9d37bb217c94a92b3eef5fd65e6a1ef0a5","unresolved":false,"context_lines":[{"line_number":52,"context_line":"do"},{"line_number":53,"context_line":"    echo \"$line\" | grep -q \u0027waiting for connections on port\u0027 \u0026\u0026 break"},{"line_number":54,"context_line":"done \u003c ${DB2_DATA}/out"},{"line_number":55,"context_line":"# Read the fifo for ever otherwise mongod would block"},{"line_number":56,"context_line":"# + that gives us the log on screen"},{"line_number":57,"context_line":"cat ${DB2_DATA}/out \u0026"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAARH%2F%2F5tk%3D","line":55,"in_reply_to":"AAAAQ3%2F%2F3aE%3D","updated":"2013-08-15 14:21:02.000000000","message":"actually no, since during the test , we are using mongodb as backend.","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"},{"author":{"_account_id":5313,"name":"David Peraza","email":"david_peraza@persistentsys.com","username":"dperaza"},"change_message_id":"6ab1b8bd86c20aead0f2058b975d62770e31ff32","unresolved":false,"context_lines":[{"line_number":45,"context_line":"cat ${MONGO_DATA}/out \u0026"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"mkfifo ${DB2_DATA}/out"},{"line_number":48,"context_line":"mongod --maxConns 32 --noprealloc --smallfiles --quiet --noauth --port 28000 --dbpath \"${DB2_DATA}\" --bind_ip localhost \u0026\u003e${DB2_DATA}/out \u0026"},{"line_number":49,"context_line":"DB2_PID\u003d$!"},{"line_number":50,"context_line":"# Wait for Mongo to start listening to connections"},{"line_number":51,"context_line":"while read line"}],"source_content_type":"text/x-sh","patch_set":5,"id":"AAAARH%2F%2F1F4%3D","line":48,"updated":"2013-08-16 16:00:14.000000000","message":"This might be the cause of why things fail on the py26 job. Try another port it looks like it is interfering with other things running on that system","commit_id":"87ec0540f7766a856a93310e8e5c107bc9f6ca8e"},{"author":{"_account_id":5313,"name":"David Peraza","email":"david_peraza@persistentsys.com","username":"dperaza"},"change_message_id":"7207bf0211c2cd4be218f1075a4670ebf259e25a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"cat ${MONGO_DATA}/out \u0026"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"mkfifo ${DB2_DATA}/out"},{"line_number":48,"context_line":"mongod --maxConns 32 --noprealloc --smallfiles --quiet --noauth --port 28000 --dbpath \"${DB2_DATA}\" --bind_ip localhost \u0026\u003e${DB2_DATA}/out \u0026"},{"line_number":49,"context_line":"DB2_PID\u003d$!"},{"line_number":50,"context_line":"# Wait for Mongo to start listening to connections"},{"line_number":51,"context_line":"while read line"}],"source_content_type":"text/x-sh","patch_set":5,"id":"AAAARH%2F%2F1EA%3D","line":48,"in_reply_to":"AAAARH%2F%2F1F4%3D","updated":"2013-08-16 16:05:56.000000000","message":"Suggest to add code validating port prior to making call to mongod","commit_id":"87ec0540f7766a856a93310e8e5c107bc9f6ca8e"}],"tests/storage/test_impl_db2.py":[{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"00848bbde0b552a342f3c3987e75bc42efd5ea31","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    pass"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"\u0027\u0027\u0027"},{"line_number":83,"context_line":"class StatisticsTest(base.StatisticsTest, DB2EngineTestBase):"},{"line_number":84,"context_line":"    pass"},{"line_number":85,"context_line":"\u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQ3%2F%2F3Zo%3D","line":82,"updated":"2013-08-13 19:15:19.000000000","message":"Remove this commented code, or put a comment about when it will be uncommented if that\u0027s the plan.","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"cd864b9d37bb217c94a92b3eef5fd65e6a1ef0a5","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    pass"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"\u0027\u0027\u0027"},{"line_number":83,"context_line":"class StatisticsTest(base.StatisticsTest, DB2EngineTestBase):"},{"line_number":84,"context_line":"    pass"},{"line_number":85,"context_line":"\u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAARH%2F%2F5tY%3D","line":82,"in_reply_to":"AAAAQ3%2F%2F3Zo%3D","updated":"2013-08-15 14:21:02.000000000","message":"This is now alive in new patchset.","commit_id":"a42773efe2baa181d6c14a2e698ad10f96ee867b"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"ab0597600f41a2c16a1aad6b4c79d6fcad82177d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                    os.environ.get(\u0027CEILOMETER_TEST_MONGODB_URL\u0027))"},{"line_number":41,"context_line":"        if not self.url:"},{"line_number":42,"context_line":"            raise RuntimeError("},{"line_number":43,"context_line":"                \"No DB2 test URL set,\""},{"line_number":44,"context_line":"                \"export CEILOMETER_TEST_DB2_URL environment variable\")"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            # This is to make sure that the db2 driver is used when"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F8kg%3D","line":43,"updated":"2013-08-19 21:13:39.000000000","message":"(nit) Put a space between the comma after , so that it prints with a space before \"export\".","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"6edf7410b7bd0d0ae6511f78b534e954ec6bf80b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                    os.environ.get(\u0027CEILOMETER_TEST_MONGODB_URL\u0027))"},{"line_number":41,"context_line":"        if not self.url:"},{"line_number":42,"context_line":"            raise RuntimeError("},{"line_number":43,"context_line":"                \"No DB2 test URL set,\""},{"line_number":44,"context_line":"                \"export CEILOMETER_TEST_DB2_URL environment variable\")"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            # This is to make sure that the db2 driver is used when"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F7wg%3D","line":43,"in_reply_to":"AAAARn%2F%2F8kg%3D","updated":"2013-08-20 01:35:08.000000000","message":"will fix.","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"6597eceb94347d8ea7c64727b3be8a4173bd38eb","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class ResourceTest(base.ResourceTest, DB2EngineTestBase):"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def test_get_resources(self):"},{"line_number":70,"context_line":"        msgs_sources \u003d [msg[\u0027source\u0027] for msg in self.msgs]"},{"line_number":71,"context_line":"        resources \u003d list(self.conn.get_resources())"},{"line_number":72,"context_line":"        self.assertEqual(len(resources), 9)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F238%3D","line":69,"updated":"2013-08-21 04:00:40.000000000","message":"I think we need cover metaquery for resourcetest method to verify non-sql query working with db2.","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"03887ffe6e6e23042d97d818f84a3e2b25d89fd7","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class ResourceTest(base.ResourceTest, DB2EngineTestBase):"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def test_get_resources(self):"},{"line_number":70,"context_line":"        msgs_sources \u003d [msg[\u0027source\u0027] for msg in self.msgs]"},{"line_number":71,"context_line":"        resources \u003d list(self.conn.get_resources())"},{"line_number":72,"context_line":"        self.assertEqual(len(resources), 9)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAARn%2F%2F0l0%3D","line":69,"in_reply_to":"AAAARn%2F%2F238%3D","updated":"2013-08-21 14:41:56.000000000","message":"see base test cases.","commit_id":"9e7e79ae54fed21e0273e51ae945b690fa31458b"}]}
