)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80cdd1d7a257d936e60ac2ff93e25100ad2b59cf","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-10-03 05:45:18 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"avoid 500 err when deleting port if designate down"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iee54d98a08f3ab300e77488125111399c558d28d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_e1261369","line":8,"updated":"2019-10-04 09:01:52.000000000","message":"is there any bug reported for that? If yes, please link to it here, if not, I think it would be good to open one to track backports ot this patch if needed","commit_id":"9b51d917198a082d2a162e30349bc56b18016e63"}],"neutron/db/dns_db.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80cdd1d7a257d936e60ac2ff93e25100ad2b59cf","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from neutron_lib import exceptions as n_exc"},{"line_number":22,"context_line":"from neutron_lib.exceptions import dns as dns_exc"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from keystoneauth1 import exceptions as keystone_exc"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from oslo_config import cfg"},{"line_number":27,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_01e1effe","line":24,"updated":"2019-10-04 09:01:52.000000000","message":"please don\u0027t create new group of imports. It should be together with other 3rd party libraries","commit_id":"9b51d917198a082d2a162e30349bc56b18016e63"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"049e2d58834d3cc25546f9de155abc9081edf24e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                           \"message\": e.msg,"},{"line_number":227,"context_line":"                           \"ips\": \u0027, \u0027.join(ips)})"},{"line_number":228,"context_line":"        except ("},{"line_number":229,"context_line":"                keystone_exc.ConnectFailure,"},{"line_number":230,"context_line":"                keystone_exc.ConnectionError,"},{"line_number":231,"context_line":"                keystone_exc.ConnectTimeout,"},{"line_number":232,"context_line":"                keystone_exc.SSLError,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_f439f2f1","line":229,"updated":"2019-10-04 06:50:38.000000000","message":"Most if not all of these inherit from ConnectionError. Do you need to include them all, or wouldn\u0027t just\n\u003e except ConnectionError as e:\nbe enough?","commit_id":"9b51d917198a082d2a162e30349bc56b18016e63"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80cdd1d7a257d936e60ac2ff93e25100ad2b59cf","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                           \"message\": e.msg,"},{"line_number":227,"context_line":"                           \"ips\": \u0027, \u0027.join(ips)})"},{"line_number":228,"context_line":"        except ("},{"line_number":229,"context_line":"                keystone_exc.ConnectFailure,"},{"line_number":230,"context_line":"                keystone_exc.ConnectionError,"},{"line_number":231,"context_line":"                keystone_exc.ConnectTimeout,"},{"line_number":232,"context_line":"                keystone_exc.SSLError,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_e1a93390","line":229,"in_reply_to":"3fa7e38b_f439f2f1","updated":"2019-10-04 09:01:52.000000000","message":"I agree, all of those inherits from ConnectionError so You can catch only ConnectionError here to make this patch smaller","commit_id":"9b51d917198a082d2a162e30349bc56b18016e63"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80cdd1d7a257d936e60ac2ff93e25100ad2b59cf","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                          {\"name\": dns_name,"},{"line_number":240,"context_line":"                           \"domain\": dns_domain,"},{"line_number":241,"context_line":"                           \"message\": str(e),"},{"line_number":242,"context_line":"                           \"ips\": \u0027, \u0027.join(ips)})"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"    def _get_requested_state_for_external_dns_service_create(self, context,"},{"line_number":245,"context_line":"                                                             floatingip_data,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_41c04751","line":242,"updated":"2019-10-04 09:01:52.000000000","message":"Why do You need this additional except block? It seems for me that this logged exception is the same in above block. Can\u0027t You include those exceptions there?","commit_id":"9b51d917198a082d2a162e30349bc56b18016e63"}],"neutron/plugins/ml2/extensions/dns_integration.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80cdd1d7a257d936e60ac2ff93e25100ad2b59cf","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from oslo_config import cfg"},{"line_number":28,"context_line":"from oslo_log import log as logging"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"from keystoneauth1 import exceptions as keystone_exc"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from neutron.db import segments_db"},{"line_number":33,"context_line":"from neutron.objects import network as net_obj"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_c179972f","line":30,"updated":"2019-10-04 09:01:52.000000000","message":"please don\u0027t create new imports group but include it in group above","commit_id":"9b51d917198a082d2a162e30349bc56b18016e63"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80cdd1d7a257d936e60ac2ff93e25100ad2b59cf","unresolved":false,"context_lines":[{"line_number":475,"context_line":"            keystone_exc.ConnectTimeout,"},{"line_number":476,"context_line":"            keystone_exc.SSLError,"},{"line_number":477,"context_line":"            keystone_exc.RetriableConnectionFailure,"},{"line_number":478,"context_line":"            keystone_exc.UnknownConnectionError) as e:"},{"line_number":479,"context_line":"        LOG.exception(\"Error deleting port data from external DNS \""},{"line_number":480,"context_line":"                      \"service. Name: \u0027%(name)s\u0027. Domain: \u0027%(domain)s\u0027. \""},{"line_number":481,"context_line":"                      \"IP addresses \u0027%(ips)s\u0027. DNS service driver message \""}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_01afaf94","line":478,"updated":"2019-10-04 09:01:52.000000000","message":"same here, ConnectionError should be enough","commit_id":"9b51d917198a082d2a162e30349bc56b18016e63"}],"neutron/services/externaldns/drivers/designate/driver.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fd94657a9a02c2c3ea4367ce99667c57ef8d185b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import netaddr"},{"line_number":17,"context_line":"import traceback"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from designateclient import exceptions as d_exc"},{"line_number":20,"context_line":"from designateclient.v2 import client as d_client"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b6650920","line":17,"range":{"start_line":17,"start_character":7,"end_line":17,"end_character":16},"updated":"2019-09-30 10:47:33.000000000","message":"a) Do you need it?\nb) This library is not in requirements.txt","commit_id":"9c242c0927ca169aee1e4eb3c3c6a1ae9f31d78e"},{"author":{"_account_id":30900,"name":"Gregoire Mahe","email":"gregoire@mahe.lt","username":"gregoiremahe"},"change_message_id":"ab60a09dccfb822ae56bc0b9f8a34c7cc00540fa","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import netaddr"},{"line_number":17,"context_line":"import traceback"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from designateclient import exceptions as d_exc"},{"line_number":20,"context_line":"from designateclient.v2 import client as d_client"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_2aed1b8b","line":17,"range":{"start_line":17,"start_character":7,"end_line":17,"end_character":16},"in_reply_to":"3fa7e38b_b6650920","updated":"2019-10-02 05:08:30.000000000","message":"Done","commit_id":"9c242c0927ca169aee1e4eb3c3c6a1ae9f31d78e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fd94657a9a02c2c3ea4367ce99667c57ef8d185b","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            for record in records:"},{"line_number":162,"context_line":"                in_addr_name \u003d netaddr.IPAddress(record).reverse_dns"},{"line_number":163,"context_line":"                in_addr_zone_name \u003d self._get_in_addr_zone_name(in_addr_name)"},{"line_number":164,"context_line":"                designate_admin.recordsets.delete(in_addr_zone_name, in_addr_name)"},{"line_number":165,"context_line":"        except Exception:"},{"line_number":166,"context_line":"            LOG.error("},{"line_number":167,"context_line":"                \"Unable to delete record on designate API.\\n%s\","}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_76447174","line":164,"range":{"start_line":164,"start_character":32,"end_line":164,"end_character":42},"updated":"2019-09-30 10:47:33.000000000","message":"One question: what happens if L158 succeeds and not this one?","commit_id":"9c242c0927ca169aee1e4eb3c3c6a1ae9f31d78e"},{"author":{"_account_id":30900,"name":"Gregoire Mahe","email":"gregoire@mahe.lt","username":"gregoiremahe"},"change_message_id":"ab60a09dccfb822ae56bc0b9f8a34c7cc00540fa","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            for record in records:"},{"line_number":162,"context_line":"                in_addr_name \u003d netaddr.IPAddress(record).reverse_dns"},{"line_number":163,"context_line":"                in_addr_zone_name \u003d self._get_in_addr_zone_name(in_addr_name)"},{"line_number":164,"context_line":"                designate_admin.recordsets.delete(in_addr_zone_name, in_addr_name)"},{"line_number":165,"context_line":"        except Exception:"},{"line_number":166,"context_line":"            LOG.error("},{"line_number":167,"context_line":"                \"Unable to delete record on designate API.\\n%s\","}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_ad05ac15","line":164,"range":{"start_line":164,"start_character":32,"end_line":164,"end_character":42},"in_reply_to":"3fa7e38b_76447174","updated":"2019-10-02 05:08:30.000000000","message":"If L158 succeeds ? Or L157 ?\nIf L157 succeeds, then the record user side (A, AAAA) will be removed but not the PTR on admin side\n\nIf L158 succeeds, there is no exception, the A/AAAA records will be delete, and the PTR will be ignored","commit_id":"9c242c0927ca169aee1e4eb3c3c6a1ae9f31d78e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fd94657a9a02c2c3ea4367ce99667c57ef8d185b","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                in_addr_name \u003d netaddr.IPAddress(record).reverse_dns"},{"line_number":163,"context_line":"                in_addr_zone_name \u003d self._get_in_addr_zone_name(in_addr_name)"},{"line_number":164,"context_line":"                designate_admin.recordsets.delete(in_addr_zone_name, in_addr_name)"},{"line_number":165,"context_line":"        except Exception:"},{"line_number":166,"context_line":"            LOG.error("},{"line_number":167,"context_line":"                \"Unable to delete record on designate API.\\n%s\","},{"line_number":168,"context_line":"                traceback.format_exc())"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f67e21ad","line":165,"updated":"2019-09-30 10:47:33.000000000","message":"IMO, instead of this, you should modify the methods calling this function:\n- dns_integration._remove_data_from_external_dns_service\n- DNSDbMixin._delete_floatingip_from_external_dns_service\n\nIf Designate is no available, you should raise here a tailormade exception and catch it in the related methods.\n\nThen, you should log not an error but and exception.\n\nOne question (related to traceback): if Designate is not available, what is the exception thrown here? You should capture it in order to create you own Neutron Exception.","commit_id":"9c242c0927ca169aee1e4eb3c3c6a1ae9f31d78e"},{"author":{"_account_id":30900,"name":"Gregoire Mahe","email":"gregoire@mahe.lt","username":"gregoiremahe"},"change_message_id":"ab60a09dccfb822ae56bc0b9f8a34c7cc00540fa","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                in_addr_name \u003d netaddr.IPAddress(record).reverse_dns"},{"line_number":163,"context_line":"                in_addr_zone_name \u003d self._get_in_addr_zone_name(in_addr_name)"},{"line_number":164,"context_line":"                designate_admin.recordsets.delete(in_addr_zone_name, in_addr_name)"},{"line_number":165,"context_line":"        except Exception:"},{"line_number":166,"context_line":"            LOG.error("},{"line_number":167,"context_line":"                \"Unable to delete record on designate API.\\n%s\","},{"line_number":168,"context_line":"                traceback.format_exc())"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_ca01e73b","line":165,"in_reply_to":"3fa7e38b_f67e21ad","updated":"2019-10-02 05:08:30.000000000","message":"Done","commit_id":"9c242c0927ca169aee1e4eb3c3c6a1ae9f31d78e"}]}
