# Standard modules
import sys
-import gettext
__exp_py_version_major__ = 3
__min_py_version_minor__ = 4
#!/usr/bin/env python3
+from __future__ import print_function
+
# Standard modules
import sys
+
+__exp_py_version_major__ = 3
+__min_py_version_minor__ = 4
+
+if sys.version_info[0] != __exp_py_version_major__:
+ print("This script is intended to use with Python {}.".format(
+ __exp_py_version_major__), file=sys.stderr)
+ print("You are using Python: {0}.{1}.{2}-{3}-{4}.".format(
+ *sys.version_info) + "\n", file=sys.stderr)
+ sys.exit(1)
+
+if sys.version_info[1] < __min_py_version_minor__:
+ print("A minimal Python version of {maj}.{min} is necessary to execute this script.".format(
+ maj=__exp_py_version_major__, min=__min_py_version_minor__), file=sys.stderr)
+ print("You are using Python: {0}.{1}.{2}-{3}-{4}.".format(
+ *sys.version_info) + "\n", file=sys.stderr)
+ sys.exit(1)
+
+# Standard modules
import os
-import logging
import locale
+try:
+ import pathlib
+ from pathlib import Path
+except ImportError:
+ from pathlib2 import Path
+ import pathlib2 as pathlib
+
# own modules:
-cur_dir = os.getcwd()
-base_dir = cur_dir
-
-if sys.argv[0] != '' and sys.argv[0] != '-c':
- bin_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
-else:
- bin_dir = os.path.dirname(os.path.realpath(__file__))
-base_dir = os.path.abspath(os.path.join(bin_dir, '..'))
-module_dir = os.path.join(base_dir, 'pp_lib')
-if os.path.exists(module_dir):
- sys.path.insert(0, base_dir)
-
-#from pp_lib.config_named_app import PpConfigNamedApp
-from pp_lib.deploy_zones_from_pdns import PpDeployZonesApp
-log = logging.getLogger(__name__)
+my_path = Path(__file__)
+my_real_path = my_path.resolve()
+bin_path = my_real_path.parent
+base_dir = bin_path.parent
+lib_dir = base_dir.joinpath('lib')
+module_dir = lib_dir.joinpath('pp_lib')
+
+if module_dir.exists():
+ sys.path.insert(0, str(lib_dir))
+
+from pp_lib.deploy_zones_from_pdns import PpDeployZonesApp
__author__ = 'Frank Brehm <frank.brehm@pixelpark.com>'
-__copyright__ = '(C) 2018 by Frank Brehm, Pixelpark GmbH, Berlin'
+__copyright__ = '(C) 2021 by Frank Brehm, Pixelpark GmbH, Berlin'
appname = os.path.basename(sys.argv[0])
"""
@author: Frank Brehm
@contact: frank.brehm@pixelpark.com
-@copyright: © 2018 by Frank Brehm, Berlin
+@copyright: © 2021 by Frank Brehm, Berlin
@summary: A module for the application class for configuring named
"""
from __future__ import absolute_import
from pytz import timezone, UnknownTimeZoneError
# Own modules
-from .common import pp, compare_fqdn, to_str, to_bool
+from fb_tools.common import pp, compare_fqdn, to_str, to_bool
from .pdns_app import PpPDNSAppError, PpPDNSApplication
from .pidfile import PidFileError, PidFile
-__version__ = '0.5.4'
+__version__ = '0.5.5'
LOG = logging.getLogger(__name__)
"""
@author: Frank Brehm
@contact: frank.brehm@pixelpark.com
-@copyright: © 2018 by Frank Brehm, Berlin
+@copyright: © 2021 by Frank Brehm, Berlin
@summary: The module for a application object related to PowerDNS.
"""
from __future__ import absolute_import
import psutil
# Own modules
-from .common import pp
+from fb_tools.common import pp
from .cfg_app import PpCfgAppError, PpConfigApplication
from .pdns_zone import PdnsApiZone
from .pdns_record import PdnsSoaData
-__version__ = '0.6.5'
+__version__ = '0.6.6'
LOG = logging.getLogger(__name__)
_LIBRARY_NAME = "pp-pdns-api-client"
# Third party modules
# Own modules
-from .common import pp, compare_fqdn, to_utf8, to_str
+from fb_tools.common import pp, compare_fqdn, to_utf8, to_str
+from fb_tools.obj import FbBaseObjectError, FbBaseObject
-from .obj import PpBaseObjectError, PpBaseObject
-
-__version__ = '0.4.6'
+__version__ = '0.4.7'
LOG = logging.getLogger(__name__)
}
# =============================================================================
-class PdnsApiRrsetError(PpBaseObjectError):
+class PdnsApiRrsetError(FbBaseObjectError):
pass
return 0
# =============================================================================
-class PdnsApiRecord(PpBaseObject):
+class PdnsApiRecord(FbBaseObject):
# -------------------------------------------------------------------------
def __init__(
# =============================================================================
-class PdnsSoaData(PpBaseObject):
+class PdnsSoaData(FbBaseObject):
re_soa_data = re.compile(r'^\s*(\S+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s*$')
re_ws = re.compile(r'\s+')
return True
# =============================================================================
-class PdnsApiRrset(PpBaseObject):
+class PdnsApiRrset(FbBaseObject):
default_ttl = 3600
"""
@author: Frank Brehm
@contact: frank.brehm@pixelpark.com
-@copyright: © 2018 by Frank Brehm, Publicies Pixelpark GmbH, Berlin
+@copyright: © 2021 by Frank Brehm, Publicies Pixelpark GmbH, Berlin
@summary: An encapsulation class for zone objects by PowerDNS API
"""
from __future__ import absolute_import
from dns.resolver import Resolver, NoAnswer
# Own modules
-from .common import pp, to_utf8, to_bool
-from .common import RE_DOT_AT_END
+from fb_tools.common import pp, to_utf8, to_bool
+from fb_tools.common import RE_DOT_AT_END
+from fb_tools.obj import FbBaseObjectError, FbGenericBaseObject, FbBaseObject
-from .obj import PpBaseObjectError, PpBaseObject
from .pdns_record import PdnsApiRrset, PdnsSoaData
-__version__ = '0.5.6'
+__version__ = '0.5.7'
LOG = logging.getLogger(__name__)
# =============================================================================
-class PdnsApiZoneError(PpBaseObjectError):
+class PdnsApiZoneError(FbBaseObjectError):
pass
# =============================================================================
-class PdnsApiZone(PpBaseObject):
+class PdnsApiZone(FbBaseObject):
# -------------------------------------------------------------------------
def __init__(
res['api_rectify'] = self.api_rectify
for rrset in self.rrsets:
- if isinstance(rrset, PpBaseObject):
+ if isinstance(rrset, FbGenericBaseObject):
res['rrsets'].append(rrset.as_dict(short))
else:
res['rrsets'].append(rrset)
from six import reraise
# Own modules
+from fb_tools.errors import ReadTimeoutError
+from fb_tools.common import to_utf8
+from fb_tools.obj import FbBaseObjectError, FbBaseObject
-from .errors import ReadTimeoutError
-
-from .obj import PpBaseObjectError
-from .obj import PpBaseObject
-
-from .common import to_utf8
-
-__version__ = '0.2.5'
+__version__ = '0.2.6'
LOG = logging.getLogger(__name__)
# =============================================================================
-class PidFileError(PpBaseObjectError):
+class PidFileError(FbBaseObjectError):
"""Base error class for all exceptions happened during
handling a pidfile."""
# =============================================================================
-class PidFile(PpBaseObject):
+class PidFile(FbBaseObject):
"""
Base class for a pidfile object.
"""