)]}'
{"ceilometer/storage/impl_db2.py":[{"author":{"_account_id":9215,"name":"Tong Da","email":"tongda@outlook.com","username":"tongda"},"change_message_id":"2acc5c8b88921aa4a60cfc8038443a3ea1269780","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def _generate_random_str(self, str_len):"},{"line_number":151,"context_line":"        objectid_len \u003d len(str(bson.objectid.ObjectId()))"},{"line_number":152,"context_line":"        init_str \u003d str(bson.objectid.ObjectId())"},{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_105f6f42","line":152,"updated":"2015-03-06 09:21:50.000000000","message":"Line 151 \u0026152 can be refactored to:\n\ninit_str \u003d str(bson.objectid.ObjectId())\n\nobjectid_len \u003d len(init_str)\n\n\nonly generate ObjectId once.","commit_id":"0de885bacc2f6960e2c62d573929cc6315efdd86"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"7c62a727c72955dd31c12fff3d97e39ec42de66e","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def _generate_random_str(self, str_len):"},{"line_number":151,"context_line":"        objectid_len \u003d len(str(bson.objectid.ObjectId()))"},{"line_number":152,"context_line":"        init_str \u003d str(bson.objectid.ObjectId())"},{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_ab647649","line":152,"in_reply_to":"9a80dd14_105f6f42","updated":"2015-03-06 09:28:45.000000000","message":"Sure, Thanks","commit_id":"0de885bacc2f6960e2c62d573929cc6315efdd86"},{"author":{"_account_id":9215,"name":"Tong Da","email":"tongda@outlook.com","username":"tongda"},"change_message_id":"2acc5c8b88921aa4a60cfc8038443a3ea1269780","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d \u0027\u0027.join(("},{"line_number":157,"context_line":"                str(bson.objectid.ObjectId()) * int(str_len/objectid_len),"},{"line_number":158,"context_line":"                \u0027x\u0027 * int(str_len - str_len/objectid_len * objectid_len)))"},{"line_number":159,"context_line":"            return init_str"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def upgrade(self, version\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_eba90ee0","line":158,"updated":"2015-03-06 09:21:50.000000000","message":"Refactor to:\n\ninit_str \u003d \u0027\u0027.join(init_str * (str_len/objectid_len), \u0027x\u0027 * (objectid_len - str_len % objectid_len))","commit_id":"0de885bacc2f6960e2c62d573929cc6315efdd86"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"7c62a727c72955dd31c12fff3d97e39ec42de66e","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d \u0027\u0027.join(("},{"line_number":157,"context_line":"                str(bson.objectid.ObjectId()) * int(str_len/objectid_len),"},{"line_number":158,"context_line":"                \u0027x\u0027 * int(str_len - str_len/objectid_len * objectid_len)))"},{"line_number":159,"context_line":"            return init_str"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def upgrade(self, version\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_4b785af2","line":158,"in_reply_to":"9a80dd14_eba90ee0","updated":"2015-03-06 09:28:45.000000000","message":"For here, you can not remove int() operator here,\nI have tested, if we remove that, it would complain it is a float, can not * \"str\". That\u0027s why I added int() here.\n\n\nThanks","commit_id":"0de885bacc2f6960e2c62d573929cc6315efdd86"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2c5f07a7a4def22931ccb2f69af4d53fa4931429","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d \u0027\u0027.join(("},{"line_number":157,"context_line":"                init_str * int(str_len/objectid_len),"},{"line_number":158,"context_line":"                \u0027x\u0027 * int(str_len % objectid_len)))"},{"line_number":159,"context_line":"            return init_str"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_be762804","line":156,"updated":"2015-03-09 13:55:33.000000000","message":"i don\u0027t think you need \u0027join\u0027 for an iterable of two. just add them","commit_id":"84009306e47e1faf34c5e2366dd565a656521679"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"d6a718949e8f54fb47748d829c680ca993de095d","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d \u0027\u0027.join(("},{"line_number":157,"context_line":"                init_str * int(str_len/objectid_len),"},{"line_number":158,"context_line":"                \u0027x\u0027 * int(str_len % objectid_len)))"},{"line_number":159,"context_line":"            return init_str"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_e400fc67","line":156,"in_reply_to":"9a80dd14_be762804","updated":"2015-03-10 00:51:45.000000000","message":"Hi, @gordon, the reason I used join here, (because I don\u0027t like to use \\ for more lines)\n\nIf you really think join bad, I sent patch3 review use add as you suggest. Pls help check.\n\nThanks","commit_id":"84009306e47e1faf34c5e2366dd565a656521679"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"3ca6cce7168a63247f035bfa66a8fce04d991859","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        init_str \u003d str(bson.objectid.ObjectId())"},{"line_number":152,"context_line":"        objectid_len \u003d len(init_str)"},{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d init_str * int(str_len/objectid_len) + \\"},{"line_number":157,"context_line":"                \u0027x\u0027 * int(str_len % objectid_len)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_d559e08e","line":154,"updated":"2015-03-10 02:52:48.000000000","message":"if the objectid_len is greater than the str_len, then you will return the string which is longer than a string the maximum length allowed, will this be a problem when you insert into the db? am I missing something?","commit_id":"2f57c393dc491a0574453b232aaeb616358c3299"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"de40f1f1551aeac272d4dff00143905907ef4b1a","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        init_str \u003d str(bson.objectid.ObjectId())"},{"line_number":152,"context_line":"        objectid_len \u003d len(init_str)"},{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d init_str * int(str_len/objectid_len) + \\"},{"line_number":157,"context_line":"                \u0027x\u0027 * int(str_len % objectid_len)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_10e0e627","line":154,"in_reply_to":"9a80dd14_d559e08e","updated":"2015-03-10 03:02:29.000000000","message":"I think it is not valid to config less than objectid_len(because it is 24 or less, I not remember clearly), use seldom config such small number, instead we pop invalid configuration,\n\nwe just return such init_str, and db2 nosql would init tables as before(juno and before).","commit_id":"2f57c393dc491a0574453b232aaeb616358c3299"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"3ca6cce7168a63247f035bfa66a8fce04d991859","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d init_str * int(str_len/objectid_len) + \\"},{"line_number":157,"context_line":"                \u0027x\u0027 * int(str_len % objectid_len)"},{"line_number":158,"context_line":"            return init_str"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def upgrade(self, version\u003dNone):"},{"line_number":161,"context_line":"        # Establish indexes"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_75df54d6","line":158,"updated":"2015-03-10 02:52:48.000000000","message":"Please add a test case for this method to make sure that two cases return the expected values.","commit_id":"2f57c393dc491a0574453b232aaeb616358c3299"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"c591367147a3a8e7b0ae17ca7312f9597297e24b","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d init_str * int(str_len/objectid_len) + \\"},{"line_number":157,"context_line":"                \u0027x\u0027 * int(str_len % objectid_len)"},{"line_number":158,"context_line":"            return init_str"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def upgrade(self, version\u003dNone):"},{"line_number":161,"context_line":"        # Establish indexes"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_facb2c6f","line":158,"in_reply_to":"9a80dd14_75df54d6","updated":"2015-03-10 05:27:11.000000000","message":"Done","commit_id":"2f57c393dc491a0574453b232aaeb616358c3299"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"c0156d4cee6dc8939894248ac58c9c07c5997a36","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    def _generate_random_str(self, str_len):"},{"line_number":151,"context_line":"        init_str \u003d str(bson.objectid.ObjectId())"},{"line_number":152,"context_line":"        objectid_len \u003d len(init_str)"},{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d init_str * int(str_len/objectid_len) + \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_01ac108b","line":153,"updated":"2015-03-10 10:17:34.000000000","message":"You make simplify it like:\nif objectid_len \u003e\u003d str_len:\n    init_str \u003d (init_str * int(str_len/objectid_len) + \u0027x\u0027 * int(str_len % objectid_len))\nreturn init_str\n\nAnd -1 note: The preferred way of wrapping long lines is by using Python\u0027s implied line continuation inside parentheses, brackets and braces instead \"\\\"","commit_id":"321059ae268b7b3b9b2707f7ee93074f46c97e7a"},{"author":{"_account_id":13273,"name":"Lena Novokshonova","email":"enovokshonova@mirantis.com","username":"enovokshonova"},"change_message_id":"c7f4fbdb73cf0e19d37083ad69121326bbc2feab","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    def _generate_random_str(self, str_len):"},{"line_number":151,"context_line":"        init_str \u003d str(bson.objectid.ObjectId())"},{"line_number":152,"context_line":"        objectid_len \u003d len(init_str)"},{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d init_str * int(str_len/objectid_len) + \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_0a1420e7","line":153,"in_reply_to":"9a80dd14_01ac108b","updated":"2015-03-10 12:52:13.000000000","message":"Agree with Ilya, it would be better","commit_id":"321059ae268b7b3b9b2707f7ee93074f46c97e7a"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"5fb864aa55c6a553ac28e8303b0835223255d94e","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    def _generate_random_str(self, str_len):"},{"line_number":151,"context_line":"        init_str \u003d str(bson.objectid.ObjectId())"},{"line_number":152,"context_line":"        objectid_len \u003d len(init_str)"},{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d init_str * int(str_len/objectid_len) + \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_7b171055","line":153,"in_reply_to":"9a80dd14_01ac108b","updated":"2015-03-10 23:56:59.000000000","message":"Thanks for your comments. Have done. Pls check.","commit_id":"321059ae268b7b3b9b2707f7ee93074f46c97e7a"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"5fb864aa55c6a553ac28e8303b0835223255d94e","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    def _generate_random_str(self, str_len):"},{"line_number":151,"context_line":"        init_str \u003d str(bson.objectid.ObjectId())"},{"line_number":152,"context_line":"        objectid_len \u003d len(init_str)"},{"line_number":153,"context_line":"        if str_len \u003c objectid_len:"},{"line_number":154,"context_line":"            return init_str"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            init_str \u003d init_str * int(str_len/objectid_len) + \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_9b1cc479","line":153,"in_reply_to":"9a80dd14_0a1420e7","updated":"2015-03-10 23:56:59.000000000","message":"Done","commit_id":"321059ae268b7b3b9b2707f7ee93074f46c97e7a"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"ce2f8b5882013ca66a6ddfc963341114ad6d9719","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            # VARCHAR(n) for the resource id which has n(n\u003e70) characters."},{"line_number":172,"context_line":"            # Users can adjust \u0027db2nosql_resource_id_maxlen\u0027(default is 512)"},{"line_number":173,"context_line":"            # for their ENV."},{"line_number":174,"context_line":"            resource_id \u003d self._generate_random_str("},{"line_number":175,"context_line":"                cfg.CONF.database.db2nosql_resource_id_maxlen)"},{"line_number":176,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":177,"context_line":"                                     \u0027no_key\u0027: resource_id})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_06532f3a","line":174,"updated":"2015-03-16 20:33:41.000000000","message":"Name for config confuses a little bit. According implementation we enlarge resource_id if it\u0027s length is less then \u0027cfg.CONF.database.db2nosql_resource_id_maxlen\u0027. It would be better to rename \u0027db2nosql_resource_id_minlen\u0027 :) But it\u0027s just a comment for future","commit_id":"45bb98531ba4ef757c50a080652c81bc21e3d9dd"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"2b77be186607555b7d834ae2e3de7a8cb82ce272","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            # VARCHAR(n) for the resource id which has n(n\u003e70) characters."},{"line_number":172,"context_line":"            # Users can adjust \u0027db2nosql_resource_id_maxlen\u0027(default is 512)"},{"line_number":173,"context_line":"            # for their ENV."},{"line_number":174,"context_line":"            resource_id \u003d self._generate_random_str("},{"line_number":175,"context_line":"                cfg.CONF.database.db2nosql_resource_id_maxlen)"},{"line_number":176,"context_line":"            self.db.resource.insert({\u0027_id\u0027: resource_id,"},{"line_number":177,"context_line":"                                     \u0027no_key\u0027: resource_id})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_4ed1b12e","line":174,"in_reply_to":"9a80dd14_06532f3a","updated":"2015-03-17 05:09:46.000000000","message":"Thanks Nadya. The name maxlen because, it is default use for db2 insert max char length.\n\nBut if user config the maxlen too small, (for example less than str(bson.objectid.ObjectId()) (I not remember clearly its length, maybe 24) Instead we poped exception, we use such 24 as str length. It may cause your confusion :)\n\nThanks","commit_id":"45bb98531ba4ef757c50a080652c81bc21e3d9dd"}]}
