from subprocess import PIPE, Popen, TimeoutExpired
# Third party modules
+from fb_pdnstools.errors import PowerDNSHandlerError
+
from fb_tools.app import BaseApplication
from fb_tools.common import to_str
from fb_tools.pidfile import PidFile, PidFileError
from ..config.dns_deploy_zones import DnsDeployZonesConfig
from ..xlate import XLATOR
-__version__ = '0.8.9'
+__version__ = '0.8.10'
LOG = logging.getLogger(__name__)
_ = XLATOR.gettext
def generate_zone_config(self, zone_name):
"""Generate configuration block for the given Nameserver."""
zone = self.zones[zone_name]
- zone.update()
+ try:
+ zone.update()
+ except PowerDNSHandlerError as e:
+ msg = _('Could not get zone info for {z!r} - {cls}: {msg}').format(
+ z=zone_name, cls=e.__class__.__name__, msg=str(e))
+ LOG.error(msg)
+ self.exit(7)
canonical_name = zone.name_unicode
match = self.re_ipv4_zone.search(zone.name)
# Third party modules
from fb_pdnstools.errors import PDNSApiNotFoundError
from fb_pdnstools.errors import PDNSApiValidationError
+from fb_pdnstools.errors import PowerDNSHandlerError
from fb_pdnstools.server import PowerDNSServer
from fb_pdnstools.zone import PowerDNSZone
# from ..config.pdns import PdnsConfigError, PdnsConfiguration
from ..xlate import XLATOR
-__version__ = '0.9.12'
+__version__ = '0.9.13'
LOG = logging.getLogger(__name__)
_ = XLATOR.gettext
if not self.pdns.initialized:
raise PpPDNSAppError(_('The PDNS server object is not initialized.'))
- return self.pdns.get_api_zones()
+ try:
+ return self.pdns.get_api_zones()
+ except PowerDNSHandlerError as e:
+ LOG.error('{cls}: {msg}'.format(cls=e.__class__.__name__, msg=str(e)))
+ self.exit(5)
# -------------------------------------------------------------------------
def get_api_zone(self, zone_name):
except (PDNSApiNotFoundError, PDNSApiValidationError):
LOG.error(_('The given zone {} was not found.').format(zout))
return None
+ except PowerDNSHandlerError as e:
+ LOG.error('{cls}: {msg}'.format(cls=e.__class__.__name__, msg=str(e)))
+ self.exit(6)
+
if self.verbose > 2:
LOG.debug(_('Got a response:') + '\n' + pp(json_response))