)]}'
{"quantum_test.sh":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0350975b8410272871b6aa5fc8d46d1ddc859ab9","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    if [ $? -eq 0 ]; then"},{"line_number":117,"context_line":"        die \"without valid context on server, quota update command should fail.\""},{"line_number":118,"context_line":"    fi"},{"line_number":119,"context_line":"    quantum quota-show $FORMAT "},{"line_number":120,"context_line":"    if [ $? -eq 0 ]; then"},{"line_number":121,"context_line":"        die \"without valid context on server, quota show command should fail.\""},{"line_number":122,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAM3%2F%2FY9k%3D","line":119,"updated":"2013-01-24 12:46:09.000000000","message":"whitespace","commit_id":"6719499b99613000e77b696b46ac6b860c1135e7"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5a372ffccd363aa1b398a427e6aae219d0ee1e99","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    if [ $? -eq 0 ]; then"},{"line_number":117,"context_line":"        die \"without valid context on server, quota update command should fail.\""},{"line_number":118,"context_line":"    fi"},{"line_number":119,"context_line":"    quantum quota-show $FORMAT "},{"line_number":120,"context_line":"    if [ $? -eq 0 ]; then"},{"line_number":121,"context_line":"        die \"without valid context on server, quota show command should fail.\""},{"line_number":122,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAM3%2F%2FY5s%3D","line":119,"in_reply_to":"AAAAM3%2F%2FY9k%3D","updated":"2013-01-24 13:32:32.000000000","message":"Done","commit_id":"6719499b99613000e77b696b46ac6b860c1135e7"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0350975b8410272871b6aa5fc8d46d1ddc859ab9","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        die \"without valid context on server, quota delete command should fail.\""},{"line_number":126,"context_line":"    fi"},{"line_number":127,"context_line":"    quantum quota-list $FORMAT || die \"fail to update quota for self\""},{"line_number":128,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAM3%2F%2FY9g%3D","line":128,"updated":"2013-01-24 12:46:09.000000000","message":"whitespace","commit_id":"6719499b99613000e77b696b46ac6b860c1135e7"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5a372ffccd363aa1b398a427e6aae219d0ee1e99","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        die \"without valid context on server, quota delete command should fail.\""},{"line_number":126,"context_line":"    fi"},{"line_number":127,"context_line":"    quantum quota-list $FORMAT || die \"fail to update quota for self\""},{"line_number":128,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAM3%2F%2FY5o%3D","line":128,"in_reply_to":"AAAAM3%2F%2FY9g%3D","updated":"2013-01-24 13:32:32.000000000","message":"Done","commit_id":"6719499b99613000e77b696b46ac6b860c1135e7"}],"quantumclient/v2_0/client.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0350975b8410272871b6aa5fc8d46d1ddc859ab9","unresolved":false,"context_lines":[{"line_number":157,"context_line":"    security_group_rules_path \u003d \"/security-group-rules\""},{"line_number":158,"context_line":"    security_group_rule_path \u003d \"/security-group-rules/%s\""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    # API has no way to report Pluras"},{"line_number":161,"context_line":"    EXTED_PLURALS \u003d {\u0027routers\u0027: \u0027router\u0027,"},{"line_number":162,"context_line":"                     \u0027floatingips\u0027: \u0027floatingip\u0027,"},{"line_number":163,"context_line":"                     \u0027service_types\u0027: \u0027service_type\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FY9c%3D","line":160,"updated":"2013-01-24 12:46:09.000000000","message":"typo","commit_id":"6719499b99613000e77b696b46ac6b860c1135e7"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5a372ffccd363aa1b398a427e6aae219d0ee1e99","unresolved":false,"context_lines":[{"line_number":157,"context_line":"    security_group_rules_path \u003d \"/security-group-rules\""},{"line_number":158,"context_line":"    security_group_rule_path \u003d \"/security-group-rules/%s\""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    # API has no way to report Pluras"},{"line_number":161,"context_line":"    EXTED_PLURALS \u003d {\u0027routers\u0027: \u0027router\u0027,"},{"line_number":162,"context_line":"                     \u0027floatingips\u0027: \u0027floatingip\u0027,"},{"line_number":163,"context_line":"                     \u0027service_types\u0027: \u0027service_type\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FY5g%3D","line":160,"in_reply_to":"AAAAM3%2F%2FY9c%3D","updated":"2013-01-24 13:32:32.000000000","message":"Done","commit_id":"6719499b99613000e77b696b46ac6b860c1135e7"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":159,"context_line":"    security_group_rule_path \u003d \"/security-group-rules/%s\""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    # API has no way to report plurals, so we have to hard code them"},{"line_number":162,"context_line":"    EXTED_PLURALS \u003d {\u0027routers\u0027: \u0027router\u0027,"},{"line_number":163,"context_line":"                     \u0027floatingips\u0027: \u0027floatingip\u0027,"},{"line_number":164,"context_line":"                     \u0027service_types\u0027: \u0027service_type\u0027,"},{"line_number":165,"context_line":"                     \u0027service_definitions\u0027: \u0027service_definition\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2FKu8%3D","line":162,"updated":"2013-02-05 00:59:36.000000000","message":"How about defining EXTED_PLURALS in constants.py? PLURALS for core resources are defined in constants.","commit_id":"0a782b45123da2fd7d4fbad309a59c3ee0356c63"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":159,"context_line":"    security_group_rule_path \u003d \"/security-group-rules/%s\""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    # API has no way to report plurals, so we have to hard code them"},{"line_number":162,"context_line":"    EXTED_PLURALS \u003d {\u0027routers\u0027: \u0027router\u0027,"},{"line_number":163,"context_line":"                     \u0027floatingips\u0027: \u0027floatingip\u0027,"},{"line_number":164,"context_line":"                     \u0027service_types\u0027: \u0027service_type\u0027,"},{"line_number":165,"context_line":"                     \u0027service_definitions\u0027: \u0027service_definition\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2FIVE%3D","line":162,"in_reply_to":"AAAAM3%2F%2FIYI%3D","updated":"2013-02-06 05:12:47.000000000","message":"Is constants.py for v2.0 core?\nIMO it is ok both PLURALS and EXTED_PLURALS are defined in constants.py. What we need to keep is that only resources of v2.0 core API are defined in PLURALS and other resources from extensions should be defined in EXTED_PLURALS.","commit_id":"0a782b45123da2fd7d4fbad309a59c3ee0356c63"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"5a372ffccd363aa1b398a427e6aae219d0ee1e99","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    security_group_rule_path \u003d \"/security-group-rules/%s\""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    # API has no way to report plurals, so we have to hard code them"},{"line_number":162,"context_line":"    EXTED_PLURALS \u003d {\u0027routers\u0027: \u0027router\u0027,"},{"line_number":163,"context_line":"                     \u0027floatingips\u0027: \u0027floatingip\u0027,"},{"line_number":164,"context_line":"                     \u0027service_types\u0027: \u0027service_type\u0027,"},{"line_number":165,"context_line":"                     \u0027service_definitions\u0027: \u0027service_definition\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2FIYI%3D","line":162,"in_reply_to":"AAAAM3%2F%2FKu8%3D","updated":"2013-02-06 03:54:19.000000000","message":"Yes, I want to, but I am afraid it is just for v2.0, so I keep it here.","commit_id":"0a782b45123da2fd7d4fbad309a59c3ee0356c63"}]}
