)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e0b7e80da8a04235a0d5923186a36dad527aa542","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-01-14 10:35:14 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"On creation default service name to empty string"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I1b5fd5fbf08939c3bdc29298c77f1f11aec07a29"},{"line_number":10,"context_line":"Closes-Bug: 1410389"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa81d914_123de9bb","line":8,"updated":"2015-01-29 00:44:19.000000000","message":"I don\u0027t see the point of doing this. The database schema allows name to not be present, so this is just confusing. New entries will always have an empty string whereas existing ones won\u0027t have it, so now the data is going to be inconsistent and I\u0027m worried that will lead to bugs since developers will assume the name is always set.","commit_id":"2bf15b1aca710501e1733bd1ace7313a74821df7"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"2a4e745143b1950d7c011fcff9ec90b03e1bf05c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-01-14 10:35:14 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"On creation default service name to empty string"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I1b5fd5fbf08939c3bdc29298c77f1f11aec07a29"},{"line_number":10,"context_line":"Closes-Bug: 1410389"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa81d914_cd59f2ff","line":8,"in_reply_to":"fa81d914_123de9bb","updated":"2015-01-29 01:09:52.000000000","message":"Brant, but we are already setting service name to an empty string when constructing the service catalog. See\n\nhttps://review.openstack.org/#/c/135808/9\n\nThis is just to make sure we are consistently doing it across the board. Like region_name. I don\u0027t care how we do it so as long as it is consistent across the board.","commit_id":"2bf15b1aca710501e1733bd1ace7313a74821df7"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a682f38393001b980c6cebe438546e93330d576b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-01-14 10:35:14 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"On creation default service name to empty string"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I1b5fd5fbf08939c3bdc29298c77f1f11aec07a29"},{"line_number":10,"context_line":"Closes-Bug: 1410389"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa81d914_c8272063","line":8,"in_reply_to":"fa81d914_4d826295","updated":"2015-01-29 01:34:55.000000000","message":"Guang pointed out that the data from the store is already being cleaned up, so I still don\u0027t see why we need this.\n\nI\u0027d be ok with this if it came with a database migration that cleans up the data in the database.\n\nThe work to clean up the results from the templated backend could be done in the templated backend since the SQL results will always be correct already.","commit_id":"2bf15b1aca710501e1733bd1ace7313a74821df7"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"d97fad0a8ca9db2b571126b42e80fcdb302f0e03","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-01-14 10:35:14 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"On creation default service name to empty string"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I1b5fd5fbf08939c3bdc29298c77f1f11aec07a29"},{"line_number":10,"context_line":"Closes-Bug: 1410389"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa81d914_4d826295","line":8,"in_reply_to":"fa81d914_cd59f2ff","updated":"2015-01-29 01:23:19.000000000","message":"what Guang said..  and Lance asked for this to be added from a separate patch, you can find the discussion here: https://review.openstack.org/#/c/135808/9/keystone/catalog/backends/sql.py","commit_id":"2bf15b1aca710501e1733bd1ace7313a74821df7"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"032a90cd7c40f74058898d7261831b714702c301","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"On creation default service name to empty string"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To make new data consistent with existing data, this include a data"},{"line_number":10,"context_line":"migration script to default the service name to empty string as well."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I1b5fd5fbf08939c3bdc29298c77f1f11aec07a29"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"9a80dd14_dadf4867","line":9,"updated":"2015-03-10 05:17:56.000000000","message":"\"..., this patch includes\"?","commit_id":"c8189fc6c5fc9ebdbc1ccd0e49da2e1e2ed3c95d"}],"keystone/catalog/core.py":[{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"ac84199ec263dc3cf1307f31ebe6dbfc50b8baf6","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    @notifications.created(_SERVICE, public\u003dFalse)"},{"line_number":145,"context_line":"    def create_service(self, service_id, service_ref):"},{"line_number":146,"context_line":"        service_ref.setdefault(\u0027enabled\u0027, True)"},{"line_number":147,"context_line":"        service_ref.setdefault(\u0027name\u0027, \u0027\u0027)"},{"line_number":148,"context_line":"        return self.driver.create_service(service_id, service_ref)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @cache.on_arguments(should_cache_fn\u003dSHOULD_CACHE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_54f735d4","line":147,"updated":"2015-01-14 01:59:42.000000000","message":"Should we ensure we can\u0027t update name to None?","commit_id":"2789f25cabc56cf0af8ae5f3464e0a9bca2c2a73"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"c1a2d042854c0381f6e8c290c32ba75079501684","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    @notifications.created(_SERVICE, public\u003dFalse)"},{"line_number":145,"context_line":"    def create_service(self, service_id, service_ref):"},{"line_number":146,"context_line":"        service_ref.setdefault(\u0027enabled\u0027, True)"},{"line_number":147,"context_line":"        service_ref.setdefault(\u0027name\u0027, \u0027\u0027)"},{"line_number":148,"context_line":"        return self.driver.create_service(service_id, service_ref)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @cache.on_arguments(should_cache_fn\u003dSHOULD_CACHE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_e0c85c23","line":147,"in_reply_to":"3a961159_54f735d4","updated":"2015-01-14 05:31:14.000000000","message":"We are handling the case when the user didn\u0027t provided the name attribute, it is defaulted to empty string.\n\nFor update, if the user set the name to None, they are explicitly setting the value to None. So I think we should not override that to empty string.","commit_id":"2789f25cabc56cf0af8ae5f3464e0a9bca2c2a73"}],"keystone/common/sql/migrate_repo/versions/064_fixup_service_name_value.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"bcb647ad7ed4651df691ecf702033ebf42a4d127","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def downgrade(migration_engine):"},{"line_number":40,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_9824e10f","line":40,"updated":"2015-02-06 19:22:17.000000000","message":"although is pretty obvious why we don\u0027t have a downgrade, a comment explaining why it is justing \"passing\" would be nice.","commit_id":"1994de1596ba027bc89cf869d0c15311605a913c"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b998a6c026ca69718150425dbef3e19cbb81b31a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from oslo.serialization import jsonutils"},{"line_number":14,"context_line":"import sqlalchemy as sql"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_3021f29f","line":13,"updated":"2015-02-10 08:08:41.000000000","message":"I expect \"oslo.serialization\" should be changed to \"oslo_serialization\" since the namespace change in oslo [1].\nAlthough this can still work, but the action will be sooner or later [2].\n\nRef:\n[1] https://github.com/openstack/oslo.serialization/tree/master/oslo_serialization \n\n[2] https://review.openstack.org/#/c/151880\n\nI will continue to review other part of the patch.","commit_id":"38c0523ccdfaa7bd519471c6c6a52a67be6fa39e"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"49733f464f52312a2be6b425f0a670d04efd1c98","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from oslo.serialization import jsonutils"},{"line_number":14,"context_line":"import sqlalchemy as sql"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_a7790ffe","line":13,"in_reply_to":"da86d52c_3021f29f","updated":"2015-02-10 17:37:47.000000000","message":"Done","commit_id":"38c0523ccdfaa7bd519471c6c6a52a67be6fa39e"}],"keystone/common/sql/migrate_repo/versions/066_fixup_service_name_value.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"7e40b354b39653697eb0df730a46e3d9360df013","unresolved":false,"context_lines":[{"line_number":9,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from oslo_serialization import jsonutils"},{"line_number":14,"context_line":"import sqlalchemy as sql"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ba7be1f8_36325da7","line":12,"updated":"2015-03-04 03:16:00.000000000","message":"Do you want the COPYRIGHT for this file?","commit_id":"c8189fc6c5fc9ebdbc1ccd0e49da2e1e2ed3c95d"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"066e817937099b3fb6e0ed93ffe89a666e537b4f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from oslo_serialization import jsonutils"},{"line_number":14,"context_line":"import sqlalchemy as sql"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ba7be1f8_76e935b6","line":12,"in_reply_to":"ba7be1f8_36325da7","updated":"2015-03-04 03:26:06.000000000","message":"thanks for asking, nah it\u0027s alright. :)","commit_id":"c8189fc6c5fc9ebdbc1ccd0e49da2e1e2ed3c95d"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4645d87fb602067c59c822eb2d607b5f3fe0aafb","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    for service in services:"},{"line_number":25,"context_line":"        extra_dict \u003d jsonutils.loads(service.extra)"},{"line_number":26,"context_line":"        # Skip records where service is not null"},{"line_number":27,"context_line":"        if extra_dict.get(\u0027name\u0027) is not None:"},{"line_number":28,"context_line":"            continue"},{"line_number":29,"context_line":"        # Default the name to empty string"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_18c80854","line":26,"updated":"2015-03-10 07:04:37.000000000","message":"NIT: ...is not None","commit_id":"fc287554135a9972857696716c1b30d5428f29e1"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"c95e84cfd53ab8f2bfbc787759ec85ac7bab8033","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    for service in services:"},{"line_number":25,"context_line":"        extra_dict \u003d jsonutils.loads(service.extra)"},{"line_number":26,"context_line":"        # Skip records where service is not null"},{"line_number":27,"context_line":"        if extra_dict.get(\u0027name\u0027) is not None:"},{"line_number":28,"context_line":"            continue"},{"line_number":29,"context_line":"        # Default the name to empty string"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_f33c3231","line":26,"in_reply_to":"9a80dd14_18c80854","updated":"2015-03-10 09:43:28.000000000","message":"since it is speaking of \"records\" I believe null is more precise","commit_id":"fc287554135a9972857696716c1b30d5428f29e1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"4645d87fb602067c59c822eb2d607b5f3fe0aafb","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def downgrade(migration_engine):"},{"line_number":40,"context_line":"    # The upgrade fixes the data inconsistency for the service name,"},{"line_number":41,"context_line":"    # it defaults the value to empty string. There is no necessity"},{"line_number":42,"context_line":"    # to revert it."},{"line_number":43,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_d8e910b8","line":40,"updated":"2015-03-10 07:04:37.000000000","message":"...for the service name.  It defaults the value....","commit_id":"fc287554135a9972857696716c1b30d5428f29e1"}],"keystone/tests/test_sql_upgrade.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8696cff94fdb83c891f7d5b80d3cb40d91a840f4","unresolved":false,"context_lines":[{"line_number":1567,"context_line":"        random_attr_str \u003d \"%s\u003d\u0027%s\u0027\" % (random_attr_name, random_attr_value)"},{"line_number":1568,"context_line":"        random_attr_no_name \u003d {random_attr_name: random_attr_value}"},{"line_number":1569,"context_line":"        random_attr_no_name_str \u003d \"%s\u003d\u0027%s\u0027\" % (random_attr_name,"},{"line_number":1570,"context_line":"                                               random_attr_value)"},{"line_number":1571,"context_line":"        random_attr_name_value \u003d {random_attr_name: random_attr_value,"},{"line_number":1572,"context_line":"                                  \u0027name\u0027: \u0027myname\u0027}"},{"line_number":1573,"context_line":"        random_attr_name_value_str \u003d \u0027name\u003dmyname,%s\u0027 % random_attr_str"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_bbaf43e2","line":1570,"updated":"2015-02-11 14:58:03.000000000","message":"Any difference with \"random_attr_str\"? can be removed?","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"af91e14549fde2e2fad5b492893117b2f4cdc325","unresolved":false,"context_lines":[{"line_number":1567,"context_line":"        random_attr_str \u003d \"%s\u003d\u0027%s\u0027\" % (random_attr_name, random_attr_value)"},{"line_number":1568,"context_line":"        random_attr_no_name \u003d {random_attr_name: random_attr_value}"},{"line_number":1569,"context_line":"        random_attr_no_name_str \u003d \"%s\u003d\u0027%s\u0027\" % (random_attr_name,"},{"line_number":1570,"context_line":"                                               random_attr_value)"},{"line_number":1571,"context_line":"        random_attr_name_value \u003d {random_attr_name: random_attr_value,"},{"line_number":1572,"context_line":"                                  \u0027name\u0027: \u0027myname\u0027}"},{"line_number":1573,"context_line":"        random_attr_name_value_str \u003d \u0027name\u003dmyname,%s\u0027 % random_attr_str"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_82d6794d","line":1570,"in_reply_to":"da86d52c_bbaf43e2","updated":"2015-02-11 22:52:10.000000000","message":"I like to keep this variable to keep my sanity with the different data set.","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8696cff94fdb83c891f7d5b80d3cb40d91a840f4","unresolved":false,"context_lines":[{"line_number":1573,"context_line":"        random_attr_name_value_str \u003d \u0027name\u003dmyname,%s\u0027 % random_attr_str"},{"line_number":1574,"context_line":"        random_attr_name_empty \u003d {random_attr_name: random_attr_value,"},{"line_number":1575,"context_line":"                                  \u0027name\u0027: \u0027\u0027}"},{"line_number":1576,"context_line":"        random_attr_name_empty_str \u003d \u0027name\u003d,%s\u0027 % random_attr_str"},{"line_number":1577,"context_line":"        random_attr_name_none \u003d {random_attr_name: random_attr_value,"},{"line_number":1578,"context_line":"                                 \u0027name\u0027: None}"},{"line_number":1579,"context_line":"        random_attr_name_none_str \u003d \u0027name\u003dNone,%s\u0027 % random_attr_str"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_b8f8297d","line":1576,"updated":"2015-02-11 14:58:03.000000000","message":"Not sure if \u0027name\u003d\"\",%s\u0027 % random_attr_str is better","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"af91e14549fde2e2fad5b492893117b2f4cdc325","unresolved":false,"context_lines":[{"line_number":1573,"context_line":"        random_attr_name_value_str \u003d \u0027name\u003dmyname,%s\u0027 % random_attr_str"},{"line_number":1574,"context_line":"        random_attr_name_empty \u003d {random_attr_name: random_attr_value,"},{"line_number":1575,"context_line":"                                  \u0027name\u0027: \u0027\u0027}"},{"line_number":1576,"context_line":"        random_attr_name_empty_str \u003d \u0027name\u003d,%s\u0027 % random_attr_str"},{"line_number":1577,"context_line":"        random_attr_name_none \u003d {random_attr_name: random_attr_value,"},{"line_number":1578,"context_line":"                                 \u0027name\u0027: None}"},{"line_number":1579,"context_line":"        random_attr_name_none_str \u003d \u0027name\u003dNone,%s\u0027 % random_attr_str"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_22522dde","line":1576,"in_reply_to":"da86d52c_b8f8297d","updated":"2015-02-11 22:52:10.000000000","message":"Doesn\u0027t really matter, this is just formatting the output of the test result and not show to the end user.","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8696cff94fdb83c891f7d5b80d3cb40d91a840f4","unresolved":false,"context_lines":[{"line_number":1580,"context_line":""},{"line_number":1581,"context_line":"        services \u003d ["},{"line_number":1582,"context_line":"            (add_service(**random_attr_no_name),"},{"line_number":1583,"context_line":"             random_attr_name_empty, random_attr_no_name_str),"},{"line_number":1584,"context_line":"            (add_service(**random_attr_name_value),"},{"line_number":1585,"context_line":"             random_attr_name_value, random_attr_name_value_str),"},{"line_number":1586,"context_line":"            (add_service(**random_attr_name_empty),"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_bbf903ca","line":1583,"updated":"2015-02-11 14:58:03.000000000","message":"Misuse \"msg\" in \"assertDictEqual\" method?  Here \"random_attr_no_name_str\" is the exception message/incorrect result you want to show,right? but in the following \"msg\" has different meanings.","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"af91e14549fde2e2fad5b492893117b2f4cdc325","unresolved":false,"context_lines":[{"line_number":1580,"context_line":""},{"line_number":1581,"context_line":"        services \u003d ["},{"line_number":1582,"context_line":"            (add_service(**random_attr_no_name),"},{"line_number":1583,"context_line":"             random_attr_name_empty, random_attr_no_name_str),"},{"line_number":1584,"context_line":"            (add_service(**random_attr_name_value),"},{"line_number":1585,"context_line":"             random_attr_name_value, random_attr_name_value_str),"},{"line_number":1586,"context_line":"            (add_service(**random_attr_name_empty),"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_22aa2d71","line":1583,"in_reply_to":"da86d52c_bbf903ca","updated":"2015-02-11 22:52:10.000000000","message":"This is correct. The format of the tuple is (data set, expected result, error msg).\n\nThe data set for this test is \"random_attr_no_name\", so if the test fails the corresponding data set print out is  \"random_attr_no_name\"","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8696cff94fdb83c891f7d5b80d3cb40d91a840f4","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"            (add_service(**random_attr_no_name),"},{"line_number":1583,"context_line":"             random_attr_name_empty, random_attr_no_name_str),"},{"line_number":1584,"context_line":"            (add_service(**random_attr_name_value),"},{"line_number":1585,"context_line":"             random_attr_name_value, random_attr_name_value_str),"},{"line_number":1586,"context_line":"            (add_service(**random_attr_name_empty),"},{"line_number":1587,"context_line":"             random_attr_name_empty, random_attr_name_empty_str),"},{"line_number":1588,"context_line":"            (add_service(**random_attr_name_none),"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_bbce6381","line":1585,"updated":"2015-02-11 14:58:03.000000000","message":"But... here \"msg\" is the correct result you want to show?","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"af91e14549fde2e2fad5b492893117b2f4cdc325","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"            (add_service(**random_attr_no_name),"},{"line_number":1583,"context_line":"             random_attr_name_empty, random_attr_no_name_str),"},{"line_number":1584,"context_line":"            (add_service(**random_attr_name_value),"},{"line_number":1585,"context_line":"             random_attr_name_value, random_attr_name_value_str),"},{"line_number":1586,"context_line":"            (add_service(**random_attr_name_empty),"},{"line_number":1587,"context_line":"             random_attr_name_empty, random_attr_name_empty_str),"},{"line_number":1588,"context_line":"            (add_service(**random_attr_name_none),"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_a2fb7d79","line":1585,"in_reply_to":"da86d52c_bbce6381","updated":"2015-02-11 22:52:10.000000000","message":"this is correct, see the format of the tuple above","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8696cff94fdb83c891f7d5b80d3cb40d91a840f4","unresolved":false,"context_lines":[{"line_number":1584,"context_line":"            (add_service(**random_attr_name_value),"},{"line_number":1585,"context_line":"             random_attr_name_value, random_attr_name_value_str),"},{"line_number":1586,"context_line":"            (add_service(**random_attr_name_empty),"},{"line_number":1587,"context_line":"             random_attr_name_empty, random_attr_name_empty_str),"},{"line_number":1588,"context_line":"            (add_service(**random_attr_name_none),"},{"line_number":1589,"context_line":"             random_attr_name_empty, random_attr_name_none_str),"},{"line_number":1590,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_3b899326","line":1587,"updated":"2015-02-11 14:58:03.000000000","message":"Again, here you want to show the correct result.","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"af91e14549fde2e2fad5b492893117b2f4cdc325","unresolved":false,"context_lines":[{"line_number":1584,"context_line":"            (add_service(**random_attr_name_value),"},{"line_number":1585,"context_line":"             random_attr_name_value, random_attr_name_value_str),"},{"line_number":1586,"context_line":"            (add_service(**random_attr_name_empty),"},{"line_number":1587,"context_line":"             random_attr_name_empty, random_attr_name_empty_str),"},{"line_number":1588,"context_line":"            (add_service(**random_attr_name_none),"},{"line_number":1589,"context_line":"             random_attr_name_empty, random_attr_name_none_str),"},{"line_number":1590,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_e2f8157e","line":1587,"in_reply_to":"da86d52c_3b899326","updated":"2015-02-11 22:52:10.000000000","message":"see above","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8696cff94fdb83c891f7d5b80d3cb40d91a840f4","unresolved":false,"context_lines":[{"line_number":1586,"context_line":"            (add_service(**random_attr_name_empty),"},{"line_number":1587,"context_line":"             random_attr_name_empty, random_attr_name_empty_str),"},{"line_number":1588,"context_line":"            (add_service(**random_attr_name_none),"},{"line_number":1589,"context_line":"             random_attr_name_empty, random_attr_name_none_str),"},{"line_number":1590,"context_line":"        ]"},{"line_number":1591,"context_line":""},{"line_number":1592,"context_line":"        session.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_bb3f4324","line":1589,"updated":"2015-02-11 14:58:03.000000000","message":"what \"random_attr_name_none_str\" want to show?","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"af91e14549fde2e2fad5b492893117b2f4cdc325","unresolved":false,"context_lines":[{"line_number":1586,"context_line":"            (add_service(**random_attr_name_empty),"},{"line_number":1587,"context_line":"             random_attr_name_empty, random_attr_name_empty_str),"},{"line_number":1588,"context_line":"            (add_service(**random_attr_name_none),"},{"line_number":1589,"context_line":"             random_attr_name_empty, random_attr_name_none_str),"},{"line_number":1590,"context_line":"        ]"},{"line_number":1591,"context_line":""},{"line_number":1592,"context_line":"        session.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_e23f3523","line":1589,"in_reply_to":"da86d52c_bb3f4324","updated":"2015-02-11 22:52:10.000000000","message":"see above","commit_id":"bf02521686bce4976a818b962bd09007a436df8e"}],"keystone/tests/test_v3_catalog.py":[{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"ac84199ec263dc3cf1307f31ebe6dbfc50b8baf6","unresolved":false,"context_lines":[{"line_number":296,"context_line":"            \u0027/services\u0027,"},{"line_number":297,"context_line":"            body\u003d{\u0027service\u0027: ref})"},{"line_number":298,"context_line":"        ref[\u0027name\u0027] \u003d \u0027\u0027"},{"line_number":299,"context_line":"        self.assertValidServiceResponse(r, ref)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    def test_create_service_no_enabled(self):"},{"line_number":302,"context_line":"        \"\"\"Call ``POST /services``.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_946a7d7f","line":299,"updated":"2015-01-14 01:59:42.000000000","message":"I think we should use self.assertEqual(\u0027\u0027, r.result[\u0027service\u0027][\u0027name\u0027]), because assertValidServiceResponse doesn\u0027t assert name.","commit_id":"2789f25cabc56cf0af8ae5f3464e0a9bca2c2a73"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"c1a2d042854c0381f6e8c290c32ba75079501684","unresolved":false,"context_lines":[{"line_number":296,"context_line":"            \u0027/services\u0027,"},{"line_number":297,"context_line":"            body\u003d{\u0027service\u0027: ref})"},{"line_number":298,"context_line":"        ref[\u0027name\u0027] \u003d \u0027\u0027"},{"line_number":299,"context_line":"        self.assertValidServiceResponse(r, ref)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    def test_create_service_no_enabled(self):"},{"line_number":302,"context_line":"        \"\"\"Call ``POST /services``.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_208504cf","line":299,"in_reply_to":"3a961159_946a7d7f","updated":"2015-01-14 05:31:14.000000000","message":"Done","commit_id":"2789f25cabc56cf0af8ae5f3464e0a9bca2c2a73"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"2f4414f0bf5402f29cc50a52a5ec7d1ee4610deb","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        ref[\u0027name\u0027] \u003d \u0027\u0027"},{"line_number":299,"context_line":"        self.assertValidServiceResponse(r, ref)"},{"line_number":300,"context_line":"        self.assertEqual(\u0027\u0027, r.result[\u0027service\u0027][\u0027name\u0027])"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    def test_create_service_no_enabled(self):"},{"line_number":303,"context_line":"        \"\"\"Call ``POST /services``.\"\"\""},{"line_number":304,"context_line":"        ref \u003d self.new_service_ref()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_058488d1","line":301,"updated":"2015-01-14 15:18:06.000000000","message":"Hua Cheng \u0026 wanghong, I believe Hua Cheng\u0027s previous patch is already covered the case actually, you needn\u0027t do this duplicated check here.\n\nhttps://github.com/openstack/keystone/blob/master/keystone/tests/test_v3.py#L592\n\n\u0027name\u0027 is included in \u0027keys\u0027 list,so it will be checked in assertValidServiceResponse, I hope you could rollback to your first patch since it seems better.","commit_id":"012d3ffb70f6b4079e16c55c7888703dc3eee6c2"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"6f76e656831b3f09c5f49797c19e89bddca6ab95","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        ref[\u0027name\u0027] \u003d \u0027\u0027"},{"line_number":299,"context_line":"        self.assertValidServiceResponse(r, ref)"},{"line_number":300,"context_line":"        self.assertEqual(\u0027\u0027, r.result[\u0027service\u0027][\u0027name\u0027])"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    def test_create_service_no_enabled(self):"},{"line_number":303,"context_line":"        \"\"\"Call ``POST /services``.\"\"\""},{"line_number":304,"context_line":"        ref \u003d self.new_service_ref()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_d7730bb2","line":301,"in_reply_to":"3a961159_058488d1","updated":"2015-01-14 18:36:56.000000000","message":"Thanks Dave! rolling it back","commit_id":"012d3ffb70f6b4079e16c55c7888703dc3eee6c2"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"d12dc7730de381daf425142c1c18ed2678047af5","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        ref[\u0027name\u0027] \u003d \u0027\u0027"},{"line_number":299,"context_line":"        self.assertValidServiceResponse(r, ref)"},{"line_number":300,"context_line":"        self.assertEqual(\u0027\u0027, r.result[\u0027service\u0027][\u0027name\u0027])"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    def test_create_service_no_enabled(self):"},{"line_number":303,"context_line":"        \"\"\"Call ``POST /services``.\"\"\""},{"line_number":304,"context_line":"        ref \u003d self.new_service_ref()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_553709fe","line":301,"in_reply_to":"3a961159_d7730bb2","updated":"2015-01-15 01:31:12.000000000","message":"Yes, Dave is right. my mistake.","commit_id":"012d3ffb70f6b4079e16c55c7888703dc3eee6c2"}],"keystone/tests/unit/test_sql_upgrade.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"2d28c6b0aeed27f14061438aac76455b6772161c","unresolved":false,"context_lines":[{"line_number":1569,"context_line":"        self.assertTableDoesNotExist(sensitive_table)"},{"line_number":1570,"context_line":""},{"line_number":1571,"context_line":"    def test_fixup_service_name_value_upgrade(self):"},{"line_number":1572,"context_line":"        \"\"\"Migration 65 has to update service name data from `extra`"},{"line_number":1573,"context_line":"        to empty string."},{"line_number":1574,"context_line":"        \"\"\""},{"line_number":1575,"context_line":"        def add_service(**extra_data):"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_c2130cff","line":1572,"updated":"2015-03-13 20:49:27.000000000","message":"Updated to 66 as well","commit_id":"fc287554135a9972857696716c1b30d5428f29e1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b2db5ecb34d01115fb0882e0546b984fbec134ab","unresolved":false,"context_lines":[{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"            return service_id"},{"line_number":1587,"context_line":""},{"line_number":1588,"context_line":"        self.upgrade(43)"},{"line_number":1589,"context_line":"        session \u003d self.Session()"},{"line_number":1590,"context_line":""},{"line_number":1591,"context_line":"        # Services with extra values having a random attribute and"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_a4a8ed8c","line":1588,"updated":"2015-03-13 18:18:57.000000000","message":"why 43? add a comment. (65 would be the obvious number)","commit_id":"fc287554135a9972857696716c1b30d5428f29e1"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"2d28c6b0aeed27f14061438aac76455b6772161c","unresolved":false,"context_lines":[{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"            return service_id"},{"line_number":1587,"context_line":""},{"line_number":1588,"context_line":"        self.upgrade(43)"},{"line_number":1589,"context_line":"        session \u003d self.Session()"},{"line_number":1590,"context_line":""},{"line_number":1591,"context_line":"        # Services with extra values having a random attribute and"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_a218d81e","line":1588,"in_reply_to":"9a80dd14_87692bfb","updated":"2015-03-13 20:49:27.000000000","message":"Fixed","commit_id":"fc287554135a9972857696716c1b30d5428f29e1"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"ffc1971d6e1874204f4df076bffe5b7a94777f0c","unresolved":false,"context_lines":[{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"            return service_id"},{"line_number":1587,"context_line":""},{"line_number":1588,"context_line":"        self.upgrade(43)"},{"line_number":1589,"context_line":"        session \u003d self.Session()"},{"line_number":1590,"context_line":""},{"line_number":1591,"context_line":"        # Services with extra values having a random attribute and"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_87692bfb","line":1588,"in_reply_to":"9a80dd14_a4a8ed8c","updated":"2015-03-13 18:43:29.000000000","message":"this test was patterned on  def test_upgrade_service_enabled_data(), it just makes sure that the schema is on a certain state before running this.\n\nactually, the comment should be using \"66\" already. Missed this one, since the db script keep bumping up and I have to update couple of times.\n\nCan I clean that up as follow-up patch and keep this review going?","commit_id":"fc287554135a9972857696716c1b30d5428f29e1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a18d073d2b8a99dab70ede1f683ee912a6a89819","unresolved":false,"context_lines":[{"line_number":679,"context_line":""},{"line_number":680,"context_line":"    def test_fixup_service_name_value_upgrade(self):"},{"line_number":681,"context_line":"        \"\"\"Migration 66 has to update service name data from `extra`"},{"line_number":682,"context_line":"        to empty string."},{"line_number":683,"context_line":"        \"\"\""},{"line_number":684,"context_line":"        def add_service(**extra_data):"},{"line_number":685,"context_line":"            service_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a80dd14_7005dd0e","line":682,"updated":"2015-03-19 16:08:01.000000000","message":"Suggest following this https://www.python.org/dev/peps/pep-0257/#multi-line-docstrings","commit_id":"d932a651f78109f45847163060d31bdd314eae6e"}]}
