From 19b8a6e852da4e2f6b4236e502ed625b7869c271 Mon Sep 17 00:00:00 2001 From: Corey Bryant Date: Tue, 17 Jul 2018 09:14:55 -0400 Subject: [PATCH] Replace StopIteration with return for PEP 0479 PEP 0479, https://www.python.org/dev/peps/pep-0479/, makes the following change: "when StopIteration is raised inside a generator, it is replaced it with RuntimeError". The PEP suggests that if raise StopIteration occurs directly in a generator, simply replace it with return. Change-Id: I9bb72936c8d56b338084bb0be7e75aecdf09f8b3 Closes-Bug: #1780827 --- designate/agent/handler.py | 2 +- designate/mdns/handler.py | 34 +++++++++++++++++----------------- designate/producer/tasks.py | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/designate/agent/handler.py b/designate/agent/handler.py index 881962c55..a9ef99694 100644 --- a/designate/agent/handler.py +++ b/designate/agent/handler.py @@ -85,7 +85,7 @@ class RequestHandler(object): # TODO(Tim): Answer Type 65XXX queries yield response - raise StopIteration + return def _handle_query_error(self, request, rcode): """ diff --git a/designate/mdns/handler.py b/designate/mdns/handler.py index 0d14e3e82..4df20fd39 100644 --- a/designate/mdns/handler.py +++ b/designate/mdns/handler.py @@ -64,7 +64,7 @@ class RequestHandler(xfr.XFRMixin): request.question[0].rdclass != dns.rdataclass.IN): LOG.debug("Refusing due to numbers of questions or rdclass") yield self._handle_query_error(request, dns.rcode.REFUSED) - raise StopIteration + return q_rrset = request.question[0] # Handle AXFR and IXFR requests with an AXFR responses for now. @@ -73,23 +73,23 @@ class RequestHandler(xfr.XFRMixin): if q_rrset.rdtype in (dns.rdatatype.AXFR, dns.rdatatype.IXFR): for response in self._handle_axfr(request): yield response - raise StopIteration + return else: for response in self._handle_record_query(request): yield response - raise StopIteration + return elif request.opcode() == dns.opcode.NOTIFY: for response in self._handle_notify(request): yield response - raise StopIteration + return else: # Unhandled OpCode's include STATUS, IQUERY, UPDATE LOG.debug("Refusing unhandled opcode") yield self._handle_query_error(request, dns.rcode.REFUSED) - raise StopIteration + return def _handle_notify(self, request): """ @@ -106,7 +106,7 @@ class RequestHandler(xfr.XFRMixin): if len(request.question) != 1: response.set_rcode(dns.rcode.FORMERR) yield response - raise StopIteration + return else: question = request.question[0] @@ -121,7 +121,7 @@ class RequestHandler(xfr.XFRMixin): except exceptions.ZoneNotFound: response.set_rcode(dns.rcode.NOTAUTH) yield response - raise StopIteration + return notify_addr = request.environ['addr'][0] @@ -134,7 +134,7 @@ class RequestHandler(xfr.XFRMixin): "refusing.", {"name": zone.name, "addr": notify_addr}) response.set_rcode(dns.rcode.REFUSED) yield response - raise StopIteration + return resolver = dns.resolver.Resolver() # According to RFC we should query the server that sent the NOTIFY @@ -154,7 +154,7 @@ class RequestHandler(xfr.XFRMixin): response.flags |= dns.flags.AA yield response - raise StopIteration + return def _handle_query_error(self, request, rcode): """ @@ -232,14 +232,14 @@ class RequestHandler(xfr.XFRMixin): "Question was %(qr)s", {'qr': q_rrset}) yield self._handle_query_error(request, dns.rcode.REFUSED) - raise StopIteration + return except exceptions.Forbidden: LOG.warning("Forbidden while handling axfr request. " "Question was %(qr)s", {'qr': q_rrset}) yield self._handle_query_error(request, dns.rcode.REFUSED) - raise StopIteration + return # The AXFR response needs to have a SOA at the beginning and end. criterion = {'zone_id': zone.id, 'type': 'SOA'} @@ -306,7 +306,7 @@ class RequestHandler(xfr.XFRMixin): 'rrset_name': record[3]}) yield self._handle_query_error(request, dns.rcode.SERVFAIL) - raise StopIteration + return else: yield self._finalize_packet(renderer, request) @@ -315,7 +315,7 @@ class RequestHandler(xfr.XFRMixin): if renderer is not None: yield self._finalize_packet(renderer, request) - raise StopIteration + return def _finalize_packet(self, renderer, request): renderer.write_header() @@ -369,13 +369,13 @@ class RequestHandler(xfr.XFRMixin): LOG.info("NotFound, refusing. Question was %(qr)s", {'qr': q_rrset}) yield self._handle_query_error(request, dns.rcode.REFUSED) - raise StopIteration + return except exceptions.Forbidden: LOG.info("Forbidden, refusing. Question was %(qr)s", {'qr': q_rrset}) yield self._handle_query_error(request, dns.rcode.REFUSED) - raise StopIteration + return try: criterion = self._zone_criterion_from_request( @@ -386,13 +386,13 @@ class RequestHandler(xfr.XFRMixin): LOG.warning("ZoneNotFound while handling query request. " "Question was %(qr)s", {'qr': q_rrset}) yield self._handle_query_error(request, dns.rcode.REFUSED) - raise StopIteration + return except exceptions.Forbidden: LOG.warning("Forbidden while handling query request. " "Question was %(qr)s", {'qr': q_rrset}) yield self._handle_query_error(request, dns.rcode.REFUSED) - raise StopIteration + return r_rrset = self._convert_to_rrset(zone, recordset) response.answer = [r_rrset] if r_rrset else [] diff --git a/designate/producer/tasks.py b/designate/producer/tasks.py index 2ca2e71b8..62643e88b 100644 --- a/designate/producer/tasks.py +++ b/designate/producer/tasks.py @@ -94,7 +94,7 @@ class PeriodicTask(plugin.ExtensionPlugin): # Stop fetching if there's no more items if len(items) == 0: - raise StopIteration + return else: kwargs["marker"] = items[-1].id