)]}'
{"openstackclient/network/common.py":[{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"95d8e466d0810822553f6463aa627362d0bfc3f3","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":212,"context_line":"class NetworkMultiDeleteCommand(command.Command):"},{"line_number":213,"context_line":"    \"\"\"Network Multi Delete"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    MultiDelete class supports bulk deletion, and error handling"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_f5b467d2","line":212,"range":{"start_line":212,"start_character":6,"end_line":212,"end_character":31},"updated":"2016-06-04 12:14:11.000000000","message":"I think we can reuse the existing class NetworkAndComputeDelete. It\u0027s just the name which may be a little confused since port exists only in Neutron network. I don\u0027t think we should add this new class since the code is too duplicated.","commit_id":"8114947d4a6adaf2ca95f519c807fa09f3d0e667"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"a6543d6bf442ef00f2cffd02736c879ae32d02dc","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":212,"context_line":"class NetworkMultiDeleteCommand(command.Command):"},{"line_number":213,"context_line":"    \"\"\"Network Multi Delete"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    MultiDelete class supports bulk deletion, and error handling"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_b1aae417","line":212,"range":{"start_line":212,"start_character":6,"end_line":212,"end_character":31},"in_reply_to":"7aa08908_f5b467d2","updated":"2016-06-06 02:23:13.000000000","message":"I don\u0027t think we can reuse the class NetworkAndComputeDelete.\nThe take_action method is controlled by the return value of is_network_endpoint_enabled() in NetworkAndComputeDelete class, it is not right for a command which exists only in network. What\u0027s more, if we reuse the class, there are many redundant codes for a network only command.","commit_id":"8114947d4a6adaf2ca95f519c807fa09f3d0e667"}],"openstackclient/network/v2/port.py":[{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"6740d2de1884ebb9cf35b2dc944922f702581a93","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":287,"context_line":"        result \u003d 0"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        for port in parsed_args.port:"},{"line_number":290,"context_line":"            try:"},{"line_number":291,"context_line":"                obj \u003d client.find_port(port, ignore_missing\u003dFalse)"},{"line_number":292,"context_line":"                client.delete_port(obj)"},{"line_number":293,"context_line":"            except Exception as e:"},{"line_number":294,"context_line":"                result +\u003d 1"},{"line_number":295,"context_line":"                self.app.log.error(_(\"Failed to delete port with \""},{"line_number":296,"context_line":"                                   \"name or ID \u0027%(port)s\u0027: %(e)s\")"},{"line_number":297,"context_line":"                                   % {\u0027port\u0027: port, \u0027e\u0027: e})"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        if result \u003e 0:"},{"line_number":300,"context_line":"            total \u003d len(parsed_args.port)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_379e7363","line":297,"range":{"start_line":289,"start_character":0,"end_line":297,"end_character":60},"updated":"2016-05-31 12:25:46.000000000","message":"I believe this process could be put in a base class and be reused by other network classes, just like class NetworkAndComputeDelete in common.py.\n\nPlease try to do that. :)","commit_id":"28cc1345647a04800b00ab00949a33baff5dee4d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3454a4d1a030a93cf097230fa5a05b0005922747","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":287,"context_line":"        result \u003d 0"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        for port in parsed_args.port:"},{"line_number":290,"context_line":"            try:"},{"line_number":291,"context_line":"                obj \u003d client.find_port(port, ignore_missing\u003dFalse)"},{"line_number":292,"context_line":"                client.delete_port(obj)"},{"line_number":293,"context_line":"            except Exception as e:"},{"line_number":294,"context_line":"                result +\u003d 1"},{"line_number":295,"context_line":"                self.app.log.error(_(\"Failed to delete port with \""},{"line_number":296,"context_line":"                                   \"name or ID \u0027%(port)s\u0027: %(e)s\")"},{"line_number":297,"context_line":"                                   % {\u0027port\u0027: port, \u0027e\u0027: e})"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        if result \u003e 0:"},{"line_number":300,"context_line":"            total \u003d len(parsed_args.port)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_c923fea5","line":297,"range":{"start_line":289,"start_character":0,"end_line":297,"end_character":60},"in_reply_to":"9abb7d3a_379e7363","updated":"2016-05-31 15:58:57.000000000","message":"it can probably be made very general, i\u0027ve seen this same block used for images/volumes too now, would be great to have a re-usable function","commit_id":"28cc1345647a04800b00ab00949a33baff5dee4d"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"2436c80e6fa20b9fa27862675d7f30c90a4acf2d","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":287,"context_line":"        result \u003d 0"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        for port in parsed_args.port:"},{"line_number":290,"context_line":"            try:"},{"line_number":291,"context_line":"                obj \u003d client.find_port(port, ignore_missing\u003dFalse)"},{"line_number":292,"context_line":"                client.delete_port(obj)"},{"line_number":293,"context_line":"            except Exception as e:"},{"line_number":294,"context_line":"                result +\u003d 1"},{"line_number":295,"context_line":"                self.app.log.error(_(\"Failed to delete port with \""},{"line_number":296,"context_line":"                                   \"name or ID \u0027%(port)s\u0027: %(e)s\")"},{"line_number":297,"context_line":"                                   % {\u0027port\u0027: port, \u0027e\u0027: e})"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        if result \u003e 0:"},{"line_number":300,"context_line":"            total \u003d len(parsed_args.port)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_36a3f0b3","line":297,"range":{"start_line":289,"start_character":0,"end_line":297,"end_character":60},"in_reply_to":"9abb7d3a_c923fea5","updated":"2016-06-01 01:37:46.000000000","message":"Yes, it is a good idea, I will do it, thank you.","commit_id":"28cc1345647a04800b00ab00949a33baff5dee4d"}]}
