]> git.llucax.com Git - software/pymin.git/blobdiff - pymin/services/dns/__init__.py
fix command names
[software/pymin.git] / pymin / services / dns / __init__.py
index 624dfc44c14e67690a1a59d3572df6d089fdba1f..d420ecb50597628d2dd5fb5f62a700421c8f6f44 100644 (file)
@@ -29,13 +29,7 @@ class Error(HandlerError):
 
     message - A descriptive error message.
     """
-
-    def __init__(self, message):
-        r"Initialize the Error object. See class documentation for more info."
-        self.message = message
-
-    def __str__(self):
-        return self.message
+    pass
 
 class ZoneError(Error, KeyError):
     r"""
@@ -46,7 +40,7 @@ class ZoneError(Error, KeyError):
 
     def __init__(self, zonename):
         r"Initialize the object. See class documentation for more info."
-        self.message = 'Zone error: "%s"' % zonename
+        self.message = u'Zone error: "%s"' % zonename
 
 class ZoneNotFoundError(ZoneError):
     r"""
@@ -58,7 +52,7 @@ class ZoneNotFoundError(ZoneError):
 
     def __init__(self, zonename):
         r"Initialize the object. See class documentation for more info."
-        self.message = 'zone not found: "%s"' % zonename
+        self.message = u'zone not found: "%s"' % zonename
 
 class ZoneAlreadyExistsError(ZoneError):
     r"""
@@ -69,7 +63,7 @@ class ZoneAlreadyExistsError(ZoneError):
 
     def __init__(self, zonename):
         r"Initialize the object. See class documentation for more info."
-        self.message = 'Zone already exists: "%s"' % zonename
+        self.message = u'Zone already exists: "%s"' % zonename
 
 class HostError(Error, KeyError):
     r"""
@@ -80,7 +74,7 @@ class HostError(Error, KeyError):
 
     def __init__(self, hostname):
         r"Initialize the object. See class documentation for more info."
-        self.message = 'Host error: "%s"' % hostname
+        self.message = u'Host error: "%s"' % hostname
 
 class HostAlreadyExistsError(HostError):
     r"""
@@ -91,11 +85,11 @@ class HostAlreadyExistsError(HostError):
 
     def __init__(self, hostname):
         r"Initialize the object. See class documentation for more info."
-        self.message = 'Host already exists: "%s"' % hostname
+        self.message = u'Host already exists: "%s"' % hostname
 
 class HostNotFoundError(HostError):
     r"""
-    HostNotFoundError(hostname) -> HostNotFoundError instance
+    HostNotFoundError(hostname) -> HostNotFoundError instance.
 
     This exception is raised when trying to operate on a hostname that doesn't
     exists.
@@ -103,36 +97,36 @@ class HostNotFoundError(HostError):
 
     def __init__(self, hostname):
         r"Initialize the object. See class documentation for more info."
-        self.message = 'Host not found: "%s"' % hostname
+        self.message = u'Host not found: "%s"' % hostname
 
 class MailExchangeError(Error, KeyError):
     r"""
-    MailExchangeError(hostname) -> MailExchangeError instance
+    MailExchangeError(hostname) -> MailExchangeError instance.
 
     This is the base exception for all mail exchange related errors.
     """
 
     def __init__(self, mx):
         r"Initialize the object. See class documentation for more info."
-        self.message = 'Mail Exchange error: "%s"' % mx
+        self.message = u'Mail Exchange error: "%s"' % mx
 
 class MailExchangeAlreadyExistsError(MailExchangeError):
     r"""
-    MailExchangeAlreadyExistsError(hostname) -> MailExchangeAlreadyExistsError instance
+    MailExchangeAlreadyExistsError(hostname) -> MailExchangeAlreadyExistsError.
 
     This exception is raised when trying to add a mail exchange that already exists.
     """
 
     def __init__(self, mx):
         r"Initialize the object. See class documentation for more info."
-        self.message = 'Mail Exchange already exists: "%s"' % mx
+        self.message = u'Mail Exchange already exists: "%s"' % mx
 
 class MailExchangeNotFoundError(MailExchangeError):
     r"""
-    MailExchangeNotFoundError(hostname) -> MailExchangeNotFoundError instance
+    MailExchangeNotFoundError(hostname) -> MailExchangeNotFoundError instance.
 
-    This exception is raised when trying to operate on a mail exchange that doesn't
-    exists.
+    This exception is raised when trying to operate on a mail exchange that
+    doesn't exists.
     """
 
     def __init__(self, mx):
@@ -152,9 +146,10 @@ class NameServerError(Error, KeyError):
 
 class NameServerAlreadyExistsError(NameServerError):
     r"""
-    NameServerAlreadyExistsError(hostname) -> NameServerAlreadyExistsError instance
+    NameServerAlreadyExistsError(hostname) -> NameServerAlreadyExistsError.
 
-    This exception is raised when trying to add a name server that already exists.
+    This exception is raised when trying to add a name server that already
+    exists.
     """
 
     def __init__(self, ns):
@@ -163,10 +158,10 @@ class NameServerAlreadyExistsError(NameServerError):
 
 class NameServerNotFoundError(NameServerError):
     r"""
-    NameServerNotFoundError(hostname) -> NameServerNotFoundError instance
+    NameServerNotFoundError(hostname) -> NameServerNotFoundError instance.
 
-    This exception is raised when trying to operate on a name server that doesn't
-    exists.
+    This exception is raised when trying to operate on a name server that
+    doesn't exists.
     """
 
     def __init__(self, ns):
@@ -183,6 +178,9 @@ class Host(Sequence):
         return (self.name, self.ip)
 
 class HostHandler(Handler):
+
+    handler_help = u"Manage DNS hosts"
+
     def __init__(self,zones):
         self.zones = zones
 
@@ -233,6 +231,8 @@ class MailExchange(Sequence):
 
 class MailExchangeHandler(Handler):
 
+    handler_help = u"Manage DNS mail exchangers (MX)"
+
     def __init__(self, zones):
         self.zones = zones
 
@@ -282,6 +282,8 @@ class NameServer(Sequence):
 
 class NameServerHandler(Handler):
 
+    handler_help = u"Manage DNS name servers (NS)"
+
     def __init__(self, zones):
         self.zones = zones
 
@@ -326,7 +328,6 @@ class Zone(Sequence):
         return (self.name, self.hosts, self.mxs, self.nss)
 
 class ZoneHandler(Handler):
-
     r"""ZoneHandler(zones) -> ZoneHandler instance :: Handle a list of zones.
 
     This class is a helper for DnsHandler to do all the work related to zone
@@ -334,6 +335,9 @@ class ZoneHandler(Handler):
 
     zones - A dictionary with string keys (zone name) and Zone instances values.
     """
+
+    handler_help = u"Manage DNS zones"
+
     def __init__(self, zones):
         self.zones = zones
 
@@ -378,7 +382,9 @@ class DnsHandler(Restorable, ConfigWriter, InitdHandler, TransactionalHandler,
     Both defaults to the current working directory.
     """
 
-    _initd_name = 'bind'
+    handler_help = u"Manage DNS service"
+
+    _initd_name = 'named'
 
     _persistent_attrs = ('params', 'zones')
 
@@ -402,6 +408,12 @@ class DnsHandler(Restorable, ConfigWriter, InitdHandler, TransactionalHandler,
         self.mod = False
         self._config_build_templates()
         self._restore()
+        # FIXME self.mod = True
+        #if not self._restore():
+        #r = self._restore()
+        #print r
+        #if not r:
+        #    self.mod = True
         self.host = HostHandler(self.zones)
         self.zone = ZoneHandler(self.zones)
         self.mx = MailExchangeHandler(self.zones)
@@ -420,7 +432,7 @@ class DnsHandler(Restorable, ConfigWriter, InitdHandler, TransactionalHandler,
             if a_zone.mod:
                 if not a_zone.new:
                     # TODO freeze de la zona
-                    call(('dns', 'freeze', a_zone.name))
+                    call(('rndc', 'freeze', a_zone.name))
                 vars = dict(
                     zone = a_zone,
                     hosts = a_zone.hosts.values(),
@@ -432,7 +444,7 @@ class DnsHandler(Restorable, ConfigWriter, InitdHandler, TransactionalHandler,
                 a_zone.mod = False
                 if not a_zone.new:
                     # TODO unfreeze de la zona
-                    call(('dns', 'unfreeze', a_zone.name))
+                    call(('rndc', 'thaw', a_zone.name))
                 else :
                     self.mod = True
                     a_zone.new = False