)]}'
{"ceilometer/api/controllers/v2.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"2ac649d55119709d5c3deeed2f95cb01800c4c97","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    translation \u003d {\u0027user_id\u0027: \u0027user\u0027,"},{"line_number":369,"context_line":"                   \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":370,"context_line":"                   \u0027resource_id\u0027: \u0027resource\u0027,"},{"line_number":371,"context_line":"                   \u0027alarm_type\u0027: \u0027type\u0027}"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    has_timestamp_query \u003d _validate_timestamp_fields(query,"},{"line_number":374,"context_line":"                                                     \u0027timestamp\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_67602e33","line":371,"updated":"2014-05-28 09:51:37.000000000","message":"why translate alarm_type to type? Should we translate \u0027type\u0027 to alarm_type? Just like _query_to_kwargs() did?","commit_id":"9dce26e4ae19908ac471a08c8b163adf34adc462"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"aee92b09fb2957259a90e503e2d7ff6816d10c8b","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    translation \u003d {\u0027user_id\u0027: \u0027user\u0027,"},{"line_number":369,"context_line":"                   \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":370,"context_line":"                   \u0027resource_id\u0027: \u0027resource\u0027,"},{"line_number":371,"context_line":"                   \u0027alarm_type\u0027: \u0027type\u0027}"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    has_timestamp_query \u003d _validate_timestamp_fields(query,"},{"line_number":374,"context_line":"                                                     \u0027timestamp\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_fc2690b9","line":371,"in_reply_to":"3ae8d1ca_67602e33","updated":"2014-05-28 10:29:16.000000000","message":"@Lianhao Lu\n\nI did this because I want to support both alarm_type and type filter, they will both map to alarm_type in storage layer, just like the (resource_id, resource) pair. without this translation, the alarm_type will be baned, see also https://review.openstack.org/#/c/93658/3/ceilometer/tests/api/v2/test_alarm_scenarios.py L208\n\nThanks","commit_id":"9dce26e4ae19908ac471a08c8b163adf34adc462"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"67ad385edb84c210f3d15bd1387319ae043fad6d","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    translation \u003d {\u0027user_id\u0027: \u0027user\u0027,"},{"line_number":369,"context_line":"                   \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":370,"context_line":"                   \u0027resource_id\u0027: \u0027resource\u0027,"},{"line_number":371,"context_line":"                   \u0027alarm_type\u0027: \u0027type\u0027}"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    has_timestamp_query \u003d _validate_timestamp_fields(query,"},{"line_number":374,"context_line":"                                                     \u0027timestamp\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_3c10f800","line":371,"in_reply_to":"3ae8d1ca_67602e33","updated":"2014-05-28 10:44:05.000000000","message":"@Lianhao Lu\n\nok, I check the response body and realize that resource is a short for resource_id,\n\nthanks, will be done soon","commit_id":"9dce26e4ae19908ac471a08c8b163adf34adc462"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"31eaaf591914304732dfd104a446131145d77a5a","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    translation \u003d {\u0027user_id\u0027: \u0027user\u0027,"},{"line_number":369,"context_line":"                   \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":370,"context_line":"                   \u0027resource_id\u0027: \u0027resource\u0027,"},{"line_number":371,"context_line":"                   \u0027alarm_type\u0027: \u0027type\u0027}"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    has_timestamp_query \u003d _validate_timestamp_fields(query,"},{"line_number":374,"context_line":"                                                     \u0027timestamp\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_fc05b0c2","line":371,"in_reply_to":"3ae8d1ca_fc2690b9","updated":"2014-05-28 10:37:53.000000000","message":"From API point of view, alarm_type should be banned. Because the user can only see the alarm with field name \u0027type\u0027, they can never see the alarm with the field name \u0027alarm_type\u0027.","commit_id":"9dce26e4ae19908ac471a08c8b163adf34adc462"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"ab7de1989fa854fc66eb74f01b89cfb8b233f67d","unresolved":false,"context_lines":[{"line_number":462,"context_line":"    translation \u003d {\u0027user_id\u0027: \u0027user\u0027,"},{"line_number":463,"context_line":"                   \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":464,"context_line":"                   \u0027resource_id\u0027: \u0027resource\u0027,"},{"line_number":465,"context_line":"                   \u0027type\u0027: \u0027alarm_type\u0027}"},{"line_number":466,"context_line":"    stamp \u003d {}"},{"line_number":467,"context_line":"    metaquery \u003d {}"},{"line_number":468,"context_line":"    kwargs \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ae8d1ca_88f54685","line":465,"updated":"2014-05-28 12:54:41.000000000","message":"Why this special case ? Why the API user cannot use \u0027alarm_type\u0027 directly ?","commit_id":"4b55813692535f45514acbb65e25bb717adbf668"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"b743fcc0d66da40441df0edd819ed553216bd0d5","unresolved":false,"context_lines":[{"line_number":462,"context_line":"    translation \u003d {\u0027user_id\u0027: \u0027user\u0027,"},{"line_number":463,"context_line":"                   \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":464,"context_line":"                   \u0027resource_id\u0027: \u0027resource\u0027,"},{"line_number":465,"context_line":"                   \u0027type\u0027: \u0027alarm_type\u0027}"},{"line_number":466,"context_line":"    stamp \u003d {}"},{"line_number":467,"context_line":"    metaquery \u003d {}"},{"line_number":468,"context_line":"    kwargs \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ae8d1ca_c37c7323","line":465,"in_reply_to":"3ae8d1ca_88f54685","updated":"2014-05-29 04:27:08.000000000","message":"@Mehdi Abaakouk\n\nthe end user will not see the alarm_type attribute in storage layer, the get /alarms and /alarms/{id} will return type attribute.  the reason why use alarm_type instead of type (which is a model atrribute) is \u0027type is builtin function, should not overshadow it\u0027.","commit_id":"4b55813692535f45514acbb65e25bb717adbf668"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"ddc09cc1730017a96ae65b98a479a4f2811fb2ae","unresolved":false,"context_lines":[{"line_number":462,"context_line":"    translation \u003d {\u0027user_id\u0027: \u0027user\u0027,"},{"line_number":463,"context_line":"                   \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":464,"context_line":"                   \u0027resource_id\u0027: \u0027resource\u0027,"},{"line_number":465,"context_line":"                   \u0027type\u0027: \u0027alarm_type\u0027}"},{"line_number":466,"context_line":"    stamp \u003d {}"},{"line_number":467,"context_line":"    metaquery \u003d {}"},{"line_number":468,"context_line":"    kwargs \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ae8d1ca_a99afd60","line":465,"in_reply_to":"3ae8d1ca_88f54685","updated":"2014-05-28 16:57:16.000000000","message":"it was discussed somewhere in the previous patch sets - it\u0027s created via \u0027type\u0027 simply, so the idea is not to create difference... in some other change it might be fixed in both places","commit_id":"4b55813692535f45514acbb65e25bb717adbf668"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ef19b1245927379724fb79cd018ff6a5faa08a23","unresolved":false,"context_lines":[{"line_number":462,"context_line":"    translation \u003d {\u0027user_id\u0027: \u0027user\u0027,"},{"line_number":463,"context_line":"                   \u0027project_id\u0027: \u0027project\u0027,"},{"line_number":464,"context_line":"                   \u0027resource_id\u0027: \u0027resource\u0027,"},{"line_number":465,"context_line":"                   \u0027type\u0027: \u0027alarm_type\u0027}"},{"line_number":466,"context_line":"    stamp \u003d {}"},{"line_number":467,"context_line":"    metaquery \u003d {}"},{"line_number":468,"context_line":"    kwargs \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ae8d1ca_4d2c1403","line":465,"in_reply_to":"3ae8d1ca_a99afd60","updated":"2014-05-29 02:51:04.000000000","message":"We don\u0027t want to change the API. Besides, the user can only see the field named \u0027type\u0027 of the alarm definition, see Ln1714","commit_id":"4b55813692535f45514acbb65e25bb717adbf668"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"8625eca482d784ad1864df78f5898de3d1ff505a","unresolved":false,"context_lines":[{"line_number":362,"context_line":"    valid_keys \u003d inspect.getargspec(db_func)[0]"},{"line_number":363,"context_line":"    if \u0027alarm_type\u0027 in valid_keys:"},{"line_number":364,"context_line":"        valid_keys.remove(\u0027alarm_type\u0027)"},{"line_number":365,"context_line":"        valid_keys.append(\u0027type\u0027)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    internal_keys.append(\u0027self\u0027)"},{"line_number":368,"context_line":"    valid_keys \u003d set(valid_keys) - set(internal_keys)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_d8741000","line":365,"updated":"2014-06-04 10:48:52.000000000","message":"I\u0027m not loving the jumping through hoops required to make a simple internal parameter-name change work. I don\u0027t think the value of that name change justifies the intrusion into the logical flow.\n\nHow about leaving the parameter name as-was, i.e. \"type\" as opposed to \"alarm_type\".\n\nBUT also be tolerant of whether the filtering on the API call is expressed in terms of for example type\u003dthreshold or alarm_type\u003dthreshold.\n\n(Just like we currently support resource\u003dUUID or resource_id\u003dUUID)\n\nThis could be achieved by adding a mapping to the translation dict on line 369 below:\n\n  translation \u003d {\u0027user_id\u0027: \u0027user\u0027,\n                 \u0027project_id\u0027: \u0027project\u0027,\n                 \u0027resource_id\u0027: \u0027resource\u0027,\n                 \u0027type\u0027: \u0027alarm_type\u0027}","commit_id":"b46470641b7432f02ce05819538bc7b951218d57"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8030e9e1bf68ab560933499130e8f2b4aa2d9408","unresolved":false,"context_lines":[{"line_number":362,"context_line":"    valid_keys \u003d inspect.getargspec(db_func)[0]"},{"line_number":363,"context_line":"    if \u0027alarm_type\u0027 in valid_keys:"},{"line_number":364,"context_line":"        valid_keys.remove(\u0027alarm_type\u0027)"},{"line_number":365,"context_line":"        valid_keys.append(\u0027type\u0027)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    internal_keys.append(\u0027self\u0027)"},{"line_number":368,"context_line":"    valid_keys \u003d set(valid_keys) - set(internal_keys)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_fbec66bd","line":365,"in_reply_to":"1ae5cdf2_d8741000","updated":"2014-06-04 11:07:20.000000000","message":"@Eoghan Glynn\n\nthe two issue you mentioned has been discussed in previous review. we finally get a bit agreement for them.\n\naccording to Dina Belova\u0027s opinion, the type is a builtin method, it is a bit anti-pattern, so alarm_type is chosen instead of type\n\nthe alarm_type tolerant support for api call is removed because end user can only see a type field, it cannot like (resource, resource_id) because user gets a longer resource_id field, resource is a short for it. Since end user can only get a shorter type field, it is a bit odd to support a longer alarm_type field.\n\nthanks for your review","commit_id":"b46470641b7432f02ce05819538bc7b951218d57"}],"ceilometer/storage/base.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"a4ce1048788f1505e5bf6bbeadb1c8bfbf6000d6","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        :param on_behalf_of: ID of tenant to scope changes query (None for"},{"line_number":274,"context_line":"                             administrative user, indicating all projects)"},{"line_number":275,"context_line":"        :param user: Optional ID of user to return changes for"},{"line_number":276,"context_line":"        :param project: Optional ID of project to return changes for"},{"line_number":277,"context_line":"        :project type: Optional change type"},{"line_number":278,"context_line":"        :param start_timestamp: Optional modified timestamp start range"},{"line_number":279,"context_line":"        :param start_timestamp_op: Optional timestamp start range operation"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_df2a697d","line":276,"updated":"2014-05-29 19:39:44.000000000","message":"\u0027type\u0027 should be renamed to \u0027alarm_type\u0027 and s/project/param/","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a20bb732cff239c37984ccbc32c9d06029010375","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        :param on_behalf_of: ID of tenant to scope changes query (None for"},{"line_number":274,"context_line":"                             administrative user, indicating all projects)"},{"line_number":275,"context_line":"        :param user: Optional ID of user to return changes for"},{"line_number":276,"context_line":"        :param project: Optional ID of project to return changes for"},{"line_number":277,"context_line":"        :project type: Optional change type"},{"line_number":278,"context_line":"        :param start_timestamp: Optional modified timestamp start range"},{"line_number":279,"context_line":"        :param start_timestamp_op: Optional timestamp start range operation"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_475e01eb","line":276,"in_reply_to":"3ae8d1ca_df2a697d","updated":"2014-05-30 02:54:22.000000000","message":"Done","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"}],"ceilometer/storage/impl_sqlalchemy.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"a4ce1048788f1505e5bf6bbeadb1c8bfbf6000d6","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        :param project: Optional ID for project that owns the resource."},{"line_number":686,"context_line":"        :param enabled: Optional boolean to list disable alarm."},{"line_number":687,"context_line":"        :param alarm_id: Optional alarm_id to return one alarm."},{"line_number":688,"context_line":"        :param pagination: Optional pagination query."},{"line_number":689,"context_line":"        \"\"\""},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        if pagination:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_e43b1c9a","line":688,"updated":"2014-05-29 19:39:44.000000000","message":"\u0027alarm_type\u0027 is missing from doc string.\n\nI know that this patch is not about correcting other\u0027s mistakes, but if you could add \u0027name\u0027 as well, I would appreciate it.","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a20bb732cff239c37984ccbc32c9d06029010375","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        :param project: Optional ID for project that owns the resource."},{"line_number":686,"context_line":"        :param enabled: Optional boolean to list disable alarm."},{"line_number":687,"context_line":"        :param alarm_id: Optional alarm_id to return one alarm."},{"line_number":688,"context_line":"        :param pagination: Optional pagination query."},{"line_number":689,"context_line":"        \"\"\""},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        if pagination:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_e7470d1c","line":688,"in_reply_to":"3ae8d1ca_e43b1c9a","updated":"2014-05-30 02:54:22.000000000","message":"Done","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"a4ce1048788f1505e5bf6bbeadb1c8bfbf6000d6","unresolved":false,"context_lines":[{"line_number":790,"context_line":"        :param on_behalf_of: ID of tenant to scope changes query (None for"},{"line_number":791,"context_line":"                             administrative user, indicating all projects)"},{"line_number":792,"context_line":"        :param user: Optional ID of user to return changes for"},{"line_number":793,"context_line":"        :param project: Optional ID of project to return changes for"},{"line_number":794,"context_line":"        :project type: Optional change type"},{"line_number":795,"context_line":"        :param start_timestamp: Optional modified timestamp start range"},{"line_number":796,"context_line":"        :param start_timestamp_op: Optional timestamp start range operation"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_64d9cc82","line":793,"updated":"2014-05-29 19:39:44.000000000","message":"\u0027type\u0027 should be renamed to \u0027alarm_type\u0027 and s/project/param/","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a20bb732cff239c37984ccbc32c9d06029010375","unresolved":false,"context_lines":[{"line_number":790,"context_line":"        :param on_behalf_of: ID of tenant to scope changes query (None for"},{"line_number":791,"context_line":"                             administrative user, indicating all projects)"},{"line_number":792,"context_line":"        :param user: Optional ID of user to return changes for"},{"line_number":793,"context_line":"        :param project: Optional ID of project to return changes for"},{"line_number":794,"context_line":"        :project type: Optional change type"},{"line_number":795,"context_line":"        :param start_timestamp: Optional modified timestamp start range"},{"line_number":796,"context_line":"        :param start_timestamp_op: Optional timestamp start range operation"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_a746e521","line":793,"in_reply_to":"3ae8d1ca_64d9cc82","updated":"2014-05-30 02:54:22.000000000","message":"Done","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"}],"ceilometer/storage/pymongo_base.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"a4ce1048788f1505e5bf6bbeadb1c8bfbf6000d6","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        :param project: Optional ID for project that owns the resource."},{"line_number":241,"context_line":"        :param enabled: Optional boolean to list disable alarm."},{"line_number":242,"context_line":"        :param alarm_id: Optional alarm_id to return one alarm."},{"line_number":243,"context_line":"        :param pagination: Optional pagination query."},{"line_number":244,"context_line":"        \"\"\""},{"line_number":245,"context_line":"        if pagination:"},{"line_number":246,"context_line":"            raise NotImplementedError(\u0027Pagination not implemented\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_e49f9cb2","line":243,"updated":"2014-05-29 19:39:44.000000000","message":"\u0027alarm_type\u0027 is missing from doc string.","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a20bb732cff239c37984ccbc32c9d06029010375","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        :param project: Optional ID for project that owns the resource."},{"line_number":241,"context_line":"        :param enabled: Optional boolean to list disable alarm."},{"line_number":242,"context_line":"        :param alarm_id: Optional alarm_id to return one alarm."},{"line_number":243,"context_line":"        :param pagination: Optional pagination query."},{"line_number":244,"context_line":"        \"\"\""},{"line_number":245,"context_line":"        if pagination:"},{"line_number":246,"context_line":"            raise NotImplementedError(\u0027Pagination not implemented\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_27e4953a","line":243,"in_reply_to":"3ae8d1ca_e49f9cb2","updated":"2014-05-30 02:54:22.000000000","message":"Done","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"a4ce1048788f1505e5bf6bbeadb1c8bfbf6000d6","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        :param on_behalf_of: ID of tenant to scope changes query (None for"},{"line_number":282,"context_line":"                             administrative user, indicating all projects)"},{"line_number":283,"context_line":"        :param user: Optional ID of user to return changes for"},{"line_number":284,"context_line":"        :param project: Optional ID of project to return changes for"},{"line_number":285,"context_line":"        :project type: Optional change type"},{"line_number":286,"context_line":"        :param start_timestamp: Optional modified timestamp start range"},{"line_number":287,"context_line":"        :param start_timestamp_op: Optional timestamp start range operation"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_44977090","line":284,"updated":"2014-05-29 19:39:44.000000000","message":"\u0027type\u0027 should be renamed to \u0027alarm_type\u0027. And also s/project/param/","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a20bb732cff239c37984ccbc32c9d06029010375","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        :param on_behalf_of: ID of tenant to scope changes query (None for"},{"line_number":282,"context_line":"                             administrative user, indicating all projects)"},{"line_number":283,"context_line":"        :param user: Optional ID of user to return changes for"},{"line_number":284,"context_line":"        :param project: Optional ID of project to return changes for"},{"line_number":285,"context_line":"        :project type: Optional change type"},{"line_number":286,"context_line":"        :param start_timestamp: Optional modified timestamp start range"},{"line_number":287,"context_line":"        :param start_timestamp_op: Optional timestamp start range operation"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_a7cfc5af","line":284,"in_reply_to":"3ae8d1ca_44977090","updated":"2014-05-30 02:54:22.000000000","message":"Done","commit_id":"f5fa902335f6392668ea15dc80842d53b58ec655"}],"ceilometer/tests/api/v2/test_alarm_scenarios.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"58147a91f08f41302ed2341849347eda2c27e02a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        alarms \u003d self.get_json(\u0027/alarms\u0027,"},{"line_number":201,"context_line":"                               q\u003d[{\u0027field\u0027: \u0027alarm_type\u0027,"},{"line_number":202,"context_line":"                                   \u0027op\u0027: \u0027eq\u0027,"},{"line_number":203,"context_line":"                                   \u0027value\u0027: \u0027threshold\u0027}])"},{"line_number":204,"context_line":"        self.assertEqual(3, len(alarms))"},{"line_number":205,"context_line":"        self.assertEqual(set([\u0027threshold\u0027]),"},{"line_number":206,"context_line":"                         set(alarm[\u0027type\u0027] for alarm in alarms))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_728084f7","line":203,"updated":"2014-05-16 19:48:38.000000000","message":"I think it\u0027s a little bit strange that when creating an alarm, we use \u0027type\u0027 field, but when doing the list, we refer to the \u0027alarm_type\u0027 field. We should make it consistent.","commit_id":"f202f681fc0772a7934cf8d70df2d75016c81dec"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"357064f2a7fcd57747bdfc34a4e46cfd9ade512a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        alarms \u003d self.get_json(\u0027/alarms\u0027,"},{"line_number":201,"context_line":"                               q\u003d[{\u0027field\u0027: \u0027alarm_type\u0027,"},{"line_number":202,"context_line":"                                   \u0027op\u0027: \u0027eq\u0027,"},{"line_number":203,"context_line":"                                   \u0027value\u0027: \u0027threshold\u0027}])"},{"line_number":204,"context_line":"        self.assertEqual(3, len(alarms))"},{"line_number":205,"context_line":"        self.assertEqual(set([\u0027threshold\u0027]),"},{"line_number":206,"context_line":"                         set(alarm[\u0027type\u0027] for alarm in alarms))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_75aeae82","line":203,"in_reply_to":"7adec928_5251c834","updated":"2014-05-16 21:23:05.000000000","message":"I agree that fixing the old anti-pattern should be in another patch, but I don\u0027t think new patch should bring this kind of consistency into API. So my suggestion is that in API, we should still use \u0027type\u0027 in the query to be consistent with the alarm fields the api user can see, but do the translation from \u0027type\u0027 to \u0027alarm_type\u0027 when parsing those query parameters in the api.","commit_id":"f202f681fc0772a7934cf8d70df2d75016c81dec"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"4e65716999b22627086abcc92e49b687d812368e","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        alarms \u003d self.get_json(\u0027/alarms\u0027,"},{"line_number":201,"context_line":"                               q\u003d[{\u0027field\u0027: \u0027alarm_type\u0027,"},{"line_number":202,"context_line":"                                   \u0027op\u0027: \u0027eq\u0027,"},{"line_number":203,"context_line":"                                   \u0027value\u0027: \u0027threshold\u0027}])"},{"line_number":204,"context_line":"        self.assertEqual(3, len(alarms))"},{"line_number":205,"context_line":"        self.assertEqual(set([\u0027threshold\u0027]),"},{"line_number":206,"context_line":"                         set(alarm[\u0027type\u0027] for alarm in alarms))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_5251c834","line":203,"in_reply_to":"7adec928_728084f7","updated":"2014-05-16 20:28:29.000000000","message":"probably this should be fixed in other patch really - I mean, that writing new code with anti-patterns is not really good (i mean this built-in names stuff), but fixing old anti-patterns here also won\u0027t be a good idea...","commit_id":"f202f681fc0772a7934cf8d70df2d75016c81dec"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"68f7cabe2ed260c223b502ab5359e3e691bb4595","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        alarms \u003d self.get_json(\u0027/alarms\u0027,"},{"line_number":201,"context_line":"                               q\u003d[{\u0027field\u0027: \u0027alarm_type\u0027,"},{"line_number":202,"context_line":"                                   \u0027op\u0027: \u0027eq\u0027,"},{"line_number":203,"context_line":"                                   \u0027value\u0027: \u0027threshold\u0027}])"},{"line_number":204,"context_line":"        self.assertEqual(3, len(alarms))"},{"line_number":205,"context_line":"        self.assertEqual(set([\u0027threshold\u0027]),"},{"line_number":206,"context_line":"                         set(alarm[\u0027type\u0027] for alarm in alarms))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_d50a2225","line":203,"in_reply_to":"7adec928_75aeae82","updated":"2014-05-17 00:58:46.000000000","message":"I see, will be done in next patch set","commit_id":"f202f681fc0772a7934cf8d70df2d75016c81dec"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"dba6ecbddb1109e1c0914189e45a4278c2b0e8fd","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        alarms \u003d self.get_json(\u0027/alarms\u0027,"},{"line_number":201,"context_line":"                               q\u003d[{\u0027field\u0027: \u0027alarm_type\u0027,"},{"line_number":202,"context_line":"                                   \u0027op\u0027: \u0027eq\u0027,"},{"line_number":203,"context_line":"                                   \u0027value\u0027: \u0027threshold\u0027}])"},{"line_number":204,"context_line":"        self.assertEqual(3, len(alarms))"},{"line_number":205,"context_line":"        self.assertEqual(set([\u0027threshold\u0027]),"},{"line_number":206,"context_line":"                         set(alarm[\u0027type\u0027] for alarm in alarms))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_72dca047","line":203,"in_reply_to":"7adec928_75aeae82","updated":"2014-05-20 17:53:22.000000000","message":"Lianhao Lu - yes, +1 to you here","commit_id":"f202f681fc0772a7934cf8d70df2d75016c81dec"}]}
