|
@@ -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)
|