summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/openldap16
-rw-r--r--lib/postmap18
-rw-r--r--lib/postmulti15
3 files changed, 38 insertions, 11 deletions
diff --git a/lib/openldap b/lib/openldap
index cbb58c4..ab35fdb 100644
--- a/lib/openldap
+++ b/lib/openldap
@@ -1,37 +1,47 @@
#!/usr/bin/python
-#
+
# Manage OpenLDAP databases
+# Copyright © 2013 Guilhem Moulin <guilhem@fripost.org>
#
-# Copyright 2013 Guilhem Moulin <guilhem@fripost.org>
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# Licensed under the GNU GPL version 3 or higher.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
import ldap, ldap.sasl
from ldap.filter import filter_format
from ldap.dn import dn2str,explode_dn,str2dn
from ldap.modlist import addModlist
from ldif import LDIFParser
from functools import partial
import re
+
# Dirty hack to check equality between the targetted LDIF and that
# currently in the directory. The value of some configuration (olc*)
# attributes is automatically indexed when added; for those we remove
# the index before checking the equality between the two lists of
# values.
idxAttr_re = re.compile( '^\{\d+\}(.*)' )
indexedAttributes = frozenset([
'olcAttributeTypes',
'olcObjectClasses',
'olcAccess',
])
# Another hack. Configuration entries sometimes pollutes the DNs with
# indices, thus it's not possible to directly use them as base.
# Instead, we use their parent as a pase, and search for the *unique*
# match with the same ObjectClass and the matching extra attributes.
# ('%s' in the attribute value is replaced with the value of the source
# entry.)
indexedDN = {
diff --git a/lib/postmap b/lib/postmap
index 8c6c319..5eba760 100644
--- a/lib/postmap
+++ b/lib/postmap
@@ -1,29 +1,37 @@
#!/usr/bin/python
+
+# Create or update postfix's alias and lookup tables
+# Copyright © 2013 Guilhem Moulin <guilhem@fripost.org>
#
-# Create or update postfix's alias and lookup tables through ansible
-# playbooks.
-#
-# Copyright 2013 Guilhem Moulin <guilhem@fripost.org>
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# Licensed under the GNU GPL version 3 or higher.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
try:
import selinux
HAVE_SELINUX=True
except ImportError:
HAVE_SELINUX=False
# Look up for the file suffix corresponding to 'db'. If 'db' is unset,
# pick the default_detabase_type of the given instance instead.
def file_suffix(instance, db):
if not db:
cmd = [ os.path.join(os.sep, 'usr', 'sbin', 'postconf') ]
if instance:
config = os.path.join(os.sep, 'etc', 'postfix-%s' % instance)
cmd.extend([ '-c', config ])
cmd.extend([ '-h', 'default_database_type' ])
null = open (os.devnull, 'wb')
db = subprocess.check_output(cmd, stderr=null).rstrip()
null.closed
diff --git a/lib/postmulti b/lib/postmulti
index a6e971c..4f5cbcd 100644
--- a/lib/postmulti
+++ b/lib/postmulti
@@ -1,28 +1,37 @@
#!/usr/bin/python
-#
+
# Create and manage postfix instances.
+# Copyright © 2013 Guilhem Moulin <guilhem@fripost.org>
#
-# Copyright 2013 Guilhem Moulin <guilhem@fripost.org>
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# Licensed under the GNU GPL version 3 or higher.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Look up postfix configuration variable
def postconf(k, instance=None):
cmd = [ os.path.join(os.sep, 'usr', 'sbin', 'postconf') ]
if instance:
config = os.path.join(os.sep, 'etc', 'postfix-%s' % instance)
cmd.extend([ '-c', config ])
cmd.extend([ '-h', k ])
return subprocess.check_output(cmd, stderr=subprocess.STDOUT).rstrip()
def main():
module = AnsibleModule(
argument_spec = dict(
instance = dict( required=True ),
group = dict( required=False )
),
supports_check_mode=True
)