summaryrefslogtreecommitdiffstats
path: root/ipa-python/ipautil.py
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2007-09-04 16:13:15 -0400
committerSimo Sorce <ssorce@redhat.com>2007-09-04 16:13:15 -0400
commit584baa7ee21f22db6978efc89de1f1491768fab5 (patch)
tree3fe45d3906c6038dcc26f9a81c558c0c386d18ea /ipa-python/ipautil.py
parent48e70a4bf03e18c305d4a29fd0e0f83b8596c36b (diff)
downloadfreeipa-584baa7ee21f22db6978efc89de1f1491768fab5.tar.gz
freeipa-584baa7ee21f22db6978efc89de1f1491768fab5.tar.xz
freeipa-584baa7ee21f22db6978efc89de1f1491768fab5.zip
merge ipa-server/ipaserver/util.py into ipa-python/ipautil.py
this way freeipa-client does not depend on freeipa-server
Diffstat (limited to 'ipa-python/ipautil.py')
-rw-r--r--ipa-python/ipautil.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/ipa-python/ipautil.py b/ipa-python/ipautil.py
index be6b037fe..f6d62f7a3 100644
--- a/ipa-python/ipautil.py
+++ b/ipa-python/ipautil.py
@@ -1,4 +1,5 @@
#! /usr/bin/python -E
+# Authors: Simo Sorce <ssorce@redhat.com>
#
# Copyright (C) 2007 Red Hat
# see file 'COPYING' for use and warranty information
@@ -17,10 +18,71 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
+SHARE_DIR = "/usr/share/ipa/"
+
+import string
+import tempfile
+import logging
+import subprocess
+import os
+import stat
+
from string import lower
import re
import xmlrpclib
+def realm_to_suffix(realm_name):
+ s = realm_name.split(".")
+ terms = ["dc=" + x.lower() for x in s]
+ return ",".join(terms)
+
+
+def template_str(txt, vars):
+ return string.Template(txt).substitute(vars)
+
+def template_file(infilename, vars):
+ txt = open(infilename).read()
+ return template_str(txt, vars)
+
+def write_tmp_file(txt):
+ fd = tempfile.NamedTemporaryFile()
+ fd.write(txt)
+ fd.flush()
+
+ return fd
+
+def run(args, stdin=None):
+ p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ if stdin:
+ stdout,stderr = p.communicate(stdin)
+ else:
+ stdout,stderr = p.communicate()
+ logging.info(stdout)
+ logging.info(stderr)
+
+ if p.returncode != 0:
+ raise subprocess.CalledProcessError(p.returncode, args[0])
+
+def file_exists(filename):
+ try:
+ mode = os.stat(filename)[stat.ST_MODE]
+ if stat.S_ISREG(mode):
+ return True
+ else:
+ return False
+ except:
+ return False
+
+def dir_exists(filename):
+ try:
+ mode = os.stat(filename)[stat.ST_MODE]
+ if stat.S_ISDIR(mode):
+ return True
+ else:
+ return False
+ except:
+ return False
+
class CIDict(dict):
"""
Case-insensitive but case-respecting dictionary.