)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e42ac39475804201b1e4d5be197dbdd118033bd9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add timestamp fields for neutron ext resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to neutron ext resources"},{"line_number":10,"context_line":"like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":"This also propose an new service plugin \"timestampext_plugin\" like"},{"line_number":12,"context_line":"\"timestamp_core\" which for neutron core resource."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bab6814e_07b24c94","line":9,"updated":"2016-05-19 13:30:54.000000000","message":"can we have a better name?","commit_id":"787ac151a3f4ccb7de9cf42d0729a9d8f618dad4"},{"author":{"_account_id":21273,"name":"Ilya Chukhnakov","email":"Ilya.chukhnakov@gmail.com","username":"ichukhnakov"},"change_message_id":"fe2412c7350cf815f1f67d323198d251d340e91a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"APIImpact"},{"line_number":16,"context_line":"DocImpact: Neutron ext resources now contain \u0027timestamp\u0027 fields like"},{"line_number":17,"context_line":"           \u0027created_at\u0027 and \u0027updated_at\u0027"},{"line_number":18,"context_line":"Partially-Implements: blueprint add-ext-resource-timestamp"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I78b00516e31ce83376d37f57299b2229b6fb8fcf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"bab6814e_5630e4e8","line":18,"range":{"start_line":18,"start_character":22,"end_line":18,"end_character":58},"updated":"2016-05-23 19:49:31.000000000","message":"this link leads nowhere (launchpad reports \"No feature specifications match your criteria\" error)","commit_id":"67e7b7a933b9f649f65b46f8fbd67155d7f7cfa4"},{"author":{"_account_id":21273,"name":"Ilya Chukhnakov","email":"Ilya.chukhnakov@gmail.com","username":"ichukhnakov"},"change_message_id":"8bfac72c817e938c7b9a6b62ce7bba691eac748c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add timestamp fields for neutron ext resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":"This also propose an new service plugin \"ext_plugin\" like"},{"line_number":12,"context_line":"\"timestamp_core\" which for neutron core resource."},{"line_number":13,"context_line":"This patch add tempest Uts. The other test code will follow."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab6814e_dae82019","line":10,"range":{"start_line":10,"start_character":8,"end_line":10,"end_character":21},"updated":"2016-05-25 09:41:34.000000000","message":"What is it supposed to mean?","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"2a7282aeaee15bea54e5cb644fe4a2eb94628e35","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add timestamp fields for neutron ext resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":"This also propose an new service plugin \"ext_plugin\" like"},{"line_number":12,"context_line":"\"timestamp_core\" which for neutron core resource."},{"line_number":13,"context_line":"This patch add tempest Uts. The other test code will follow."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab6814e_312ddfa8","line":10,"range":{"start_line":10,"start_character":8,"end_line":10,"end_character":21},"in_reply_to":"bab6814e_dae82019","updated":"2016-05-26 03:51:39.000000000","message":"extension resources.. And  there is the details of this in the following.","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":21273,"name":"Ilya Chukhnakov","email":"Ilya.chukhnakov@gmail.com","username":"ichukhnakov"},"change_message_id":"8bfac72c817e938c7b9a6b62ce7bba691eac748c","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":"This also propose an new service plugin \"ext_plugin\" like"},{"line_number":12,"context_line":"\"timestamp_core\" which for neutron core resource."},{"line_number":13,"context_line":"This patch add tempest Uts. The other test code will follow."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab6814e_5add506f","line":11,"range":{"start_line":11,"start_character":41,"end_line":11,"end_character":51},"updated":"2016-05-25 09:41:34.000000000","message":"That name is even more cryptic.","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"2a7282aeaee15bea54e5cb644fe4a2eb94628e35","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":"This also propose an new service plugin \"ext_plugin\" like"},{"line_number":12,"context_line":"\"timestamp_core\" which for neutron core resource."},{"line_number":13,"context_line":"This patch add tempest Uts. The other test code will follow."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab6814e_5137c3fe","line":11,"range":{"start_line":11,"start_character":41,"end_line":11,"end_character":51},"in_reply_to":"bab6814e_5add506f","updated":"2016-05-26 03:51:39.000000000","message":"As this file is in the timestamp dir, and in the dir had contained the \u0027timestamp_plugin.py\u0027, so this file called \u0027ext_plugin\u0027 for distinguish.","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":21273,"name":"Ilya Chukhnakov","email":"Ilya.chukhnakov@gmail.com","username":"ichukhnakov"},"change_message_id":"8bfac72c817e938c7b9a6b62ce7bba691eac748c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":"This also propose an new service plugin \"ext_plugin\" like"},{"line_number":12,"context_line":"\"timestamp_core\" which for neutron core resource."},{"line_number":13,"context_line":"This patch add tempest Uts. The other test code will follow."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab6814e_7ab49434","line":12,"range":{"start_line":12,"start_character":1,"end_line":12,"end_character":15},"updated":"2016-05-25 09:41:34.000000000","message":"Can\u0027t we just add those resources to \u0027timestamp_core\u0027?","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"2a7282aeaee15bea54e5cb644fe4a2eb94628e35","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":"This also propose an new service plugin \"ext_plugin\" like"},{"line_number":12,"context_line":"\"timestamp_core\" which for neutron core resource."},{"line_number":13,"context_line":"This patch add tempest Uts. The other test code will follow."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab6814e_71648721","line":12,"range":{"start_line":12,"start_character":1,"end_line":12,"end_character":15},"in_reply_to":"bab6814e_7ab49434","updated":"2016-05-26 03:51:39.000000000","message":"Please see,https://review.openstack.org/#/c/290234/\nand the patch for timestamp_core, they suggest this ext_timestamp as another extension.","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":21273,"name":"Ilya Chukhnakov","email":"Ilya.chukhnakov@gmail.com","username":"ichukhnakov"},"change_message_id":"8bfac72c817e938c7b9a6b62ce7bba691eac748c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"APIImpact"},{"line_number":16,"context_line":"DocImpact: Neutron ext resources now contain \u0027timestamp\u0027 fields like"},{"line_number":17,"context_line":"           \u0027created_at\u0027 and \u0027updated_at\u0027"},{"line_number":18,"context_line":"Implements: blueprint add-ext-resource-timestamp"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I78b00516e31ce83376d37f57299b2229b6fb8fcf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab6814e_d7b599d0","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":48},"updated":"2016-05-25 09:41:34.000000000","message":"Does that blueprint exist? If so, fix the link please.","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"2a7282aeaee15bea54e5cb644fe4a2eb94628e35","unresolved":false,"context_lines":[{"line_number":15,"context_line":"APIImpact"},{"line_number":16,"context_line":"DocImpact: Neutron ext resources now contain \u0027timestamp\u0027 fields like"},{"line_number":17,"context_line":"           \u0027created_at\u0027 and \u0027updated_at\u0027"},{"line_number":18,"context_line":"Implements: blueprint add-ext-resource-timestamp"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I78b00516e31ce83376d37f57299b2229b6fb8fcf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab6814e_511ea370","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":48},"in_reply_to":"bab6814e_d7b599d0","updated":"2016-05-26 03:51:39.000000000","message":"OK..Thanks","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"b694bd701c8ea90ac772253de836453f1080c588","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add timestamp fields for neutron ext resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"bacf61ea_c286d863","line":9,"range":{"start_line":9,"start_character":32,"end_line":9,"end_character":45},"updated":"2016-08-08 02:30:35.000000000","message":"Just a query, do we need to name it as timestamp_ext, or can we just have timestamp?","commit_id":"9afd3935dffef23027117cbdb195752ad30d75c4"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"b694bd701c8ea90ac772253de836453f1080c588","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add timestamp fields for neutron ext resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"bacf61ea_82b22047","line":9,"range":{"start_line":9,"start_character":8,"end_line":9,"end_character":11},"updated":"2016-08-08 02:30:35.000000000","message":"nit : an -\u003e a","commit_id":"9afd3935dffef23027117cbdb195752ad30d75c4"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"b694bd701c8ea90ac772253de836453f1080c588","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add timestamp fields for neutron ext resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"bacf61ea_6298ccc0","line":9,"range":{"start_line":9,"start_character":47,"end_line":9,"end_character":50},"updated":"2016-08-08 02:30:35.000000000","message":"nit: for -\u003e to","commit_id":"9afd3935dffef23027117cbdb195752ad30d75c4"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"7ed32527981498c728e7e73aa655c8c14db16713","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add timestamp fields for neutron ext resources"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Propose an new extension named \"timestamp_ext\" for add timestamp to"},{"line_number":10,"context_line":"neutron ext resources like router/floatingip/security_group/security_group_rule."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"bacf61ea_82bd00b3","line":9,"range":{"start_line":9,"start_character":32,"end_line":9,"end_character":45},"in_reply_to":"bacf61ea_c286d863","updated":"2016-08-08 02:53:59.000000000","message":"@Reedip, Thanks,:).As the exist extension named \"timestamp_core\", so just for distinguishing.:)","commit_id":"9afd3935dffef23027117cbdb195752ad30d75c4"}],"neutron/extensions/timestamp.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"f1e8145fc47f5face88bb8684653c19d4777a2f3","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @classmethod"},{"line_number":52,"context_line":"    def get_alias(cls):"},{"line_number":53,"context_line":"        return \"timestamp\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def get_description(cls):"}],"source_content_type":"text/x-python","patch_set":12,"id":"1aa78d24_8893f4f9","line":53,"updated":"2016-07-11 06:42:31.000000000","message":"sorry, we can\u0027t change the existing extension since it was released with Mitaka. You still need a new extension.\n\nI just want you to use the existing service plugin to implement both the old extension and the new one.","commit_id":"079540d468670cd97de6c3305e17e5a400b12400"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"848b28c4d3a5a45d21c51fd96fa1838abe7f276f","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @classmethod"},{"line_number":52,"context_line":"    def get_alias(cls):"},{"line_number":53,"context_line":"        return \"timestamp\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def get_description(cls):"}],"source_content_type":"text/x-python","patch_set":12,"id":"1aa78d24_b5ec5693","line":53,"in_reply_to":"1aa78d24_8893f4f9","updated":"2016-07-15 03:03:56.000000000","message":"@Kevin, thanks , I agree. I will update this patch asap.","commit_id":"079540d468670cd97de6c3305e17e5a400b12400"}],"neutron/extensions/timestamp_ext.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7049537f6d1f14e9245c75681dc2f531f37f8dd8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 HuaWei Technologies."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_dc214cfd","line":1,"updated":"2016-05-09 02:49:54.000000000","message":"2016","commit_id":"a54d1aa8aa0aa07c73ea2ffdf715d20d43c14dad"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7049537f6d1f14e9245c75681dc2f531f37f8dd8","unresolved":false,"context_lines":[{"line_number":26,"context_line":"              },"},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":29,"context_line":"    \u0027routers\u0027: TIMESTAMP_BODY,"},{"line_number":30,"context_line":"    \u0027floatingips\u0027: TIMESTAMP_BODY,"},{"line_number":31,"context_line":"    \u0027security_groups\u0027: TIMESTAMP_BODY,"},{"line_number":32,"context_line":"    \u0027security_group_rules\u0027: TIMESTAMP_BODY,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_dc4f8cbb","line":29,"updated":"2016-05-09 02:49:54.000000000","message":"would you like to use l3.ROUTERS for consistency?","commit_id":"a54d1aa8aa0aa07c73ea2ffdf715d20d43c14dad"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7049537f6d1f14e9245c75681dc2f531f37f8dd8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":29,"context_line":"    \u0027routers\u0027: TIMESTAMP_BODY,"},{"line_number":30,"context_line":"    \u0027floatingips\u0027: TIMESTAMP_BODY,"},{"line_number":31,"context_line":"    \u0027security_groups\u0027: TIMESTAMP_BODY,"},{"line_number":32,"context_line":"    \u0027security_group_rules\u0027: TIMESTAMP_BODY,"},{"line_number":33,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_fcca5019","line":30,"updated":"2016-05-09 02:49:54.000000000","message":"l3.FLOATINGIPS","commit_id":"a54d1aa8aa0aa07c73ea2ffdf715d20d43c14dad"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7049537f6d1f14e9245c75681dc2f531f37f8dd8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":29,"context_line":"    \u0027routers\u0027: TIMESTAMP_BODY,"},{"line_number":30,"context_line":"    \u0027floatingips\u0027: TIMESTAMP_BODY,"},{"line_number":31,"context_line":"    \u0027security_groups\u0027: TIMESTAMP_BODY,"},{"line_number":32,"context_line":"    \u0027security_group_rules\u0027: TIMESTAMP_BODY,"},{"line_number":33,"context_line":"}"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_3cd5f8b8","line":31,"updated":"2016-05-09 02:49:54.000000000","message":"sg.SECURITYGROUPS","commit_id":"a54d1aa8aa0aa07c73ea2ffdf715d20d43c14dad"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7049537f6d1f14e9245c75681dc2f531f37f8dd8","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \u0027routers\u0027: TIMESTAMP_BODY,"},{"line_number":30,"context_line":"    \u0027floatingips\u0027: TIMESTAMP_BODY,"},{"line_number":31,"context_line":"    \u0027security_groups\u0027: TIMESTAMP_BODY,"},{"line_number":32,"context_line":"    \u0027security_group_rules\u0027: TIMESTAMP_BODY,"},{"line_number":33,"context_line":"}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_9cdce4e5","line":32,"updated":"2016-05-09 02:49:54.000000000","message":"sg.SECURITYGROUPRULES","commit_id":"a54d1aa8aa0aa07c73ea2ffdf715d20d43c14dad"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e42ac39475804201b1e4d5be197dbdd118033bd9","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def get_name(cls):"},{"line_number":47,"context_line":"        return \"Time Stamp Fields addition for ext resources\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @classmethod"},{"line_number":50,"context_line":"    def get_alias(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_6799981f","line":47,"range":{"start_line":47,"start_character":47,"end_line":47,"end_character":50},"updated":"2016-05-19 13:30:54.000000000","message":"can we please add something that is less cryptic. The ext is confusing","commit_id":"787ac151a3f4ccb7de9cf42d0729a9d8f618dad4"},{"author":{"_account_id":21273,"name":"Ilya Chukhnakov","email":"Ilya.chukhnakov@gmail.com","username":"ichukhnakov"},"change_message_id":"8bfac72c817e938c7b9a6b62ce7bba691eac748c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class Timestamp_ext(extensions.ExtensionDescriptor):"},{"line_number":39,"context_line":"    \"\"\"Extension class supporting timestamp."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    This class is used by neutron\u0027s extension framework for adding timestamp"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_d5fe3104","line":38,"range":{"start_line":38,"start_character":15,"end_line":38,"end_character":16},"updated":"2016-05-25 09:41:34.000000000","message":"Can\u0027t we follow PEP8 class name convention [1] here?\n\n[1] https://www.python.org/dev/peps/pep-0008/#class-names","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"2a7282aeaee15bea54e5cb644fe4a2eb94628e35","unresolved":false,"context_lines":[{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class Timestamp_ext(extensions.ExtensionDescriptor):"},{"line_number":39,"context_line":"    \"\"\"Extension class supporting timestamp."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    This class is used by neutron\u0027s extension framework for adding timestamp"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_6c2790b6","line":38,"range":{"start_line":38,"start_character":15,"end_line":38,"end_character":16},"in_reply_to":"bab6814e_d5fe3104","updated":"2016-05-26 03:51:39.000000000","message":"I just want to follow the timestamp_core. Other externsions also give the class name contain \u0027_\u0027..","commit_id":"85faf3f8cac5d540aa3f58485ba9b4f996c5a4f9"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"47e839d98e115b10b3ef1cc7736f0d49983c808a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from neutron.extensions import l3"},{"line_number":17,"context_line":"from neutron.extensions import securitygroup as sg"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Attribute Map"},{"line_number":20,"context_line":"CREATED \u003d \u0027created_at\u0027"},{"line_number":21,"context_line":"UPDATED \u003d \u0027updated_at\u0027"},{"line_number":22,"context_line":"TIMESTAMP_BODY \u003d {"}],"source_content_type":"text/x-python","patch_set":17,"id":"dada55a8_1abbe4e6","line":19,"updated":"2016-07-19 07:39:14.000000000","message":"these definition are same as timestamm_core.py #18, so what do you think define them at a common file?","commit_id":"9afd3935dffef23027117cbdb195752ad30d75c4"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"b694bd701c8ea90ac772253de836453f1080c588","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from neutron.extensions import l3"},{"line_number":17,"context_line":"from neutron.extensions import securitygroup as sg"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Attribute Map"},{"line_number":20,"context_line":"CREATED \u003d \u0027created_at\u0027"},{"line_number":21,"context_line":"UPDATED \u003d \u0027updated_at\u0027"},{"line_number":22,"context_line":"TIMESTAMP_BODY \u003d {"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_429308a3","line":19,"in_reply_to":"dada55a8_1abbe4e6","updated":"2016-08-08 02:30:35.000000000","message":"Common file would be a better idea","commit_id":"9afd3935dffef23027117cbdb195752ad30d75c4"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"b694bd701c8ea90ac772253de836453f1080c588","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def get_description(cls):"},{"line_number":55,"context_line":"        return (\"This extension can be used for recording \""},{"line_number":56,"context_line":"                \"create/update timestamps for ext resources \""},{"line_number":57,"context_line":"                \"like router/floatingip/security_group/security_group_rule.\")"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def get_updated(cls):"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_c2d41848","line":57,"range":{"start_line":57,"start_character":28,"end_line":57,"end_character":74},"updated":"2016-08-08 02:30:35.000000000","message":"router, floating ip, security group, security group rule etc.","commit_id":"9afd3935dffef23027117cbdb195752ad30d75c4"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"e55b974e25394b9ce6438247dbed45e2a475af67","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def get_description(cls):"},{"line_number":55,"context_line":"        return (\"This extension can be used for recording \""},{"line_number":56,"context_line":"                \"create/update timestamps for ext resources \""},{"line_number":57,"context_line":"                \"like router/floatingip/security_group/security_group_rule.\")"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def get_updated(cls):"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_4bb20095","line":57,"range":{"start_line":57,"start_character":28,"end_line":57,"end_character":74},"in_reply_to":"bacf61ea_42ce685a","updated":"2016-08-08 08:08:23.000000000","message":"+1","commit_id":"9afd3935dffef23027117cbdb195752ad30d75c4"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"7ed32527981498c728e7e73aa655c8c14db16713","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def get_description(cls):"},{"line_number":55,"context_line":"        return (\"This extension can be used for recording \""},{"line_number":56,"context_line":"                \"create/update timestamps for ext resources \""},{"line_number":57,"context_line":"                \"like router/floatingip/security_group/security_group_rule.\")"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def get_updated(cls):"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_42ce685a","line":57,"range":{"start_line":57,"start_character":28,"end_line":57,"end_character":74},"in_reply_to":"bacf61ea_c2d41848","updated":"2016-08-08 02:53:59.000000000","message":"Thanks :)","commit_id":"9afd3935dffef23027117cbdb195752ad30d75c4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"37f293857bab92de8e35c2f9e0bce2a8225bb8f4","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def get_name(cls):"},{"line_number":47,"context_line":"        return \"Time Stamp Fields addition for extension resources\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @classmethod"},{"line_number":50,"context_line":"    def get_alias(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_385e8fe9","line":47,"updated":"2016-09-01 13:36:19.000000000","message":"there is a bit of a problem here with the description: it does not really cover ALL extension resources (and that\u0027s ok). F.e. flavours are not covered.","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"bd32f91bcd561078fc6bb116b44ed784146febce","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def get_name(cls):"},{"line_number":47,"context_line":"        return \"Time Stamp Fields addition for extension resources\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @classmethod"},{"line_number":50,"context_line":"    def get_alias(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_538b341e","line":47,"in_reply_to":"fa7ab95a_385e8fe9","updated":"2016-09-01 13:55:30.000000000","message":"Done","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"4908bcc737e8db029ad163f6e04b1598bc4bb17d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        return (\"This extension can be used for recording \""},{"line_number":56,"context_line":"                \"create/update timestamps for ext resources \""},{"line_number":57,"context_line":"                \"like router, floatingip, security_group, \""},{"line_number":58,"context_line":"                \"security_group_rule.\")"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @classmethod"},{"line_number":61,"context_line":"    def get_updated(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_18470b4c","line":58,"updated":"2016-09-01 13:34:24.000000000","message":"Should we have get_required_extensions defined to require sec groups and l3?","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"19af05cd1c3d54d77dc323988811df0c5c6099f6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        return (\"This extension can be used for recording \""},{"line_number":56,"context_line":"                \"create/update timestamps for ext resources \""},{"line_number":57,"context_line":"                \"like router, floatingip, security_group, \""},{"line_number":58,"context_line":"                \"security_group_rule.\")"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @classmethod"},{"line_number":61,"context_line":"    def get_updated(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_5808b3d9","line":58,"in_reply_to":"fa7ab95a_18470b4c","updated":"2016-09-01 13:36:48.000000000","message":"I don\u0027t think so. This doesn\u0027t depend on those to function. It can still add to router if the others are missing for example.","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"9b82005592f193c6e1f1571df25bad38939f9d1a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        return (\"This extension can be used for recording \""},{"line_number":56,"context_line":"                \"create/update timestamps for ext resources \""},{"line_number":57,"context_line":"                \"like router, floatingip, security_group, \""},{"line_number":58,"context_line":"                \"security_group_rule.\")"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @classmethod"},{"line_number":61,"context_line":"    def get_updated(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_98a23b4a","line":58,"in_reply_to":"fa7ab95a_5808b3d9","updated":"2016-09-01 13:42:55.000000000","message":"Roger.","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e2d2aa7cbe628a355a5f8bc678e99ebf6346ea84","unresolved":false,"context_lines":[{"line_number":19,"context_line":"# Attribute Map"},{"line_number":20,"context_line":"CREATED \u003d \u0027created_at\u0027"},{"line_number":21,"context_line":"UPDATED \u003d \u0027updated_at\u0027"},{"line_number":22,"context_line":"TIMESTAMP_BODY \u003d {"},{"line_number":23,"context_line":"    CREATED: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":24,"context_line":"              \u0027is_visible\u0027: True, \u0027default\u0027: None"},{"line_number":25,"context_line":"              },"}],"source_content_type":"text/x-python","patch_set":25,"id":"fa7ab95a_c3559950","line":22,"updated":"2016-09-01 21:22:33.000000000","message":"Kevin and I talked about more holistically exposing via the API attributes that are available in the standardattributes model. However, this change ties this extension just to a specific set of resources, e.g. router, etc.\n\nSo what\u0027s the plan for the others? The ones that come to mind are segments and trunks. We are not going to add extensions on top of extensions are we? So in a nutshell, do we need to revise the extension description?","commit_id":"c86dc16a195c71c83805c4cdaae20b9cf334a3bb"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"55f509c194696d5613ade433cbc99773340bc015","unresolved":false,"context_lines":[{"line_number":19,"context_line":"# Attribute Map"},{"line_number":20,"context_line":"CREATED \u003d \u0027created_at\u0027"},{"line_number":21,"context_line":"UPDATED \u003d \u0027updated_at\u0027"},{"line_number":22,"context_line":"TIMESTAMP_BODY \u003d {"},{"line_number":23,"context_line":"    CREATED: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":24,"context_line":"              \u0027is_visible\u0027: True, \u0027default\u0027: None"},{"line_number":25,"context_line":"              },"}],"source_content_type":"text/x-python","patch_set":25,"id":"fa7ab95a_bbfb527a","line":22,"in_reply_to":"fa7ab95a_9d8e862c","updated":"2016-09-02 06:25:25.000000000","message":"Please see my follow-up patch to this one that centralizes these things in a general way.","commit_id":"c86dc16a195c71c83805c4cdaae20b9cf334a3bb"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"f89c6a14313d0fc38b4ba585bbf32080b2a7abac","unresolved":false,"context_lines":[{"line_number":19,"context_line":"# Attribute Map"},{"line_number":20,"context_line":"CREATED \u003d \u0027created_at\u0027"},{"line_number":21,"context_line":"UPDATED \u003d \u0027updated_at\u0027"},{"line_number":22,"context_line":"TIMESTAMP_BODY \u003d {"},{"line_number":23,"context_line":"    CREATED: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":24,"context_line":"              \u0027is_visible\u0027: True, \u0027default\u0027: None"},{"line_number":25,"context_line":"              },"}],"source_content_type":"text/x-python","patch_set":25,"id":"fa7ab95a_9d8e862c","line":22,"in_reply_to":"fa7ab95a_c3559950","updated":"2016-09-02 04:47:22.000000000","message":"Hi Armando, this change is just for the base extension resources. If we need to add all the extension resources in Neutron repo, we could add them in this file. \n\nIt is true that we could not only add the specified resources here , the right way is every extension resources contained these 2 fields.","commit_id":"c86dc16a195c71c83805c4cdaae20b9cf334a3bb"}],"neutron/services/timestamp/timestamp_plugin.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"0912fb1d65d90d010b64de6226f9f34f12d310d2","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            db_base_plugin_v2.NeutronDbPluginV2.register_dict_extend_funcs("},{"line_number":49,"context_line":"                rsmap, [self.extend_resource_dict_timestamp])"},{"line_number":50,"context_line":"            db_base_plugin_v2.NeutronDbPluginV2.register_model_query_hook("},{"line_number":51,"context_line":"                rs_model_maps[rsmap],"},{"line_number":52,"context_line":"                \"change_since_query\","},{"line_number":53,"context_line":"                None,"},{"line_number":54,"context_line":"                None,"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_170e5634","line":51,"updated":"2016-07-18 08:23:50.000000000","message":"since you reference the dict value here, change L47 to:\n\nfor rsmap, model in rs_model_maps.items():","commit_id":"e0a5412d93e49105f213706ab078060dd7733b42"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"6153cfa1a99d0c9f95bc3b5839b323df7a6dfdc5","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            db_base_plugin_v2.NeutronDbPluginV2.register_dict_extend_funcs("},{"line_number":49,"context_line":"                rsmap, [self.extend_resource_dict_timestamp])"},{"line_number":50,"context_line":"            db_base_plugin_v2.NeutronDbPluginV2.register_model_query_hook("},{"line_number":51,"context_line":"                rs_model_maps[rsmap],"},{"line_number":52,"context_line":"                \"change_since_query\","},{"line_number":53,"context_line":"                None,"},{"line_number":54,"context_line":"                None,"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_4c74b9ce","line":51,"in_reply_to":"dada55a8_170e5634","updated":"2016-07-18 10:55:12.000000000","message":"Good suggesion! Thank you.:)","commit_id":"e0a5412d93e49105f213706ab078060dd7733b42"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"0912fb1d65d90d010b64de6226f9f34f12d310d2","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                None,"},{"line_number":54,"context_line":"                None,"},{"line_number":55,"context_line":"                self._change_since_result_filter_hook)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # TODO(jlibosva): Move this to register_model_query_hook"},{"line_number":58,"context_line":"        base_obj.register_filter_hook_on_model("},{"line_number":59,"context_line":"            models_v2.SubnetPool, ts_db.CHANGED_SINCE)"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_9706c71e","line":56,"updated":"2016-07-18 08:23:50.000000000","message":"unnecessary whitespace change.","commit_id":"e0a5412d93e49105f213706ab078060dd7733b42"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"6153cfa1a99d0c9f95bc3b5839b323df7a6dfdc5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                None,"},{"line_number":54,"context_line":"                None,"},{"line_number":55,"context_line":"                self._change_since_result_filter_hook)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # TODO(jlibosva): Move this to register_model_query_hook"},{"line_number":58,"context_line":"        base_obj.register_filter_hook_on_model("},{"line_number":59,"context_line":"            models_v2.SubnetPool, ts_db.CHANGED_SINCE)"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_6c77fdd4","line":56,"in_reply_to":"dada55a8_9706c71e","updated":"2016-07-18 10:55:12.000000000","message":"Done","commit_id":"e0a5412d93e49105f213706ab078060dd7733b42"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"34bcd7af5e8ba8fb83e48869db1562df00af2c6c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from neutron.db import db_base_plugin_v2"},{"line_number":17,"context_line":"from neutron.db import l3_db"},{"line_number":18,"context_line":"from neutron.db import models_v2"},{"line_number":19,"context_line":"from neutron.db import securitygroups_db as sg_db"},{"line_number":20,"context_line":"from neutron.extensions import l3"},{"line_number":21,"context_line":"from neutron.extensions import securitygroup as sg"},{"line_number":22,"context_line":"from neutron.objects import base as base_obj"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa7ab95a_6f0ea833","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":49},"updated":"2016-09-01 05:56:53.000000000","message":"from neutron.db.models import securitygroup as sg_db","commit_id":"9bee962038d17b1165b7688bda879f8988def08c"}],"neutron/services/timestamp/timestampext_plugin.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7049537f6d1f14e9245c75681dc2f531f37f8dd8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 HuaWei Technologies."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_bc73a814","line":1,"updated":"2016-05-09 02:49:54.000000000","message":"2016","commit_id":"a54d1aa8aa0aa07c73ea2ffdf715d20d43c14dad"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7049537f6d1f14e9245c75681dc2f531f37f8dd8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 HuaWei Technologies."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_dc82ec93","line":3,"updated":"2016-05-09 02:49:54.000000000","message":"I would suggest renaming this file as \"timestamp_ext_plugin\" or just \"ext_plugin\" for better readability. Please note we are already inside timestamp folder hence again prefixing with \u0027timestamp\u0027 will not be necessary.","commit_id":"a54d1aa8aa0aa07c73ea2ffdf715d20d43c14dad"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7049537f6d1f14e9245c75681dc2f531f37f8dd8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                         ts_db.TimeStamp_db_mixin):"},{"line_number":26,"context_line":"    \"\"\"Implements Neutron Timestamp Service plugin.\"\"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    supported_extension_aliases \u003d [\u0027timestamp_ext\u0027]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def __init__(self):"},{"line_number":31,"context_line":"        super(TimeStampExtPlugin, self).__init__()"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_fc66d027","line":28,"updated":"2016-05-09 02:49:54.000000000","message":"What if none of the required extensions are initialized? In that case I think this will not have any functionality.","commit_id":"a54d1aa8aa0aa07c73ea2ffdf715d20d43c14dad"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"7049537f6d1f14e9245c75681dc2f531f37f8dd8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            db_base_plugin_v2.NeutronDbPluginV2.register_dict_extend_funcs("},{"line_number":36,"context_line":"                resources, [self.extend_resource_dict_timestamp])"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        for model in [l3_db.Router, l3_db.FloatingIP,"},{"line_number":39,"context_line":"                      sg_db.SecurityGroup, sg_db.SecurityGroupRule]:"},{"line_number":40,"context_line":"            db_base_plugin_v2.NeutronDbPluginV2.register_model_query_hook("},{"line_number":41,"context_line":"                model,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dab17558_9c8a24be","line":38,"updated":"2016-05-09 02:49:54.000000000","message":"Why we need to have two loops? can\u0027t we perform both the operation \u0027register_dict_extend_funcs\u0027 and \u0027register_model_query_hook\u0027 inside a single loop?","commit_id":"a54d1aa8aa0aa07c73ea2ffdf715d20d43c14dad"}],"neutron/tests/tempest/api/test_timestamp.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"0912fb1d65d90d010b64de6226f9f34f12d310d2","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class TestTimeStampWithExtResource(base_routers.BaseRouterTest,"},{"line_number":185,"context_line":"                                   base_security_groups.BaseSecGroupTest):"},{"line_number":186,"context_line":"    @classmethod"},{"line_number":187,"context_line":"    def skip_checks(cls):"},{"line_number":188,"context_line":"        super(TestTimeStampWithExtResource, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_1725b6aa","line":185,"updated":"2016-07-18 08:23:50.000000000","message":"separate out the tests into separate classes for routers and security groups. If someone is running neutron without the L3 plugin, we still want the tests to validate security group behavior.","commit_id":"e0a5412d93e49105f213706ab078060dd7733b42"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"6153cfa1a99d0c9f95bc3b5839b323df7a6dfdc5","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class TestTimeStampWithExtResource(base_routers.BaseRouterTest,"},{"line_number":185,"context_line":"                                   base_security_groups.BaseSecGroupTest):"},{"line_number":186,"context_line":"    @classmethod"},{"line_number":187,"context_line":"    def skip_checks(cls):"},{"line_number":188,"context_line":"        super(TestTimeStampWithExtResource, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":15,"id":"dada55a8_c01a2d6e","line":185,"in_reply_to":"dada55a8_1725b6aa","updated":"2016-07-18 10:55:12.000000000","message":"Agree. Thanks very much. :)","commit_id":"e0a5412d93e49105f213706ab078060dd7733b42"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"437ad196f921056179d7d27ac00a9db79ca7b8c4","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        super(TestTimeStampWithL3, cls).skip_checks()"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        if not test.is_extension_enabled(\u0027timestamp_core\u0027, \u0027network\u0027):"},{"line_number":190,"context_line":"            raise cls.skipException(\"timestamp_core extension not enabled\")"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    @classmethod"},{"line_number":193,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_0d942be0","line":190,"updated":"2016-09-01 13:32:41.000000000","message":"shouldn\u0027t it be timestamp_ext?","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"bd32f91bcd561078fc6bb116b44ed784146febce","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        super(TestTimeStampWithL3, cls).skip_checks()"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        if not test.is_extension_enabled(\u0027timestamp_core\u0027, \u0027network\u0027):"},{"line_number":190,"context_line":"            raise cls.skipException(\"timestamp_core extension not enabled\")"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    @classmethod"},{"line_number":193,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_53b974ca","line":190,"in_reply_to":"fa7ab95a_0d942be0","updated":"2016-09-01 13:55:30.000000000","message":"Done","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"437ad196f921056179d7d27ac00a9db79ca7b8c4","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                         show_fip[\u0027updated_at\u0027])"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"class TestTimeStampWithSucurityGroup(base_security_groups.BaseSecGroupTest):"},{"line_number":259,"context_line":"    @classmethod"},{"line_number":260,"context_line":"    def skip_checks(cls):"},{"line_number":261,"context_line":"        super(TestTimeStampWithSucurityGroup, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_cd25e3c2","line":258,"range":{"start_line":258,"start_character":23,"end_line":258,"end_character":31},"updated":"2016-09-01 13:32:41.000000000","message":"Security","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"bd32f91bcd561078fc6bb116b44ed784146febce","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                         show_fip[\u0027updated_at\u0027])"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"class TestTimeStampWithSucurityGroup(base_security_groups.BaseSecGroupTest):"},{"line_number":259,"context_line":"    @classmethod"},{"line_number":260,"context_line":"    def skip_checks(cls):"},{"line_number":261,"context_line":"        super(TestTimeStampWithSucurityGroup, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_93b3fce8","line":258,"range":{"start_line":258,"start_character":23,"end_line":258,"end_character":31},"in_reply_to":"fa7ab95a_cd25e3c2","updated":"2016-09-01 13:55:30.000000000","message":"Done","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"437ad196f921056179d7d27ac00a9db79ca7b8c4","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    def skip_checks(cls):"},{"line_number":261,"context_line":"        super(TestTimeStampWithSucurityGroup, cls).skip_checks()"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        if not test.is_extension_enabled(\u0027timestamp_core\u0027, \u0027network\u0027):"},{"line_number":264,"context_line":"            raise cls.skipException(\"timestamp_core extension not enabled\")"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_2d2baf95","line":263,"updated":"2016-09-01 13:32:41.000000000","message":"ditto for timestamp_ext","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"bd32f91bcd561078fc6bb116b44ed784146febce","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    def skip_checks(cls):"},{"line_number":261,"context_line":"        super(TestTimeStampWithSucurityGroup, cls).skip_checks()"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        if not test.is_extension_enabled(\u0027timestamp_core\u0027, \u0027network\u0027):"},{"line_number":264,"context_line":"            raise cls.skipException(\"timestamp_core extension not enabled\")"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":24,"id":"fa7ab95a_b3cac04d","line":263,"in_reply_to":"fa7ab95a_2d2baf95","updated":"2016-09-01 13:55:30.000000000","message":"Done","commit_id":"5d2b453ec7c00a2e511b8bffc1dfbe62bca7eca8"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e2d2aa7cbe628a355a5f8bc678e99ebf6346ea84","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from tempest import test"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from neutron.tests.tempest.api import base"},{"line_number":19,"context_line":"from neutron.tests.tempest.api import base_routers"},{"line_number":20,"context_line":"from neutron.tests.tempest.api import base_security_groups"},{"line_number":21,"context_line":"from neutron.tests.tempest import config"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"fa7ab95a_63184dd4","line":19,"updated":"2016-09-01 21:22:33.000000000","message":"wouldn\u0027t these additional tests best be placed under test_timestamp_ext.py?","commit_id":"c86dc16a195c71c83805c4cdaae20b9cf334a3bb"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"f89c6a14313d0fc38b4ba585bbf32080b2a7abac","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from tempest import test"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from neutron.tests.tempest.api import base"},{"line_number":19,"context_line":"from neutron.tests.tempest.api import base_routers"},{"line_number":20,"context_line":"from neutron.tests.tempest.api import base_security_groups"},{"line_number":21,"context_line":"from neutron.tests.tempest import config"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"fa7ab95a_0f7f9fab","line":19,"in_reply_to":"fa7ab95a_63184dd4","updated":"2016-09-02 04:47:22.000000000","message":"@Armando, thanks for review. As this file is named \"test_timestamp\", the first extension is named \"timestamp_core\", this extension is named \u0027timestamp_ext\u0027, the related extensions are just add 2 fields, so I feel the all code need to be located in the same file. And I think it is no value to separate them. :)","commit_id":"c86dc16a195c71c83805c4cdaae20b9cf334a3bb"}]}
