)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"56d43d97ec9d820062b14fb736d60db14819806c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[log] Generic RPC stuffs for logging in server side"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch intends to make generic RPC stuffs for logging in server side."},{"line_number":10,"context_line":"So logging can be extended to be used by other resources like firewall."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #1720727"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"bf659307_dd2a668f","line":9,"range":{"start_line":9,"start_character":39,"end_line":9,"end_character":45},"updated":"2018-04-12 15:02:53.000000000","message":"what is \u0027stuffs\u0027?","commit_id":"87670ac1976862de553038f48f2f6597675fd7c2"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"5ac2ba499d6de787f4cb3876e5cc61aa5211a46e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[log] Generic RPC stuffs for logging in server side"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch intends to make generic RPC stuffs for logging in server side."},{"line_number":10,"context_line":"So logging can be extended to be used by other resources like firewall."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #1720727"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"bf659307_40daed77","line":9,"range":{"start_line":9,"start_character":39,"end_line":9,"end_character":45},"in_reply_to":"bf659307_dd2a668f","updated":"2018-04-12 15:09:51.000000000","message":"I mean anything relates to logging framework\u0027s RPC interaction/operation.","commit_id":"87670ac1976862de553038f48f2f6597675fd7c2"}],"neutron/services/logapi/common/constants.py":[{"author":{"_account_id":28174,"name":"Kim Bao Long","email":"longkb@vn.fujitsu.com","username":"longkb.fvl"},"change_message_id":"da056809db91395cf8534684d7e2f10b620aa9f1","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# supported logging types"},{"line_number":23,"context_line":"SECURITY_GROUP \u003d \u0027security_group\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RPC_NAMESPACE_LOGGING \u003d \u0027logging-plugin\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# Define for rpc_method_key"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_cf6de52f","line":24,"updated":"2018-06-26 04:45:44.000000000","message":"IMO, we should add \u0027firewall_group\u0027 constant to support firewall-based driver registration\nFIREWALL_GROUP \u003d \u0027firewall_group\u0027","commit_id":"fc79d25c576692e9b602cde4e6d9a004b24e9b87"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"d027164171892fff234b3ff6f5d56d1f2808f22e","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# supported logging types"},{"line_number":23,"context_line":"SECURITY_GROUP \u003d \u0027security_group\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RPC_NAMESPACE_LOGGING \u003d \u0027logging-plugin\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# Define for rpc_method_key"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_09a99ddb","line":24,"in_reply_to":"5f7c97a3_cf6de52f","updated":"2018-07-05 09:24:38.000000000","message":"No, It should be define in advanced services like fwaas, ...","commit_id":"fc79d25c576692e9b602cde4e6d9a004b24e9b87"}],"neutron/services/logapi/drivers/base.py":[{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"abc3a6b0b2f2504fa854d43477d8e67d2a2490f0","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            # trigger is the LoggingServiceDriverManager"},{"line_number":55,"context_line":"            trigger.register_driver(self)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def register_rpc_methods(self, resource_type, rpc_methods):"},{"line_number":58,"context_line":"        server_rpc.register_rpc_methods(resource_type, rpc_methods)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def is_loaded(self):"},{"line_number":61,"context_line":"        \"\"\"True if the driver is active for the Neutron Server."}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_d4a4eca5","line":58,"range":{"start_line":57,"start_character":0,"end_line":58,"end_character":67},"updated":"2018-06-19 09:28:05.000000000","message":"It would be great if you make this one as a decorator like https://review.openstack.org/#/c/529814/14/neutron/services/logapi/common/validators.py@130.","commit_id":"fc79d25c576692e9b602cde4e6d9a004b24e9b87"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"4c6eda819334f06053def29be73399cbfec777b0","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            # trigger is the LoggingServiceDriverManager"},{"line_number":55,"context_line":"            trigger.register_driver(self)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def register_rpc_methods(self, resource_type, rpc_methods):"},{"line_number":58,"context_line":"        server_rpc.register_rpc_methods(resource_type, rpc_methods)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def is_loaded(self):"},{"line_number":61,"context_line":"        \"\"\"True if the driver is active for the Neutron Server."}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_ee61de12","line":58,"range":{"start_line":57,"start_character":0,"end_line":58,"end_character":67},"in_reply_to":"5f7c97a3_d4a4eca5","updated":"2018-06-21 08:24:58.000000000","message":"+1","commit_id":"fc79d25c576692e9b602cde4e6d9a004b24e9b87"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"d027164171892fff234b3ff6f5d56d1f2808f22e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            # trigger is the LoggingServiceDriverManager"},{"line_number":55,"context_line":"            trigger.register_driver(self)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def register_rpc_methods(self, resource_type, rpc_methods):"},{"line_number":58,"context_line":"        server_rpc.register_rpc_methods(resource_type, rpc_methods)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def is_loaded(self):"},{"line_number":61,"context_line":"        \"\"\"True if the driver is active for the Neutron Server."}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_c9596529","line":58,"range":{"start_line":57,"start_character":0,"end_line":58,"end_character":67},"in_reply_to":"5f7c97a3_ee61de12","updated":"2018-07-05 09:24:38.000000000","message":"This require more work. I think current logic is OK. I will post a follow up patch if necessary later","commit_id":"fc79d25c576692e9b602cde4e6d9a004b24e9b87"}],"neutron/services/logapi/drivers/openvswitch/driver.py":[{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"4c6eda819334f06053def29be73399cbfec777b0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from neutron_lib.api.definitions import portbindings"},{"line_number":17,"context_line":"from neutron_lib.callbacks import resources as r_const"},{"line_number":18,"context_line":"from oslo_log import log as logging"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.services.logapi.common import constants as log_const"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_eebc7e6d","line":17,"range":{"start_line":17,"start_character":34,"end_line":17,"end_character":43},"updated":"2018-06-21 08:24:58.000000000","message":"I think no need to rename \u0027r_const\u0027.","commit_id":"fc79d25c576692e9b602cde4e6d9a004b24e9b87"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"d027164171892fff234b3ff6f5d56d1f2808f22e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from neutron_lib.api.definitions import portbindings"},{"line_number":17,"context_line":"from neutron_lib.callbacks import resources as r_const"},{"line_number":18,"context_line":"from oslo_log import log as logging"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.services.logapi.common import constants as log_const"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_49a31500","line":17,"range":{"start_line":17,"start_character":34,"end_line":17,"end_character":43},"in_reply_to":"5f7c97a3_eebc7e6d","updated":"2018-07-05 09:24:38.000000000","message":"Yup. Consider it done :)","commit_id":"fc79d25c576692e9b602cde4e6d9a004b24e9b87"}],"neutron/services/logapi/logging_plugin.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fcc428ecf16a1c54d0eeecf5d575f6fc94039766","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            server_rpc.get_sg_log_info_for_port)"},{"line_number":41,"context_line":"        server_rpc.register_validate_rpc_resources_method("},{"line_number":42,"context_line":"            log_const.SECURITY_GROUP,"},{"line_number":43,"context_line":"            server_rpc.get_sg_log_info_for_log_resources)"},{"line_number":44,"context_line":"        self.driver_manager \u003d driver_mgr.LoggingServiceDriverManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_ed4a3125","line":43,"range":{"start_line":43,"start_character":51,"end_line":43,"end_character":52},"updated":"2018-04-11 22:37:44.000000000","message":"]","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"e43e40118b5a244177e7e304ebee00388caa12d4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            server_rpc.get_sg_log_info_for_port)"},{"line_number":41,"context_line":"        server_rpc.register_validate_rpc_resources_method("},{"line_number":42,"context_line":"            log_const.SECURITY_GROUP,"},{"line_number":43,"context_line":"            server_rpc.get_sg_log_info_for_log_resources)"},{"line_number":44,"context_line":"        self.driver_manager \u003d driver_mgr.LoggingServiceDriverManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_6de4ba3c","line":43,"range":{"start_line":43,"start_character":51,"end_line":43,"end_character":52},"in_reply_to":"bf659307_11044549","updated":"2018-04-13 02:41:18.000000000","message":"Even we move those methods to LoggingServiceDriverManager, we will still need to call them again to append new method to ``VALIDATE_RPC_PORT_METHOD_MAP`` and ``VALIDATE_RPC_RESOURCES_METHOD_MAP`` in order to support for new resource.\nsomething like::\n        server_rpc.register_validate_rpc_port_method(\n            log_const.FIREWALL_GROUP,\n            server_rpc.get_fwg_log_info_for_port)\n        server_rpc.register_validate_rpc_resources_method(\n            log_const.FIREWALL_GROUP,\n            server_rpc.get_fwg_log_info_for_log_resources)","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"399abc877ab851a058170e05c1be19eb5cc29b89","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            server_rpc.get_sg_log_info_for_port)"},{"line_number":41,"context_line":"        server_rpc.register_validate_rpc_resources_method("},{"line_number":42,"context_line":"            log_const.SECURITY_GROUP,"},{"line_number":43,"context_line":"            server_rpc.get_sg_log_info_for_log_resources)"},{"line_number":44,"context_line":"        self.driver_manager \u003d driver_mgr.LoggingServiceDriverManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_c1758d65","line":43,"range":{"start_line":43,"start_character":51,"end_line":43,"end_character":52},"in_reply_to":"bf659307_2647bf79","updated":"2018-04-13 06:33:55.000000000","message":"Thanks!","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"a94c667c36c222f694b201ef80e74e7615da311d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            server_rpc.get_sg_log_info_for_port)"},{"line_number":41,"context_line":"        server_rpc.register_validate_rpc_resources_method("},{"line_number":42,"context_line":"            log_const.SECURITY_GROUP,"},{"line_number":43,"context_line":"            server_rpc.get_sg_log_info_for_log_resources)"},{"line_number":44,"context_line":"        self.driver_manager \u003d driver_mgr.LoggingServiceDriverManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_011e495e","line":43,"range":{"start_line":43,"start_character":51,"end_line":43,"end_character":52},"in_reply_to":"bf659307_2e3c9cdf","updated":"2018-04-12 04:40:21.000000000","message":"@An: I think we can keep it here. But I don\u0027t mind to update if we get more opinion about this consideration. Thanks","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"1bb5f26bbf794dd3c6785f82917edef0f0efa92c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            server_rpc.get_sg_log_info_for_port)"},{"line_number":41,"context_line":"        server_rpc.register_validate_rpc_resources_method("},{"line_number":42,"context_line":"            log_const.SECURITY_GROUP,"},{"line_number":43,"context_line":"            server_rpc.get_sg_log_info_for_log_resources)"},{"line_number":44,"context_line":"        self.driver_manager \u003d driver_mgr.LoggingServiceDriverManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_2647bf79","line":43,"range":{"start_line":43,"start_character":51,"end_line":43,"end_character":52},"in_reply_to":"bf659307_6de4ba3c","updated":"2018-04-13 06:06:47.000000000","message":"@An: Revision patch addressed your concern :)","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"4c66ac66ac21266799e80c0020c1e77f4ad755a2","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            server_rpc.get_sg_log_info_for_port)"},{"line_number":41,"context_line":"        server_rpc.register_validate_rpc_resources_method("},{"line_number":42,"context_line":"            log_const.SECURITY_GROUP,"},{"line_number":43,"context_line":"            server_rpc.get_sg_log_info_for_log_resources)"},{"line_number":44,"context_line":"        self.driver_manager \u003d driver_mgr.LoggingServiceDriverManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_11044549","line":43,"range":{"start_line":43,"start_character":51,"end_line":43,"end_character":52},"in_reply_to":"bf659307_b9bb170d","updated":"2018-04-12 17:13:04.000000000","message":"Basically, I\u0027d like to move registering rpc method into LoggingServiceDriverManager than put it in logging Plugin. For example, when I\u0027d like to add new resource like \u0027firewall\u0027, Do I need to modify logging plugin code?","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"a94c667c36c222f694b201ef80e74e7615da311d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            server_rpc.get_sg_log_info_for_port)"},{"line_number":41,"context_line":"        server_rpc.register_validate_rpc_resources_method("},{"line_number":42,"context_line":"            log_const.SECURITY_GROUP,"},{"line_number":43,"context_line":"            server_rpc.get_sg_log_info_for_log_resources)"},{"line_number":44,"context_line":"        self.driver_manager \u003d driver_mgr.LoggingServiceDriverManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_b9bb170d","line":43,"range":{"start_line":43,"start_character":51,"end_line":43,"end_character":52},"in_reply_to":"bf659307_ed4a3125","updated":"2018-04-12 04:40:21.000000000","message":"@Ihar: I don\u0027t get your point here. Could you provide more info? Thank you","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"86951ccfb462f63e5122086ef067813057c7d6f8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            server_rpc.get_sg_log_info_for_port)"},{"line_number":41,"context_line":"        server_rpc.register_validate_rpc_resources_method("},{"line_number":42,"context_line":"            log_const.SECURITY_GROUP,"},{"line_number":43,"context_line":"            server_rpc.get_sg_log_info_for_log_resources)"},{"line_number":44,"context_line":"        self.driver_manager \u003d driver_mgr.LoggingServiceDriverManager()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_2e3c9cdf","line":43,"range":{"start_line":43,"start_character":51,"end_line":43,"end_character":52},"in_reply_to":"bf659307_ed4a3125","updated":"2018-04-12 04:24:22.000000000","message":"Can we register these method in LoggingServiceDriverManager or somewhere?","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"}],"neutron/services/logapi/rpc/agent.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"13fb70388c37504d7a5ad626d662ca0c2cca886e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.rpc_client \u003d n_rpc.get_client(target)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @log_helpers.log_method_call"},{"line_number":35,"context_line":"    def get_log_info_for_port(self, context, resource_type, port_id):"},{"line_number":36,"context_line":"        \"\"\"Return list of sg_log info for a port\"\"\""},{"line_number":37,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":38,"context_line":"        return cctxt.call(context, \u0027get_log_info_for_port\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_9b190f24","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":29},"updated":"2018-04-04 15:48:12.000000000","message":"You shouldn\u0027t be changing the method names of rpc calls as this would break compatibility when running Queens server with agents with new code.","commit_id":"1c608abb56b53631892a8c1527d520a94a8a7946"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"18c3bcb3db131be5215835777c0a75e17e5daca9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.rpc_client \u003d n_rpc.get_client(target)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @log_helpers.log_method_call"},{"line_number":35,"context_line":"    def get_log_info_for_port(self, context, resource_type, port_id):"},{"line_number":36,"context_line":"        \"\"\"Return list of sg_log info for a port\"\"\""},{"line_number":37,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":38,"context_line":"        return cctxt.call(context, \u0027get_log_info_for_port\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_df1f5db5","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":29},"in_reply_to":"bf659307_9b190f24","updated":"2018-04-05 13:38:57.000000000","message":"Ah yes. Good catch.\nDONE!","commit_id":"1c608abb56b53631892a8c1527d520a94a8a7946"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"53f5749ee2346b232bb8b46921a8503440d08bed","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.rpc_client \u003d n_rpc.get_client(target)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @log_helpers.log_method_call"},{"line_number":35,"context_line":"    def get_log_info_for_port(self, context, resource_type, port_id):"},{"line_number":36,"context_line":"        \"\"\"Return list of sg_log info for a port\"\"\""},{"line_number":37,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":38,"context_line":"        return cctxt.call(context, \u0027get_log_info_for_port\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_e529ba89","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":29},"in_reply_to":"bf659307_df1f5db5","updated":"2018-04-13 08:45:37.000000000","message":"@Jakub, Do you have any idea to make name of the method more generic? Because old name of method is quite specific to sg. :). Should we mark old method is deprecated?","commit_id":"1c608abb56b53631892a8c1527d520a94a8a7946"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"d82dd5a1ed975a737e51dc2b4c032d466bacd489","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.rpc_client \u003d n_rpc.get_client(target)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @log_helpers.log_method_call"},{"line_number":35,"context_line":"    def get_sg_log_info_for_port(self, context, resource_type, port_id):"},{"line_number":36,"context_line":"        \"\"\"Return list of sg_log info for a port\"\"\""},{"line_number":37,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":38,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_port\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_c2090c2b","line":35,"range":{"start_line":35,"start_character":48,"end_line":35,"end_character":61},"updated":"2018-04-13 08:02:54.000000000","message":"Basically, I think we no need to pass \u0027resource_type\u0027","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"a2f041016d87178ca737e8dd11db778cfdda5427","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.rpc_client \u003d n_rpc.get_client(target)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @log_helpers.log_method_call"},{"line_number":35,"context_line":"    def get_sg_log_info_for_port(self, context, resource_type, port_id):"},{"line_number":36,"context_line":"        \"\"\"Return list of sg_log info for a port\"\"\""},{"line_number":37,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":38,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_port\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_026864f2","line":35,"range":{"start_line":35,"start_character":48,"end_line":35,"end_character":61},"in_reply_to":"bf659307_62a4c0a6","updated":"2018-04-13 08:36:56.000000000","message":"After second though and our discussion, we will keep current logic.","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"30bd8c2961597e5e08e85dea8bb5e8ff2cf761cc","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.rpc_client \u003d n_rpc.get_client(target)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @log_helpers.log_method_call"},{"line_number":35,"context_line":"    def get_sg_log_info_for_port(self, context, resource_type, port_id):"},{"line_number":36,"context_line":"        \"\"\"Return list of sg_log info for a port\"\"\""},{"line_number":37,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":38,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_port\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_22a9e822","line":35,"range":{"start_line":35,"start_character":48,"end_line":35,"end_character":61},"in_reply_to":"bf659307_c2090c2b","updated":"2018-04-13 08:36:39.000000000","message":"After we discussed, Please ignore this comment! Thanks.","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"f51172236d77173f0e3a234de0f2b58b82b97d65","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.rpc_client \u003d n_rpc.get_client(target)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @log_helpers.log_method_call"},{"line_number":35,"context_line":"    def get_sg_log_info_for_port(self, context, resource_type, port_id):"},{"line_number":36,"context_line":"        \"\"\"Return list of sg_log info for a port\"\"\""},{"line_number":37,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":38,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_port\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_62a4c0a6","line":35,"range":{"start_line":35,"start_character":48,"end_line":35,"end_character":61},"in_reply_to":"bf659307_c2090c2b","updated":"2018-04-13 08:23:44.000000000","message":"Done","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"d82dd5a1ed975a737e51dc2b4c032d466bacd489","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \"\"\"Return list of sg_log info for a port\"\"\""},{"line_number":37,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":38,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_port\u0027,"},{"line_number":39,"context_line":"                          resource_type\u003dresource_type,"},{"line_number":40,"context_line":"                          port_id\u003dport_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @log_helpers.log_method_call"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_422e5c8c","line":39,"range":{"start_line":39,"start_character":40,"end_line":39,"end_character":53},"updated":"2018-04-13 08:02:54.000000000","message":"I think we can pass \u0027security_group\u0027,","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"f51172236d77173f0e3a234de0f2b58b82b97d65","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \"\"\"Return list of sg_log info for a port\"\"\""},{"line_number":37,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":38,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_port\u0027,"},{"line_number":39,"context_line":"                          resource_type\u003dresource_type,"},{"line_number":40,"context_line":"                          port_id\u003dport_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @log_helpers.log_method_call"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_42a5fc9d","line":39,"range":{"start_line":39,"start_character":40,"end_line":39,"end_character":53},"in_reply_to":"bf659307_422e5c8c","updated":"2018-04-13 08:23:44.000000000","message":"Done","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"d82dd5a1ed975a737e51dc2b4c032d466bacd489","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @log_helpers.log_method_call"},{"line_number":43,"context_line":"    def get_sg_log_info_for_log_resources(self, context,"},{"line_number":44,"context_line":"                                       resource_type, log_resources):"},{"line_number":45,"context_line":"        \"\"\"Return list of sg_log info for list of log_resources\"\"\""},{"line_number":46,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":47,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_log_resources\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_a25418ff","line":44,"range":{"start_line":44,"start_character":39,"end_line":44,"end_character":52},"updated":"2018-04-13 08:02:54.000000000","message":"same comment at L35","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"f51172236d77173f0e3a234de0f2b58b82b97d65","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @log_helpers.log_method_call"},{"line_number":43,"context_line":"    def get_sg_log_info_for_log_resources(self, context,"},{"line_number":44,"context_line":"                                       resource_type, log_resources):"},{"line_number":45,"context_line":"        \"\"\"Return list of sg_log info for list of log_resources\"\"\""},{"line_number":46,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":47,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_log_resources\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_e2b9b0cb","line":44,"range":{"start_line":44,"start_character":39,"end_line":44,"end_character":52},"in_reply_to":"bf659307_a25418ff","updated":"2018-04-13 08:23:44.000000000","message":"Done","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"d82dd5a1ed975a737e51dc2b4c032d466bacd489","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\"Return list of sg_log info for list of log_resources\"\"\""},{"line_number":46,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":47,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_log_resources\u0027,"},{"line_number":48,"context_line":"                          resource_type\u003dresource_type,"},{"line_number":49,"context_line":"                          log_resources\u003dlog_resources)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_2248085a","line":48,"range":{"start_line":48,"start_character":40,"end_line":48,"end_character":53},"updated":"2018-04-13 08:02:54.000000000","message":"same comment at L38!","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"f51172236d77173f0e3a234de0f2b58b82b97d65","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\"Return list of sg_log info for list of log_resources\"\"\""},{"line_number":46,"context_line":"        cctxt \u003d self.rpc_client.prepare()"},{"line_number":47,"context_line":"        return cctxt.call(context, \u0027get_sg_log_info_for_log_resources\u0027,"},{"line_number":48,"context_line":"                          resource_type\u003dresource_type,"},{"line_number":49,"context_line":"                          log_resources\u003dlog_resources)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_02bdc4b5","line":48,"range":{"start_line":48,"start_character":40,"end_line":48,"end_character":53},"in_reply_to":"bf659307_2248085a","updated":"2018-04-13 08:23:44.000000000","message":"Done","commit_id":"e469083b8ef66fd6cfbe1fc541953ecdb47d583d"}],"neutron/services/logapi/rpc/server.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fcc428ecf16a1c54d0eeecf5d575f6fc94039766","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    #   1.0 Initial version"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    target \u003d oslo_messaging.Target("},{"line_number":72,"context_line":"        version\u003d\u00271.0\u0027, namespace\u003dlog_const.RPC_NAMESPACE_LOGGING)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def __init__(self):"},{"line_number":75,"context_line":"        self.conn \u003d n_rpc.create_connection()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_2d0b49d5","line":72,"updated":"2018-04-11 22:37:44.000000000","message":"I think you may need to bump this version to reflect the change to the existing endpoint (+ capture its description in the comment above).","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"a94c667c36c222f694b201ef80e74e7615da311d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    #   1.0 Initial version"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    target \u003d oslo_messaging.Target("},{"line_number":72,"context_line":"        version\u003d\u00271.0\u0027, namespace\u003dlog_const.RPC_NAMESPACE_LOGGING)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def __init__(self):"},{"line_number":75,"context_line":"        self.conn \u003d n_rpc.create_connection()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_b9feb7ac","line":72,"in_reply_to":"bf659307_2d0b49d5","updated":"2018-04-12 04:40:21.000000000","message":"Ah yes Thanks pointing it out","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fcc428ecf16a1c54d0eeecf5d575f6fc94039766","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                                  fanout\u003dFalse)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @log_helpers.log_method_call"},{"line_number":80,"context_line":"    def get_sg_log_info_for_port(self, context, resource_type, port_id):"},{"line_number":81,"context_line":"        validate_method \u003d get_validate_rpc_port_method(resource_type)"},{"line_number":82,"context_line":"        return validate_method(context, port_id)"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_6d05c1c1","line":80,"updated":"2018-04-11 22:37:44.000000000","message":"I don\u0027t think it will work in mixed version environment where Open vSwitch agent is e.g. still from Queens while Neutron API RPC server is already Pike. If the agent then calls to the RPC endpoint, it will not pass resource_type, which will result in TypeError (?).\n\nI think you should add resource_type as a keyword argument, and provide a default value for it that would reflect the current Queens behavior.","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"a94c667c36c222f694b201ef80e74e7615da311d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                                  fanout\u003dFalse)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @log_helpers.log_method_call"},{"line_number":80,"context_line":"    def get_sg_log_info_for_port(self, context, resource_type, port_id):"},{"line_number":81,"context_line":"        validate_method \u003d get_validate_rpc_port_method(resource_type)"},{"line_number":82,"context_line":"        return validate_method(context, port_id)"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_0eef581d","line":80,"in_reply_to":"bf659307_6d05c1c1","updated":"2018-04-12 04:40:21.000000000","message":"I see.\n\nCould you please help to check revision patch if it is OK?","commit_id":"17d79a146b4356512872dc0825ab8ba9751ce933"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"984ad2867de1bd37c7a9ad62fd3f35790327faf1","unresolved":false,"context_lines":[{"line_number":33,"context_line":"# This function must be called when a log_driver is registered."},{"line_number":34,"context_line":"def register_rpc_methods(resource_type, rpc_methods):"},{"line_number":35,"context_line":"    # rpc_methods would look like:"},{"line_number":36,"context_line":"    #    ["},{"line_number":37,"context_line":"    #       {\u0027PORT\u0027: get_sg_log_info_for_port},"},{"line_number":38,"context_line":"    #       {\u0027LOG_RESOURCE\u0027: get_sg_log_info_for_log_resources}"},{"line_number":39,"context_line":"    #   ]"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_65260ad1","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":9},"updated":"2018-04-13 09:24:55.000000000","message":"nit: a space","commit_id":"9d78086e6fcf9e134e4f85a6d3c0e28be2470b79"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"984ad2867de1bd37c7a9ad62fd3f35790327faf1","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# This function must be called when a log_driver is registered."},{"line_number":34,"context_line":"def register_rpc_methods(resource_type, rpc_methods):"},{"line_number":35,"context_line":"    # rpc_methods would look like:"},{"line_number":36,"context_line":"    #    ["},{"line_number":37,"context_line":"    #       {\u0027PORT\u0027: get_sg_log_info_for_port},"},{"line_number":38,"context_line":"    #       {\u0027LOG_RESOURCE\u0027: get_sg_log_info_for_log_resources}"},{"line_number":39,"context_line":"    #   ]"},{"line_number":40,"context_line":"    if resource_type not in RPC_RESOURCES_METHOD_MAP:"},{"line_number":41,"context_line":"        RPC_RESOURCES_METHOD_MAP[resource_type] \u003d rpc_methods"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_650fea36","line":39,"range":{"start_line":35,"start_character":3,"end_line":39,"end_character":9},"updated":"2018-04-13 09:24:55.000000000","message":"this should be in argument explanation in docstrings","commit_id":"9d78086e6fcf9e134e4f85a6d3c0e28be2470b79"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"07a8e213654979cd2528f038f515a09ec4546ac1","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# This function must be called when a log_driver is registered."},{"line_number":34,"context_line":"def register_rpc_methods(resource_type, rpc_methods):"},{"line_number":35,"context_line":"    # rpc_methods would look like:"},{"line_number":36,"context_line":"    #    ["},{"line_number":37,"context_line":"    #       {\u0027PORT\u0027: get_sg_log_info_for_port},"},{"line_number":38,"context_line":"    #       {\u0027LOG_RESOURCE\u0027: get_sg_log_info_for_log_resources}"},{"line_number":39,"context_line":"    #   ]"},{"line_number":40,"context_line":"    if resource_type not in RPC_RESOURCES_METHOD_MAP:"},{"line_number":41,"context_line":"        RPC_RESOURCES_METHOD_MAP[resource_type] \u003d rpc_methods"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_68610105","line":39,"range":{"start_line":35,"start_character":3,"end_line":39,"end_character":9},"in_reply_to":"bf659307_650fea36","updated":"2018-04-13 09:58:26.000000000","message":"Done","commit_id":"9d78086e6fcf9e134e4f85a6d3c0e28be2470b79"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"eca82c5ce305464e38922900565f3bb3548a27c2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"def register_rpc_methods(resource_type, rpc_methods):"},{"line_number":35,"context_line":"    \"\"\"Register RPC methods."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    :param resource_type: must be a valid resource type."},{"line_number":38,"context_line":"    :param rpc_methods: list of RPC methods to be registered."},{"line_number":39,"context_line":"           This param would look like:"},{"line_number":40,"context_line":"           ["}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_2b39dbd6","line":37,"range":{"start_line":37,"start_character":26,"end_line":37,"end_character":56},"updated":"2018-07-06 05:50:35.000000000","message":"Please mention this argument type is \u0027string\u0027.","commit_id":"14b040e9e1361b163a710fa2b2b012a17cdbeedc"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"556ac1df1b6e87bc8468a3a404a860ee3690af40","unresolved":false,"context_lines":[{"line_number":34,"context_line":"def register_rpc_methods(resource_type, rpc_methods):"},{"line_number":35,"context_line":"    \"\"\"Register RPC methods."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    :param resource_type: must be a valid resource type."},{"line_number":38,"context_line":"    :param rpc_methods: list of RPC methods to be registered."},{"line_number":39,"context_line":"           This param would look like:"},{"line_number":40,"context_line":"           ["}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_5bdf2e0b","line":37,"range":{"start_line":37,"start_character":26,"end_line":37,"end_character":56},"in_reply_to":"5f7c97a3_2b39dbd6","updated":"2018-07-09 03:45:17.000000000","message":"Done","commit_id":"14b040e9e1361b163a710fa2b2b012a17cdbeedc"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"0edcdf221fdd399a65238b6a8015769f7f47e684","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        raise NotImplementedError()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    for rpc_method in RPC_RESOURCES_METHOD_MAP[resource_type]:"},{"line_number":54,"context_line":"        if rpc_method_key in rpc_method.keys():"},{"line_number":55,"context_line":"            return list(rpc_method.values())[0]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    raise NotImplementedError()"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_4658ce55","line":55,"range":{"start_line":54,"start_character":0,"end_line":55,"end_character":47},"updated":"2018-07-30 20:57:30.000000000","message":"Nit: It took me a while to figure out what this code is doing. It seems it is just equivalent to below?\n\n  if rpc_method_key in rpc_method:\n      return rpc_method[rpc_method_key]","commit_id":"a4ffcab4cae23f1f7b3cc31f1ef922af9582ac2c"}],"neutron/tests/unit/services/logapi/common/test_db_api.py":[{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"cb02035087631454faea722fed7cc93030d9a9b6","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            log \u003d _create_log(resource_id\u003dsg_id, tenant_id\u003dtenant_id)"},{"line_number":166,"context_line":"            with mock.patch.object("},{"line_number":167,"context_line":"                    server_rpc,"},{"line_number":168,"context_line":"                    \u0027get_validate_rpc_resources_method\u0027,"},{"line_number":169,"context_line":"                    return_value\u003dserver_rpc.get_sg_log_info_for_log_resources"},{"line_number":170,"context_line":"            ):"},{"line_number":171,"context_line":"                with mock.patch.object(validators,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_8100f5ac","line":168,"range":{"start_line":168,"start_character":21,"end_line":168,"end_character":54},"updated":"2018-04-13 06:39:42.000000000","message":"It should be update!","commit_id":"f6ffba96c32bc645de87f6c2d71a263c1d994ff8"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"cb02035087631454faea722fed7cc93030d9a9b6","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                    log_object.Log, \u0027get_objects\u0027, return_value\u003d[log]):"},{"line_number":239,"context_line":"                with mock.patch.object("},{"line_number":240,"context_line":"                        server_rpc,"},{"line_number":241,"context_line":"                        \u0027get_validate_rpc_port_method\u0027,"},{"line_number":242,"context_line":"                        return_value\u003dserver_rpc.get_sg_log_info_for_port"},{"line_number":243,"context_line":"                ):"},{"line_number":244,"context_line":"                    with mock.patch.object("}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_41309d9f","line":241,"range":{"start_line":241,"start_character":25,"end_line":241,"end_character":53},"updated":"2018-04-13 06:39:42.000000000","message":"ditto!","commit_id":"f6ffba96c32bc645de87f6c2d71a263c1d994ff8"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"eca82c5ce305464e38922900565f3bb3548a27c2","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                            resource_type\u003dlog_const.SECURITY_GROUP,"},{"line_number":178,"context_line":"                            log_resources\u003d[log])"},{"line_number":179,"context_line":"                    )"},{"line_number":180,"context_line":"                    expected \u003d [{"},{"line_number":181,"context_line":"                        \u0027event\u0027: log.event,"},{"line_number":182,"context_line":"                        \u0027id\u0027: log.id,"},{"line_number":183,"context_line":"                        \u0027ports_log\u0027: [{"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_4b6457e5","line":180,"range":{"start_line":180,"start_character":20,"end_line":180,"end_character":28},"updated":"2018-07-06 05:50:35.000000000","message":"How about defining as a constant value?","commit_id":"14b040e9e1361b163a710fa2b2b012a17cdbeedc"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"eca82c5ce305464e38922900565f3bb3548a27c2","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                                resource_type\u003dlog_const.SECURITY_GROUP,"},{"line_number":252,"context_line":"                                port_id\u003dport_id)"},{"line_number":253,"context_line":"                        )"},{"line_number":254,"context_line":"                        expected \u003d [{"},{"line_number":255,"context_line":"                            \u0027event\u0027: log.event,"},{"line_number":256,"context_line":"                            \u0027id\u0027: log.id,"},{"line_number":257,"context_line":"                            \u0027ports_log\u0027: [{"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_eb5c431b","line":254,"range":{"start_line":254,"start_character":25,"end_line":254,"end_character":32},"updated":"2018-07-06 05:50:35.000000000","message":"ditto","commit_id":"14b040e9e1361b163a710fa2b2b012a17cdbeedc"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"17e93956c129790515c02d733c0120685abf6151","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                    \u0027get_rpc_method\u0027,"},{"line_number":169,"context_line":"                    return_value\u003dserver_rpc.get_sg_log_info_for_log_resources"},{"line_number":170,"context_line":"            ):"},{"line_number":171,"context_line":"                with mock.patch.object(validators,"},{"line_number":172,"context_line":"                                       \u0027validate_log_type_for_port\u0027,"},{"line_number":173,"context_line":"                                       return_value\u003dTrue):"},{"line_number":174,"context_line":"                    ports_log \u003d ("}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_6ba7a10a","line":171,"updated":"2018-07-20 08:05:10.000000000","message":"nit: You could do both mocks in one \"with\" statement and save one indentation level then :)","commit_id":"99231f871d6b2271e3c6320cbd05f1c8b271cdc0"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"17e93956c129790515c02d733c0120685abf6151","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                        \u0027get_rpc_method\u0027,"},{"line_number":242,"context_line":"                        return_value\u003dserver_rpc.get_sg_log_info_for_port"},{"line_number":243,"context_line":"                ):"},{"line_number":244,"context_line":"                    with mock.patch.object("},{"line_number":245,"context_line":"                            validators,"},{"line_number":246,"context_line":"                            \u0027validate_log_type_for_port\u0027,"},{"line_number":247,"context_line":"                            return_value\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f7c97a3_cb81154f","line":244,"updated":"2018-07-20 08:05:10.000000000","message":"same nit here :)","commit_id":"99231f871d6b2271e3c6320cbd05f1c8b271cdc0"}],"neutron/tests/unit/services/logapi/rpc/test_server.py":[{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"cb02035087631454faea722fed7cc93030d9a9b6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        resource_type \u003d \u0027security_group\u0027"},{"line_number":68,"context_line":"        method \u003d \u0027fake_method\u0027"},{"line_number":69,"context_line":"        server_rpc.VALIDATE_RPC_PORT_METHOD_MAP.clear()"},{"line_number":70,"context_line":"        server_rpc.register_validate_rpc_port_method(resource_type, method)"},{"line_number":71,"context_line":"        self.assertEqual({\u0027security_group\u0027: \u0027fake_method\u0027},"},{"line_number":72,"context_line":"                         server_rpc.VALIDATE_RPC_PORT_METHOD_MAP)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_613361ac","line":70,"range":{"start_line":70,"start_character":19,"end_line":70,"end_character":52},"updated":"2018-04-13 06:39:42.000000000","message":"It should be update!","commit_id":"f6ffba96c32bc645de87f6c2d71a263c1d994ff8"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"cb02035087631454faea722fed7cc93030d9a9b6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def test_get_validate_rpc_port_method(self):"},{"line_number":75,"context_line":"        server_rpc.VALIDATE_RPC_PORT_METHOD_MAP \u003d {"},{"line_number":76,"context_line":"            \u0027security_group\u0027: \u0027fake_method\u0027}"},{"line_number":77,"context_line":"        actual \u003d server_rpc.get_validate_rpc_port_method(\u0027security_group\u0027)"},{"line_number":78,"context_line":"        self.assertEqual(\u0027fake_method\u0027, actual)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def test_register_validate_rpc_resources_method(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_2129e935","line":77,"range":{"start_line":77,"start_character":28,"end_line":77,"end_character":56},"updated":"2018-04-13 06:39:42.000000000","message":"ditto!","commit_id":"f6ffba96c32bc645de87f6c2d71a263c1d994ff8"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"eca82c5ce305464e38922900565f3bb3548a27c2","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class TestRegisterValidateRPCMethods(base.BaseTestCase):"},{"line_number":66,"context_line":"    def test_register_rpc_methods_method(self):"},{"line_number":67,"context_line":"        resource_type \u003d \u0027security_group\u0027"},{"line_number":68,"context_line":"        method \u003d [{\u0027fake_key1\u0027: \u0027fake_method1\u0027},"},{"line_number":69,"context_line":"                  {\u0027fake_key2\u0027: \u0027fake_method2\u0027}]"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_0b5adf1c","line":66,"updated":"2018-07-06 05:50:35.000000000","message":"Please add 1 blank line.","commit_id":"14b040e9e1361b163a710fa2b2b012a17cdbeedc"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"556ac1df1b6e87bc8468a3a404a860ee3690af40","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class TestRegisterValidateRPCMethods(base.BaseTestCase):"},{"line_number":66,"context_line":"    def test_register_rpc_methods_method(self):"},{"line_number":67,"context_line":"        resource_type \u003d \u0027security_group\u0027"},{"line_number":68,"context_line":"        method \u003d [{\u0027fake_key1\u0027: \u0027fake_method1\u0027},"},{"line_number":69,"context_line":"                  {\u0027fake_key2\u0027: \u0027fake_method2\u0027}]"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_7bd54ae5","line":66,"in_reply_to":"5f7c97a3_0b5adf1c","updated":"2018-07-09 03:45:17.000000000","message":"Done","commit_id":"14b040e9e1361b163a710fa2b2b012a17cdbeedc"}]}
