|  | @@ -49,14 +49,24 @@ necessary validation resources to appropriate records in a PowerDNS server."""
 | 
		
	
		
			
			| 49 | 49 |          pass
 | 
		
	
		
			
			| 50 | 50 |  
 | 
		
	
		
			
			| 51 | 51 |      def perform(self, achalls):  # pylint: disable=missing-docstring
 | 
		
	
		
			
			| 52 |  | -        responses = [self._perform_single(achall) for achall in achalls]
 | 
		
	
		
			
			|  | 52 | +        responses = []
 | 
		
	
		
			
			|  | 53 | +        zones = []
 | 
		
	
		
			
			|  | 54 | +        for achall in achalls:
 | 
		
	
		
			
			|  | 55 | +            response, validation = achall.response_and_validation()
 | 
		
	
		
			
			|  | 56 | +            resp = self.backend.perform_single(achall, response, validation)
 | 
		
	
		
			
			|  | 57 | +            responses.append(resp)
 | 
		
	
		
			
			|  | 58 | +
 | 
		
	
		
			
			|  | 59 | +            domain = achall.domain
 | 
		
	
		
			
			|  | 60 | +            zone = self.backend.find_best_matching_zone(domain)
 | 
		
	
		
			
			|  | 61 | +            if zone not in zones:
 | 
		
	
		
			
			|  | 62 | +                zones.append(zone)
 | 
		
	
		
			
			|  | 63 | +
 | 
		
	
		
			
			|  | 64 | +        for zone in zones:
 | 
		
	
		
			
			|  | 65 | +            self.backend.perform_notify(zone)
 | 
		
	
		
			
			|  | 66 | +
 | 
		
	
		
			
			| 53 | 67 |          self.backend.wait_for_propagation(achalls)
 | 
		
	
		
			
			| 54 | 68 |          return responses
 | 
		
	
		
			
			| 55 | 69 |  
 | 
		
	
		
			
			| 56 |  | -    def _perform_single(self, achall):
 | 
		
	
		
			
			| 57 |  | -        response, validation = achall.response_and_validation()
 | 
		
	
		
			
			| 58 |  | -        return self.backend.perform_single(achall, response, validation)
 | 
		
	
		
			
			| 59 |  | -
 | 
		
	
		
			
			| 60 | 70 |      def cleanup(self, achalls):  # pylint: disable=missing-docstring
 | 
		
	
		
			
			| 61 | 71 |          for achall in achalls:
 | 
		
	
		
			
			| 62 | 72 |              self.backend.cleanup(achall)
 |