)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d841233e6d787a265a7b11b664557f5b950fed02","unresolved":false,"context_lines":[{"line_number":13,"context_line":"an option \u0027db2nosql_resource_id_maxlen\u0027(default is 512) to allow"},{"line_number":14,"context_line":"user to adjust the value for their ENV."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"@DocImpact"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ib58cfffb238d3b818831f0ccfe4659cfcf9c3c8a"},{"line_number":19,"context_line":"Closes-Bug: #1387532"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"5a890539_4c96644d","line":16,"updated":"2014-12-04 04:12:34.000000000","message":"The doc impact here is the new config option, otherwise regarding the limitation and need for a manual table alter, that could be documented in the release notes for ceilometer.  Do you plan on backporting this to stable/juno?  I\u0027m not sure they\u0027d take a new config option on stable, but if it\u0027s for a bug fix they might.","commit_id":"6737e0b08857d88ca5e0c68db36299274d416700"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"cc60250069b718e38a80ef211648707102b076de","unresolved":false,"context_lines":[{"line_number":13,"context_line":"an option \u0027db2nosql_resource_id_maxlen\u0027(default is 512) to allow"},{"line_number":14,"context_line":"user to adjust the value for their ENV."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"@DocImpact"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ib58cfffb238d3b818831f0ccfe4659cfcf9c3c8a"},{"line_number":19,"context_line":"Closes-Bug: #1387532"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"5a890539_e208f992","line":16,"in_reply_to":"5a890539_4c96644d","updated":"2014-12-04 06:26:05.000000000","message":"1. It would best to be merged in stable/juno, since some customers would pick juno to env, not kilo (as kilo still has long time to release).\n\n2. for the customers have have enabled ceilomete with db2 nosql, (not sure how many), they need manual alter table, if they have hostname longer than 35 chars.\n\nSo what\u0027s the proper location for release notes for ceilometer ?","commit_id":"6737e0b08857d88ca5e0c68db36299274d416700"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"634b436b2db9f157fb445b2d37044ecc56b48ca4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"an option \u0027db2nosql_resource_id_maxlen\u0027(default is 512) to allow"},{"line_number":14,"context_line":"user to adjust the value for their ENV."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"@DocImpact"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ib58cfffb238d3b818831f0ccfe4659cfcf9c3c8a"},{"line_number":19,"context_line":"Closes-Bug: #1387532"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"5a890539_76759d96","line":16,"in_reply_to":"5a890539_e208f992","updated":"2014-12-04 15:46:13.000000000","message":"As noted by others, you can tag the bug as juno-backport-potential and then do the cherry pick to stable/juno.\n\nThe ceilometer juno release notes are here:\n\nhttps://wiki.openstack.org/wiki/ReleaseNotes/Juno#OpenStack_Telemetry_.28Ceilometer.29\n\nThe kilo release notes are incomplete:\n\nhttps://wiki.openstack.org/wiki/ReleaseNotes/Kilo#OpenStack_Telemetry_.28Ceilometer.29\n\nInformation on how to do cherry picks is here:\n\nhttps://wiki.openstack.org/wiki/Documentation/HowTo#How_to_a_cherry-pick_a_change_to_a_stable_branch\n\nBy the way, google is great for finding these things...","commit_id":"6737e0b08857d88ca5e0c68db36299274d416700"}],"ceilometer/storage/__init__.py":[{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"57d865d15e5ba65bcc76650289b868a43bf68bea","unresolved":false,"context_lines":[{"line_number":63,"context_line":"               help\u003d\u0027The name of the replica set which is used to connect to \u0027"},{"line_number":64,"context_line":"                    \u0027MongoDB database. If it is set, MongoReplicaSetClient \u0027"},{"line_number":65,"context_line":"                    \u0027will be used instead of MongoClient.\u0027),"},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027db2nosql_resource_id_maxlen\u0027,"},{"line_number":67,"context_line":"               default\u003d512,"},{"line_number":68,"context_line":"               help\u003d\"The max length of resource\u0027s id in db2 nosql, \""},{"line_number":69,"context_line":"                    \"the value should be larger than len(hostname) * 2 \""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_53e84eb4","line":66,"updated":"2014-11-12 14:04:07.000000000","message":"Maybe you can simplify config name? db2_resource_id_maxlen instead db2nosql_resource_id_maxlen, for example?","commit_id":"196fa34440a15716fb36dafbad09018e31d4f8c2"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"640c2cd511563d724adbc67f56c263c9240a533d","unresolved":false,"context_lines":[{"line_number":63,"context_line":"               help\u003d\u0027The name of the replica set which is used to connect to \u0027"},{"line_number":64,"context_line":"                    \u0027MongoDB database. If it is set, MongoReplicaSetClient \u0027"},{"line_number":65,"context_line":"                    \u0027will be used instead of MongoClient.\u0027),"},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027db2nosql_resource_id_maxlen\u0027,"},{"line_number":67,"context_line":"               default\u003d512,"},{"line_number":68,"context_line":"               help\u003d\"The max length of resource\u0027s id in db2 nosql, \""},{"line_number":69,"context_line":"                    \"the value should be larger than len(hostname) * 2 \""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_f232020f","line":66,"in_reply_to":"5a890539_53e84eb4","updated":"2014-11-13 02:19:08.000000000","message":"the db2nosql used here, because it happens on db2 nosql backend. We not used db2 as general case here, since it would misleading.  Thanks","commit_id":"196fa34440a15716fb36dafbad09018e31d4f8c2"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"7142dfc4ae4815d50be69874b304daf0fc766176","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                    \u0027will be used instead of MongoClient.\u0027),"},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027db2nosql_resource_id_maxlen\u0027,"},{"line_number":67,"context_line":"               default\u003d512,"},{"line_number":68,"context_line":"               help\u003d\"The max length of resource\u0027s id in db2 nosql, \""},{"line_number":69,"context_line":"                    \"the value should be larger than len(hostname) * 2 \""},{"line_number":70,"context_line":"                    \"as compute node\u0027s resource id is \u003chostname\u003e_\u003cnodename\u003e.\"),"},{"line_number":71,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a890539_2d0a008a","line":68,"updated":"2014-11-25 12:42:58.000000000","message":"Nitpick: no apostrophe required in \"resource\u0027s\"\n\ni.e. \"The max length of resources id in db2 nosql ...\"","commit_id":"fe397ca3ce208b8e38a7a74578242928093ed31d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7fe72334d1b1fddded6b444188c03b6c786377bf","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                    \u0027will be used instead of MongoClient.\u0027),"},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027db2nosql_resource_id_maxlen\u0027,"},{"line_number":67,"context_line":"               default\u003d512,"},{"line_number":68,"context_line":"               help\u003d\"The max length of resources id in db2 nosql, \""},{"line_number":69,"context_line":"                    \"the value should be larger than len(hostname) * 2 \""},{"line_number":70,"context_line":"                    \"as compute node\u0027s resource id is \u003chostname\u003e_\u003cnodename\u003e.\"),"},{"line_number":71,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_fa10595b","line":68,"updated":"2014-11-27 15:43:55.000000000","message":"s/db2/DB2/","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"169dd90946c47f8e204e68275ba2fd9769491fc6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                    \u0027will be used instead of MongoClient.\u0027),"},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027db2nosql_resource_id_maxlen\u0027,"},{"line_number":67,"context_line":"               default\u003d512,"},{"line_number":68,"context_line":"               help\u003d\"The max length of resources id in db2 nosql, \""},{"line_number":69,"context_line":"                    \"the value should be larger than len(hostname) * 2 \""},{"line_number":70,"context_line":"                    \"as compute node\u0027s resource id is \u003chostname\u003e_\u003cnodename\u003e.\"),"},{"line_number":71,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_d47c40b8","line":68,"in_reply_to":"5a890539_fa10595b","updated":"2014-11-28 13:52:59.000000000","message":"thanks, I can change that name","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7fe72334d1b1fddded6b444188c03b6c786377bf","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.IntOpt(\u0027db2nosql_resource_id_maxlen\u0027,"},{"line_number":67,"context_line":"               default\u003d512,"},{"line_number":68,"context_line":"               help\u003d\"The max length of resources id in db2 nosql, \""},{"line_number":69,"context_line":"                    \"the value should be larger than len(hostname) * 2 \""},{"line_number":70,"context_line":"                    \"as compute node\u0027s resource id is \u003chostname\u003e_\u003cnodename\u003e.\"),"},{"line_number":71,"context_line":"]"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_056dc6cc","line":69,"updated":"2014-11-27 15:43:55.000000000","message":"Do we really need a config option if we know what the max length should be?  Can\u0027t we just determine that at runtime and adjust or error out as necessary?","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"169dd90946c47f8e204e68275ba2fd9769491fc6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    cfg.IntOpt(\u0027db2nosql_resource_id_maxlen\u0027,"},{"line_number":67,"context_line":"               default\u003d512,"},{"line_number":68,"context_line":"               help\u003d\"The max length of resources id in db2 nosql, \""},{"line_number":69,"context_line":"                    \"the value should be larger than len(hostname) * 2 \""},{"line_number":70,"context_line":"                    \"as compute node\u0027s resource id is \u003chostname\u003e_\u003cnodename\u003e.\"),"},{"line_number":71,"context_line":"]"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_b45334e1","line":69,"in_reply_to":"5a890539_056dc6cc","updated":"2014-11-28 13:52:59.000000000","message":"the db field length can not be detacted at runtime. and can not adjust at runtime if you initialized db before.\n\nThat\u0027s consistent logic in db sync and upgrade funciton in ceilometer","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"}],"ceilometer/storage/impl_db2.py":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"4c4dec76ce7fc80e3e5eae213b17cde52b26248b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId())*10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":166,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8c0949_3f04a87d","line":163,"updated":"2014-10-30 11:47:30.000000000","message":"Please round \u0027*\u0027 with spaces.","commit_id":"3a7af6ceb81350af7108d32ca3e733e165727e50"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"00756ac27ed5c295ef0a4101f59e254d286b4334","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId())*10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":166,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8c0949_da081230","line":163,"in_reply_to":"7a8c0949_3f04a87d","updated":"2014-10-30 12:50:22.000000000","message":"Igor, thanks!","commit_id":"3a7af6ceb81350af7108d32ca3e733e165727e50"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"3b4900854b8c01c3ffd936d5e7f9aaba2a7adc9a","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        # queries, so the database won\u0027t take advantage of an index"},{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId()) * 10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_79d3a238","line":162,"updated":"2014-10-30 18:06:43.000000000","message":"I suggest to simply describe the problem as well","commit_id":"96c8da8b3402dbe1247e847cd20c56d2b48ee7b1"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"3bb34d404cee3057666110fb76469779f0b3ac7b","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        # queries, so the database won\u0027t take advantage of an index"},{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId()) * 10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_95c56a5d","line":162,"in_reply_to":"7a8c0949_79d3a238","updated":"2014-10-31 01:39:48.000000000","message":"I\u0027ll add it in next patch set.","commit_id":"96c8da8b3402dbe1247e847cd20c56d2b48ee7b1"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"3b4900854b8c01c3ffd936d5e7f9aaba2a7adc9a","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId()) * 10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":166,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_595266de","line":163,"updated":"2014-10-30 18:06:43.000000000","message":"-1: I think it is better to add a configurable options to let user to decide which length is suitable. we can set the default to 240","commit_id":"96c8da8b3402dbe1247e847cd20c56d2b48ee7b1"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"3bb34d404cee3057666110fb76469779f0b3ac7b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId()) * 10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":166,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_b504267f","line":163,"in_reply_to":"7a8c0949_12d8b3ee","updated":"2014-10-31 01:39:48.000000000","message":"yeah, it would be the best. I had some investigation about this problem. Ceilometer uses \u003chostname\u003e_\u003cnodename\u003e as compute node\u0027s resource id for compute node doesn\u0027t have \u0027uuid\u0027 in Nova. It\u0027s id is an auto_increment int(11). So we can not get an \u0027uuid\u0027 for it.","commit_id":"96c8da8b3402dbe1247e847cd20c56d2b48ee7b1"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"00f81ac2967a130b632d0961b834a69c9f879f73","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId()) * 10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":166,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_95e2ca9d","line":163,"in_reply_to":"7a8c0949_35caf64f","updated":"2014-10-31 02:04:24.000000000","message":"I think this patch is to solve non-fixed length resource id problem for db2, host_name and node_name are set by user (cloud operator), there is no guarantee 240 is the max length suit every cloud settings (but yes almost all will be suit), if we want to settle this problem forever, we should provide a option which can be controlled by operator, not let them hack to code or database, nor provide another patch.\n\nAdding a separate option for db2 is nothing incorrect, MongoDB has its own options (see https://github.com/openstack/ceilometer/blob/master/ceilometer/storage/__init__.py#L61, even if there is no such example, not meaning we cannot do it).","commit_id":"96c8da8b3402dbe1247e847cd20c56d2b48ee7b1"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"3bb34d404cee3057666110fb76469779f0b3ac7b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId()) * 10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":166,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_35caf64f","line":163,"in_reply_to":"7a8c0949_595266de","updated":"2014-10-31 01:39:48.000000000","message":"Yes, we could add one. But this is not a common issue(only a fix for DB2 nosql), it\u0027s not very reasonable to add an option for it. It\u0027s only a value for a column\u0027s length.  Users shouldn\u0027t have such requirement to set a column\u0027s length.","commit_id":"96c8da8b3402dbe1247e847cd20c56d2b48ee7b1"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"ef727d87d6479db5e8e3346c79fcb792480a3466","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId()) * 10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":166,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_12d8b3ee","line":163,"in_reply_to":"7a8c0949_595266de","updated":"2014-10-30 20:55:50.000000000","message":"is there a way to fix this globally? we\u0027ve never been enforcing this but resource/project/user id\u0027s should really be uuids. is it possible to derive a proper/better resource_id ?","commit_id":"96c8da8b3402dbe1247e847cd20c56d2b48ee7b1"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"9e736487153d639a09070ccd4949a6bf4d111ca4","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId()) * 10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":166,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_985201dc","line":163,"in_reply_to":"7a8c0949_95e2ca9d","updated":"2014-10-31 03:04:17.000000000","message":"ok, I\u0027ll fix it in next patch. Thank you! \n\nBTW, max hostname length in Nova is varchar(255), so the max length of \u003chostname\u003e_\u003cnodename\u003e maybe 500.","commit_id":"96c8da8b3402dbe1247e847cd20c56d2b48ee7b1"},{"author":{"_account_id":13189,"name":"Hang Liu","email":"hangliu@cn.ibm.com","username":"hangliu"},"change_message_id":"8d7c6c69a607812c181ba5ea75e25a0b1eeb986b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # including both."},{"line_number":161,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":162,"context_line":"            # Initializing a long resource id to fix bug/1387532"},{"line_number":163,"context_line":"            resource_id \u003d str(bson.objectid.ObjectId()) * 10"},{"line_number":164,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":165,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":166,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_b8317d0d","line":163,"in_reply_to":"7a8c0949_985201dc","updated":"2014-10-31 04:19:34.000000000","message":"Hi, Zhi Kun, We must consider the storage space waste and lookup time if plenty of records have been stored. I am wondering whether 255 can cover most cases. The longest host name I saw is setup by \u0027heat\u0027. -- \"te-ServerGroup-l2yb7vj7a42z-wieuh2tmr4kc-wpbkg57hsngc\" --, which is about 50 characters. \n\nI agree with Gordon that a global solution is needed to address this problem. At least a fixed length string is more suitable to act as a ID. But that may be a little out of scope of this bug fixes.","commit_id":"96c8da8b3402dbe1247e847cd20c56d2b48ee7b1"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"2776f7d0fbd611580a56fb93562c774ee7712e26","unresolved":false,"context_lines":[{"line_number":42,"context_line":"from ceilometer.storage import pymongo_base"},{"line_number":43,"context_line":"from ceilometer import utils"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"cfg.CONF.import_opt(\u0027db2nosql_resource_id_maxlen\u0027, \u0027ceilometer.storage\u0027,"},{"line_number":46,"context_line":"                    group\u003d\"database\")"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a8c0949_f00cd544","line":45,"updated":"2014-11-04 10:54:52.000000000","message":"-1:no need to import this option because already registered in L38","commit_id":"a03437b629926e2098652977536a1f7a942ac60b"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"ed9b40a0c8ed83fce960a5ef190e592a189cf5bd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"from ceilometer.storage import pymongo_base"},{"line_number":43,"context_line":"from ceilometer import utils"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"cfg.CONF.import_opt(\u0027db2nosql_resource_id_maxlen\u0027, \u0027ceilometer.storage\u0027,"},{"line_number":46,"context_line":"                    group\u003d\"database\")"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a8c0949_c1270963","line":45,"in_reply_to":"7a8c0949_63d49d20","updated":"2014-11-04 13:43:59.000000000","message":"Unfortunately, that is not a good example FMPOV. We need to import options before we use it, but if we already do it, there is no need to import it explicitly.","commit_id":"a03437b629926e2098652977536a1f7a942ac60b"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"30997f9fa16812b1993388b1e324cba7ca0c2a00","unresolved":false,"context_lines":[{"line_number":42,"context_line":"from ceilometer.storage import pymongo_base"},{"line_number":43,"context_line":"from ceilometer import utils"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"cfg.CONF.import_opt(\u0027db2nosql_resource_id_maxlen\u0027, \u0027ceilometer.storage\u0027,"},{"line_number":46,"context_line":"                    group\u003d\"database\")"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a8c0949_63d49d20","line":45,"in_reply_to":"7a8c0949_f00cd544","updated":"2014-11-04 11:16:41.000000000","message":"I did not catch your meaning here, I not find L38 import such option here ? \n\nAs you can find impl_mongodb.py. same import.","commit_id":"a03437b629926e2098652977536a1f7a942ac60b"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"57d865d15e5ba65bcc76650289b868a43bf68bea","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        # including both."},{"line_number":162,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":163,"context_line":"            # Initializing a longer resource id to fix bug/1387532."},{"line_number":164,"context_line":"            # Longer resource id is reqpured by compute node\u0027s"},{"line_number":165,"context_line":"            # resource as their id is \u0027\u003chostname\u003e_\u003cnodename\u003e\u0027."},{"line_number":166,"context_line":"            # DB2 creates a VARCHAR(70) for resource id when its"},{"line_number":167,"context_line":"            # length \u003c 70. But DB2 can create a VARCHAR(n) for the"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_73b8eae5","line":164,"updated":"2014-11-12 14:04:07.000000000","message":"%s/reqpured/required","commit_id":"196fa34440a15716fb36dafbad09018e31d4f8c2"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"640c2cd511563d724adbc67f56c263c9240a533d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        # including both."},{"line_number":162,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":163,"context_line":"            # Initializing a longer resource id to fix bug/1387532."},{"line_number":164,"context_line":"            # Longer resource id is reqpured by compute node\u0027s"},{"line_number":165,"context_line":"            # resource as their id is \u0027\u003chostname\u003e_\u003cnodename\u003e\u0027."},{"line_number":166,"context_line":"            # DB2 creates a VARCHAR(70) for resource id when its"},{"line_number":167,"context_line":"            # length \u003c 70. But DB2 can create a VARCHAR(n) for the"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_9208de2e","line":164,"in_reply_to":"5a890539_73b8eae5","updated":"2014-11-13 02:19:08.000000000","message":"Thanks for pointing it, I will change that.\n\nAs Zhi Qiang said need to wait for another commit, so I will send changes for that when time ready.","commit_id":"196fa34440a15716fb36dafbad09018e31d4f8c2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7fe72334d1b1fddded6b444188c03b6c786377bf","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # queries, so the database won\u0027t take advantage of an index"},{"line_number":161,"context_line":"        # including both."},{"line_number":162,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":163,"context_line":"            # Initializing a longer resource id to fix bug/1387532."},{"line_number":164,"context_line":"            # Longer resource id is required by compute node\u0027s"},{"line_number":165,"context_line":"            # resource as their id is \u0027\u003chostname\u003e_\u003cnodename\u003e\u0027."},{"line_number":166,"context_line":"            # DB2 creates a VARCHAR(70) for resource id when its"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_a5187276","line":163,"updated":"2014-11-27 15:43:55.000000000","message":"The launchpad bug ID is in the commit message, you don\u0027t need to mention it in the code.  The only time I see bug references in the code is for external issue tracking, e.g. Red Hat bugzilla\u0027s in libvirt code, etc.","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"5f234be20453ff7a7977cd9f7d450e7eb0f653e8","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # queries, so the database won\u0027t take advantage of an index"},{"line_number":161,"context_line":"        # including both."},{"line_number":162,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":163,"context_line":"            # Initializing a longer resource id to fix bug/1387532."},{"line_number":164,"context_line":"            # Longer resource id is required by compute node\u0027s"},{"line_number":165,"context_line":"            # resource as their id is \u0027\u003chostname\u003e_\u003cnodename\u003e\u0027."},{"line_number":166,"context_line":"            # DB2 creates a VARCHAR(70) for resource id when its"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_8b57e9c9","line":163,"in_reply_to":"5a890539_3c864614","updated":"2014-11-29 08:19:43.000000000","message":"I am ok to remove it . It is  a just style.","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"169dd90946c47f8e204e68275ba2fd9769491fc6","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # queries, so the database won\u0027t take advantage of an index"},{"line_number":161,"context_line":"        # including both."},{"line_number":162,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":163,"context_line":"            # Initializing a longer resource id to fix bug/1387532."},{"line_number":164,"context_line":"            # Longer resource id is required by compute node\u0027s"},{"line_number":165,"context_line":"            # resource as their id is \u0027\u003chostname\u003e_\u003cnodename\u003e\u0027."},{"line_number":166,"context_line":"            # DB2 creates a VARCHAR(70) for resource id when its"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_b4c6d466","line":163,"in_reply_to":"5a890539_a5187276","updated":"2014-11-28 13:52:59.000000000","message":"The reason we mentioned here is for clearance for this work-around ways","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8a228a44205dc047a352375e743cc8118b468f51","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # queries, so the database won\u0027t take advantage of an index"},{"line_number":161,"context_line":"        # including both."},{"line_number":162,"context_line":"        if self.db.resource.index_information() \u003d\u003d {}:"},{"line_number":163,"context_line":"            # Initializing a longer resource id to fix bug/1387532."},{"line_number":164,"context_line":"            # Longer resource id is required by compute node\u0027s"},{"line_number":165,"context_line":"            # resource as their id is \u0027\u003chostname\u003e_\u003cnodename\u003e\u0027."},{"line_number":166,"context_line":"            # DB2 creates a VARCHAR(70) for resource id when its"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_3c864614","line":163,"in_reply_to":"5a890539_b4c6d466","updated":"2014-11-28 16:51:41.000000000","message":"The workaround is already explained below, you don\u0027t need the bug ID in the code comments, that\u0027s already in the git history via the commit message.","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7fe72334d1b1fddded6b444188c03b6c786377bf","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            # length \u003c 70. But DB2 can create a VARCHAR(n) for the"},{"line_number":168,"context_line":"            # resource id which has n(n\u003e70) characters. Users can adjust"},{"line_number":169,"context_line":"            # \u0027db2nosql_resource_id_maxlen\u0027(default is 512) for their ENV."},{"line_number":170,"context_line":"            resource_id \u003d \u0027x\u0027 * cfg.CONF.database.db2nosql_resource_id_maxlen"},{"line_number":171,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":172,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":173,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_653ccac0","line":170,"updated":"2014-11-27 15:43:55.000000000","message":"Why is there no unit test to make sure this is used here?  If it\u0027s a bad enough bug that we need a config option to fix it, we should have a unit test to guard against regression.","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"169dd90946c47f8e204e68275ba2fd9769491fc6","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            # length \u003c 70. But DB2 can create a VARCHAR(n) for the"},{"line_number":168,"context_line":"            # resource id which has n(n\u003e70) characters. Users can adjust"},{"line_number":169,"context_line":"            # \u0027db2nosql_resource_id_maxlen\u0027(default is 512) for their ENV."},{"line_number":170,"context_line":"            resource_id \u003d \u0027x\u0027 * cfg.CONF.database.db2nosql_resource_id_maxlen"},{"line_number":171,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":172,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":173,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_74754ccb","line":170,"in_reply_to":"5a890539_653ccac0","updated":"2014-11-28 13:52:59.000000000","message":"Yes, it would better to add unit test for related configurations. However, II did not find related storage important configurations like metering_connection and etcs are unit tested.\n\nAnd this issue happen when user have  hostname longer than 35 chars.  I think unit test here is not needed here.","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8a228a44205dc047a352375e743cc8118b468f51","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            # length \u003c 70. But DB2 can create a VARCHAR(n) for the"},{"line_number":168,"context_line":"            # resource id which has n(n\u003e70) characters. Users can adjust"},{"line_number":169,"context_line":"            # \u0027db2nosql_resource_id_maxlen\u0027(default is 512) for their ENV."},{"line_number":170,"context_line":"            resource_id \u003d \u0027x\u0027 * cfg.CONF.database.db2nosql_resource_id_maxlen"},{"line_number":171,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":172,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":173,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_fca4beba","line":170,"in_reply_to":"5a890539_74754ccb","updated":"2014-11-28 16:51:41.000000000","message":"This is the second ceilometer review I\u0027ve been on where people say there aren\u0027t existing unit tests for a thing so we don\u0027t need them, I don\u0027t buy that excuse.  How hard is it to just write a unit test module for this code which uses mock and hits the upgrade method, mocks out the db module and just validates that the config option is used correctly?  One of the basic tenets of OpenStack is every bug fix should have accompanying unit test coverage.","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1b34522241e5b9c6e948e642d9c6bcc9a1b7abb6","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            # length \u003c 70. But DB2 can create a VARCHAR(n) for the"},{"line_number":168,"context_line":"            # resource id which has n(n\u003e70) characters. Users can adjust"},{"line_number":169,"context_line":"            # \u0027db2nosql_resource_id_maxlen\u0027(default is 512) for their ENV."},{"line_number":170,"context_line":"            resource_id \u003d \u0027x\u0027 * cfg.CONF.database.db2nosql_resource_id_maxlen"},{"line_number":171,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":172,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":173,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_ce6bbf1d","line":170,"in_reply_to":"5a890539_cb701176","updated":"2014-11-29 14:04:12.000000000","message":"It shouldn\u0027t be hard to add a new test class that extends BaseTestCase and a test case that uses mock to cover this upgrade method in http://git.openstack.org/cgit/openstack/ceilometer/tree/ceilometer/tests/storage/test_impl_db2.py.\n\nI\u0027d just call the new test class ConnectionTestCase and then just have a test_upgrade test case that mocks out the actual DB connection but asserts the usage of the config option.","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"5f234be20453ff7a7977cd9f7d450e7eb0f653e8","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            # length \u003c 70. But DB2 can create a VARCHAR(n) for the"},{"line_number":168,"context_line":"            # resource id which has n(n\u003e70) characters. Users can adjust"},{"line_number":169,"context_line":"            # \u0027db2nosql_resource_id_maxlen\u0027(default is 512) for their ENV."},{"line_number":170,"context_line":"            resource_id \u003d \u0027x\u0027 * cfg.CONF.database.db2nosql_resource_id_maxlen"},{"line_number":171,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":172,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":173,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_cb701176","line":170,"in_reply_to":"5a890539_dc02a271","updated":"2014-11-29 08:19:43.000000000","message":"I can help to add unit tes if you really think need to do.\n\nFrankly speaking, I think every new test should have same base. If something test, something not tested.\nWe don\u0027t know whatt\u0027s guide line for unit-test.\nAlso this is not fix bug for ceilometer, it is just because DB2 nosql not support well, we add work-around in ceilometer. not means fix ceilomete bug itself.\n\nAnyway, I am ok to help add unit test for this work-around. I need spend extra time to find what\u0027s proper for this test. since ceilometer test(storage configurations) not have proper example for such test to refer.","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cfc533a3f5045aa5480eb6d69b78de8d79a832bc","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            # length \u003c 70. But DB2 can create a VARCHAR(n) for the"},{"line_number":168,"context_line":"            # resource id which has n(n\u003e70) characters. Users can adjust"},{"line_number":169,"context_line":"            # \u0027db2nosql_resource_id_maxlen\u0027(default is 512) for their ENV."},{"line_number":170,"context_line":"            resource_id \u003d \u0027x\u0027 * cfg.CONF.database.db2nosql_resource_id_maxlen"},{"line_number":171,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":172,"context_line":"                                     \u0027no_key\u0027: resource_id})"},{"line_number":173,"context_line":"            meter_id \u003d str(bson.objectid.ObjectId())"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a890539_dc02a271","line":170,"in_reply_to":"5a890539_fca4beba","updated":"2014-11-28 16:53:55.000000000","message":"http://docs.openstack.org/developer/hacking/#creating-unit-tests","commit_id":"cd2fe8788be734041532cdcd9c07a5f3993bc5af"}]}
