)]}'
{"troveclient/tests/test_base.py":[{"author":{"_account_id":25113,"name":"Fan Zhang","email":"zh.f@outlook.com","username":"fanzhang"},"change_message_id":"ab87c237f12fa371b9731cba7eee446c633a9f3f","unresolved":false,"context_lines":[{"line_number":355,"context_line":"                          self.manager,"},{"line_number":356,"context_line":"                          \u0027asdf\u0027)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"    def test_find_by_integer_id(self):"},{"line_number":359,"context_line":"        output \u003d utils.find_resource(self.manager, 1234)"},{"line_number":360,"context_line":"        self.assertEqual(self.manager.get(\u00271234\u0027), output)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def test_find_by_str_id(self):"},{"line_number":363,"context_line":"        output \u003d utils.find_resource(self.manager, \u00271234\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_37806746","line":360,"range":{"start_line":358,"start_character":4,"end_line":360,"end_character":58},"updated":"2018-01-09 02:55:43.000000000","message":"Here is a test about find an instance by integer id. \nThe test you added, is the same as test_find_by_str_displayname, I don\u0027t think this test would work. \nMaybe saving the resource name as a string type would be better.\nI\u0027d like to hear more discussions about this.","commit_id":"1f9f5cd02c4fb040ea68c5e88bd3b89750396358"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"acbf89d734d2cd26ce017014b5e3ea7060bb8b59","unresolved":false,"context_lines":[{"line_number":355,"context_line":"                          self.manager,"},{"line_number":356,"context_line":"                          \u0027asdf\u0027)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"    def test_find_by_integer_id(self):"},{"line_number":359,"context_line":"        output \u003d utils.find_resource(self.manager, 1234)"},{"line_number":360,"context_line":"        self.assertEqual(self.manager.get(\u00271234\u0027), output)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def test_find_by_str_id(self):"},{"line_number":363,"context_line":"        output \u003d utils.find_resource(self.manager, \u00271234\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_b7bf97a8","line":360,"range":{"start_line":358,"start_character":4,"end_line":360,"end_character":58},"in_reply_to":"9f91af0f_37806746","updated":"2018-01-09 03:24:33.000000000","message":"1. test_find_by_str_displayname is diffrent with test_find_by_int_displayname. They are different test path.\n\ntest_find_by_str_displayname \u00271234\u0027 dispalyname is string type and keep string string.\n\ntest_find_by_int_displayname \u00275678\u0027 displayname  will be changed to interge. \nsee: https://github.com/openstack/python-troveclient/blob/master/troveclient/utils.py#L218\n\n\n\n2. test_find_by_integer_id is different with test_find_by_int_displayname.\ntest_find_by_integer_id is about resource id is integer not dispalyname.","commit_id":"1f9f5cd02c4fb040ea68c5e88bd3b89750396358"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"4f01a59a94ac2c6677627911acaf68f54f72206b","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, \u00275678\u0027)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_978e1377","line":379,"updated":"2018-01-09 02:57:35.000000000","message":"\u00275678\u0027 is a str, not a int. See \u0027test_find_by_integer_id\u0027 and \u0027test_find_by_str_id\u0027 above. We may be both \u0027test_find_by_integer_name\u0027 and \u0027test_find_by_str_integer_name\u0027.","commit_id":"1f9f5cd02c4fb040ea68c5e88bd3b89750396358"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"32b7a196ce7c3cf537a0ec13e4319fdd6df4db56","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, \u00275678\u0027)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_68d36e61","line":379,"in_reply_to":"9f91af0f_2aa79e0d","updated":"2018-01-09 06:01:58.000000000","message":"get it.","commit_id":"1f9f5cd02c4fb040ea68c5e88bd3b89750396358"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"3ea4ea20759003d76c0c09299d4c1753ea6fd243","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, \u00275678\u0027)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_2aa79e0d","line":379,"in_reply_to":"9f91af0f_770cafa4","updated":"2018-01-09 03:45:33.000000000","message":"name_of_id will be converted in find_resource, that just is what we want to test here.\n\nSo if we need to test integer or full_of_digits string names, we need another two tests here. In these tests, find_resource should be called by names not IDs, it may like this:\n\n    def test_find_by_integer_name(self):                                                                                                                \n        output \u003d utils.find_resource(self.manager, 9678)\n        ...\n\n    def test_find_by_str_integer_name(self):                                                                                                                \n        output \u003d utils.find_resource(self.manager, \u00279678\u0027)\n        ...","commit_id":"1f9f5cd02c4fb040ea68c5e88bd3b89750396358"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"acbf89d734d2cd26ce017014b5e3ea7060bb8b59","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, \u00275678\u0027)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_770cafa4","line":379,"in_reply_to":"9f91af0f_978e1377","updated":"2018-01-09 03:24:33.000000000","message":"\u00275678\u0027 will be changed to integer. It\u0027s different with test_find_by_str_id.\n\u00271234\u0027 display name is string type.\nsee: https://github.com/openstack/python-troveclient/blob/master/troveclient/utils.py#L218","commit_id":"1f9f5cd02c4fb040ea68c5e88bd3b89750396358"},{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"cd496462726c69f6a2091f87d4aea9e0a69c173d","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        FakeResource(\u00271234\u0027, {\u0027name\u0027: \u0027entity_one\u0027}),"},{"line_number":332,"context_line":"        FakeResource(UUID, {\u0027name\u0027: \u0027entity_two\u0027}),"},{"line_number":333,"context_line":"        FakeResource(\u00274242\u0027, {\u0027display_name\u0027: \u0027entity_three\u0027}),"},{"line_number":334,"context_line":"        FakeResource(\u00275678\u0027, {\u0027name\u0027: \u00279876\u0027})"},{"line_number":335,"context_line":"    ]"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def get(self, resource_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_d3af4f92","line":334,"range":{"start_line":334,"start_character":43,"end_line":334,"end_character":46},"updated":"2018-01-12 02:41:37.000000000","message":"If you want test dispayname, add a new FakeResource. But I think it\u0027s enough to validate your change by test name","commit_id":"b6e46589e151ea7f4e80a9a2d1bb44cf9b05e087"},{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"cd496462726c69f6a2091f87d4aea9e0a69c173d","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_str_int_displayname(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, \u00279876\u0027)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_f8626a16","line":378,"range":{"start_line":378,"start_character":45,"end_line":378,"end_character":47},"updated":"2018-01-12 02:41:37.000000000","message":"1. \"9876\" is name not displayname.\n2. This test is  unnecessary, it\u0027s the same with `test_find_by_str_name`","commit_id":"b6e46589e151ea7f4e80a9a2d1bb44cf9b05e087"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"213ac38fe7a7c9222749d4ac0d4705a22d0fdf2e","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_str_int_displayname(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, \u00279876\u0027)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_ff122258","line":378,"range":{"start_line":378,"start_character":45,"end_line":378,"end_character":47},"in_reply_to":"7f96bb07_f8626a16","updated":"2018-01-15 02:00:02.000000000","message":"to 2: It\u0027s different with test_find_by_str_name. They are different test path.  \nsee: https://github.com/openstack/python-troveclient/blob/master/troveclient/utils.py#L218\n\ntest_find_by_str_name: name is a string and isdigit() \u003d\u003d False.\ntest_find_by_int_displayname :   name is a string and isdigit() \u003d\u003d true.","commit_id":"b6e46589e151ea7f4e80a9a2d1bb44cf9b05e087"},{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"cd496462726c69f6a2091f87d4aea9e0a69c173d","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, \u00279876\u0027)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def test_find_by_int_displayname(self):"},{"line_number":383,"context_line":"        output \u003d utils.find_resource(self.manager, 9876)"},{"line_number":384,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":385,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_b3b5e3f0","line":382,"range":{"start_line":382,"start_character":41,"end_line":382,"end_character":43},"updated":"2018-01-12 02:41:37.000000000","message":"the same by_int_displayname---\u003eby_int_name","commit_id":"b6e46589e151ea7f4e80a9a2d1bb44cf9b05e087"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"2610b88203d1bc04430c41fca644901a730d916a","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, 9876)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_7aadbd86","line":378,"updated":"2018-01-15 07:05:16.000000000","message":"\u0027test_find_by_str_int_name\u0027 is still needed for names in which all characters are digits.","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"2b7c91e3d50b63bd8716369787debbb7d93807b7","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, 9876)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_3deacf0e","line":378,"in_reply_to":"7f96bb07_1d26f3b8","updated":"2018-01-15 07:50:20.000000000","message":"\u00279876\u0027 and \u0027entity_one\u0027 will go the same code path only after your change has been merged. By now, \u00279876\u0027 will convert to int, and \u0027entity_one\u0027 will not.","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"2fe4c2012bbb1e7d6c27712a2db357ef0f53b1c4","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, 9876)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_eec10b82","line":378,"in_reply_to":"7f96bb07_3deacf0e","updated":"2018-01-15 09:36:33.000000000","message":"partly agree with minmin，in your change \u00279876\u0027 and \u0027entrty_one\u0027 not the same path, but they both be treated as string. So I think just a `by_int_name` is enough.","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"c943410d32779540523b3bc6eb6d41674bff3adc","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, 9876)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_e1359947","line":378,"in_reply_to":"7f96bb07_4e64bf22","updated":"2018-01-15 12:19:03.000000000","message":"I maybe not get your point. I don\u0027t think the duplicated test case make sense.","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"f60173667b09c120eaab806da4439f151013f9b2","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, 9876)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_1d26f3b8","line":378,"in_reply_to":"7f96bb07_7aadbd86","updated":"2018-01-15 07:33:20.000000000","message":"I don\u0027t agree with you. The string \u00279876\u0027 is same path with \u0027entity_one\u0027.  They are both the string type.","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"c1c39d9aa8acf4dc6be75853a3cf5a25b423a78b","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, 9876)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_c4f50b85","line":378,"in_reply_to":"7f96bb07_a1db11eb","updated":"2018-01-15 12:49:16.000000000","message":"minmin: yes, they are. I think I miss that you remove the \u0027is_digital()\u0027","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"c943410d32779540523b3bc6eb6d41674bff3adc","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, 9876)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_a1db11eb","line":378,"in_reply_to":"7f96bb07_eec10b82","updated":"2018-01-15 12:19:03.000000000","message":"I cannot get your point. Why are \u00279876\u0027 and \u0027entity_one\u0027 different code path? Are they both string type name and not converted with six.text_type, aren\u0027t they?","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"9f6e4ca36d5089390e6486ec0e4e905c4cb19d58","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        output \u003d utils.find_resource(self.manager, \u0027entity_three\u0027)"},{"line_number":376,"context_line":"        self.assertEqual(self.manager.get(\u00274242\u0027), output)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def test_find_by_int_name(self):"},{"line_number":379,"context_line":"        output \u003d utils.find_resource(self.manager, 9876)"},{"line_number":380,"context_line":"        self.assertEqual(self.manager.get(\u00275678\u0027), output)"},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_4e64bf22","line":378,"in_reply_to":"7f96bb07_eec10b82","updated":"2018-01-15 10:04:03.000000000","message":"In fact, utils.find_resource(self.manager, 9876) and utils.find_resource(self.manager, \u00279876\u0027), will both cause prolbems before this patch, on the other hand, utils.find_resource(self.manager, \u0027entity_one\u0027) will work as expected, so I think it\u0027s worth to add two separate tests. \n\nAfter this fix, utils.find_resource(self.manager, \u00279876\u0027) will use the same path with utils.find_resource(self.manager, \u0027entity_one\u0027), so testing for utils.find_resource(self.manager, \u00279876\u0027) is not neccessary, but we could leave this as a special case for the bug (keeping an note to refer this bug).","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"}],"troveclient/utils.py":[{"author":{"_account_id":24739,"name":"Yao Wang","email":"wangyao@cmss.chinamobile.com","username":"wangyao"},"change_message_id":"2ecedc4f6d4fde089a93f46a02001aca7e465dff","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    # first try to get entity as integer id"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    # if the \u0027id\u0027 starts with \u00270\u0027 don\u0027t treat it as an int"},{"line_number":218,"context_line":"    if isinstance(name_or_id, int) or ("},{"line_number":219,"context_line":"            name_or_id.isdigit() and not name_or_id.startswith(\u00270\u0027)):"},{"line_number":220,"context_line":"        name_or_id \u003d int(name_or_id)"},{"line_number":221,"context_line":"    elif sys.version_info \u003c\u003d (3, 0):"},{"line_number":222,"context_line":"        name_or_id \u003d encodeutils.safe_decode(name_or_id)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_b2b4aed2","line":220,"range":{"start_line":218,"start_character":4,"end_line":220,"end_character":36},"updated":"2018-01-06 09:35:40.000000000","message":"Maybe we should modify here to fix this bug","commit_id":"13939e99db5c7e71983833b4decf6919c2583d6a"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"9ae820acdcddebdfa31d04972eef829776747456","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    # first try to get entity as integer id"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    # if the \u0027id\u0027 starts with \u00270\u0027 don\u0027t treat it as an int"},{"line_number":218,"context_line":"    if isinstance(name_or_id, int) or ("},{"line_number":219,"context_line":"            name_or_id.isdigit() and not name_or_id.startswith(\u00270\u0027)):"},{"line_number":220,"context_line":"        name_or_id \u003d int(name_or_id)"},{"line_number":221,"context_line":"    elif sys.version_info \u003c\u003d (3, 0):"},{"line_number":222,"context_line":"        name_or_id \u003d encodeutils.safe_decode(name_or_id)"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_ed72427b","line":220,"range":{"start_line":218,"start_character":4,"end_line":220,"end_character":36},"in_reply_to":"9f91af0f_b2b4aed2","updated":"2018-01-08 15:08:05.000000000","message":"Agreed. Seems like it\u0027s not neccessary to use name_or_id as an integer, we can always use a string instead without a problem.","commit_id":"13939e99db5c7e71983833b4decf6919c2583d6a"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"4f01a59a94ac2c6677627911acaf68f54f72206b","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        # finally try to find entity by name"},{"line_number":236,"context_line":"        try:"},{"line_number":237,"context_line":"            if isinstance(name_or_id, int):"},{"line_number":238,"context_line":"                name_or_id \u003d encodeutils.safe_decode("},{"line_number":239,"context_line":"                    six.text_type(name_or_id))"},{"line_number":240,"context_line":"            return manager.find(name\u003dname_or_id)"},{"line_number":241,"context_line":"        except exceptions.NotFound:"},{"line_number":242,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_17f0c3fc","line":239,"range":{"start_line":237,"start_character":0,"end_line":239,"end_character":46},"updated":"2018-01-09 02:57:35.000000000","message":"How about move this to L218-L222? Seems like there\u0027s no need to treat name_or_id as a int?","commit_id":"1f9f5cd02c4fb040ea68c5e88bd3b89750396358"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"2610b88203d1bc04430c41fca644901a730d916a","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    # first try to get entity as integer id"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    # When the \u0027name_or_id\u0027 is int, covert it to string."},{"line_number":218,"context_line":"    # Related to bug/1740015"},{"line_number":219,"context_line":"    if isinstance(name_or_id, int):"},{"line_number":220,"context_line":"        name_or_id \u003d six.text_type(name_or_id)"},{"line_number":221,"context_line":"    if sys.version_info \u003c\u003d (3, 0):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_1aafd994","line":218,"updated":"2018-01-15 07:05:16.000000000","message":"Should explain why this is changed here.","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"2610b88203d1bc04430c41fca644901a730d916a","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    # Related to bug/1740015"},{"line_number":219,"context_line":"    if isinstance(name_or_id, int):"},{"line_number":220,"context_line":"        name_or_id \u003d six.text_type(name_or_id)"},{"line_number":221,"context_line":"    if sys.version_info \u003c\u003d (3, 0):"},{"line_number":222,"context_line":"        name_or_id \u003d encodeutils.safe_decode(name_or_id)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_7a785d29","line":221,"updated":"2018-01-15 07:05:16.000000000","message":"Use \u0027elif\u0027, otherwise, str type \u0027name_or_id\u0027 will convert twice in python 2.x.","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"9f6e4ca36d5089390e6486ec0e4e905c4cb19d58","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    # Related to bug/1740015"},{"line_number":219,"context_line":"    if isinstance(name_or_id, int):"},{"line_number":220,"context_line":"        name_or_id \u003d six.text_type(name_or_id)"},{"line_number":221,"context_line":"    if sys.version_info \u003c\u003d (3, 0):"},{"line_number":222,"context_line":"        name_or_id \u003d encodeutils.safe_decode(name_or_id)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_e99345a2","line":221,"in_reply_to":"7f96bb07_03ebf078","updated":"2018-01-15 10:04:03.000000000","message":"six.text_type may not cover some corner cases in python 2.x, for example, chinese characters, that\u0027s the reason to use encodeutils.safe_decode.","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":8037,"name":"renminmin","email":"rmm0811@gmail.com","username":"renminmin"},"change_message_id":"a1748b25d3dc3a77e532c7ee57424db4f2abb956","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    # Related to bug/1740015"},{"line_number":219,"context_line":"    if isinstance(name_or_id, int):"},{"line_number":220,"context_line":"        name_or_id \u003d six.text_type(name_or_id)"},{"line_number":221,"context_line":"    if sys.version_info \u003c\u003d (3, 0):"},{"line_number":222,"context_line":"        name_or_id \u003d encodeutils.safe_decode(name_or_id)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_fda54705","line":221,"in_reply_to":"7f96bb07_7a785d29","updated":"2018-01-15 07:39:32.000000000","message":"six.text_type is used to convert type when name_or_id is int, and\nencodeutils.safe_decode is used to decode string. \nWhere is convert twice?","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"2fe4c2012bbb1e7d6c27712a2db357ef0f53b1c4","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    # Related to bug/1740015"},{"line_number":219,"context_line":"    if isinstance(name_or_id, int):"},{"line_number":220,"context_line":"        name_or_id \u003d six.text_type(name_or_id)"},{"line_number":221,"context_line":"    if sys.version_info \u003c\u003d (3, 0):"},{"line_number":222,"context_line":"        name_or_id \u003d encodeutils.safe_decode(name_or_id)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_03ebf078","line":221,"in_reply_to":"7f96bb07_7d55b7c5","updated":"2018-01-15 09:36:33.000000000","message":"To summarize，in this case, six.text_type and safe_decode actually do the same thing: convert type to unicode. No matter name_or_id is int or string or python version is 2.x, since safe_decode can\u0027t handle type `int`, use six.text_type(name_or_id) is OK. \nSo, my opinion is just retain one line:\n`name_or_id \u003d six.text_type(name_or_id)`","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"c1c39d9aa8acf4dc6be75853a3cf5a25b423a78b","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    # Related to bug/1740015"},{"line_number":219,"context_line":"    if isinstance(name_or_id, int):"},{"line_number":220,"context_line":"        name_or_id \u003d six.text_type(name_or_id)"},{"line_number":221,"context_line":"    if sys.version_info \u003c\u003d (3, 0):"},{"line_number":222,"context_line":"        name_or_id \u003d encodeutils.safe_decode(name_or_id)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_a4d1dffd","line":221,"in_reply_to":"7f96bb07_e99345a2","updated":"2018-01-15 12:49:16.000000000","message":"got it,thx. I know what\u0027s your point, https://github.com/openstack/oslo.utils/blob/master/oslo_utils/encodeutils.py#L41\nif name_or_id is int and use 2.x, the second \u0027if\u0027 is unnecessary, so \u0027elif\u0027 is more resonable.","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"},{"author":{"_account_id":13157,"name":"Zhao Chao","email":"zhaochao1984@gmail.com","username":"zhaochao"},"change_message_id":"2b7c91e3d50b63bd8716369787debbb7d93807b7","unresolved":false,"context_lines":[{"line_number":218,"context_line":"    # Related to bug/1740015"},{"line_number":219,"context_line":"    if isinstance(name_or_id, int):"},{"line_number":220,"context_line":"        name_or_id \u003d six.text_type(name_or_id)"},{"line_number":221,"context_line":"    if sys.version_info \u003c\u003d (3, 0):"},{"line_number":222,"context_line":"        name_or_id \u003d encodeutils.safe_decode(name_or_id)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_7d55b7c5","line":221,"in_reply_to":"7f96bb07_fda54705","updated":"2018-01-15 07:50:20.000000000","message":"Yes, I made a mistake here. But what will happen, if we are running pythonn 2.7 and the \u0027name_or_id\u0027 is a int?","commit_id":"3a23d19f8c87797aec7adf2ac8e802ee83d82094"}]}
