diff options
author | Simo Sorce <ssorce@redhat.com> | 2007-08-01 15:26:08 -0400 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2007-08-01 15:26:08 -0400 |
commit | 96d292b7351bd7db0d402e3a393386889e3d79d8 (patch) | |
tree | 1289da942a2ef8482b20891dbd58da2a47321f4c /ipa-server/ipaserver/util.py | |
parent | adc6632c9a6de5a81fd4dad7a637cb3db7894000 (diff) | |
parent | b1831b4593b3d219b79830f3012e7ff07f17b1d8 (diff) | |
download | freeipa.git-96d292b7351bd7db0d402e3a393386889e3d79d8.tar.gz freeipa.git-96d292b7351bd7db0d402e3a393386889e3d79d8.tar.xz freeipa.git-96d292b7351bd7db0d402e3a393386889e3d79d8.zip |
Merge from upstream
Diffstat (limited to 'ipa-server/ipaserver/util.py')
-rw-r--r-- | ipa-server/ipaserver/util.py | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/ipa-server/ipaserver/util.py b/ipa-server/ipaserver/util.py new file mode 100644 index 00000000..2f677dad --- /dev/null +++ b/ipa-server/ipaserver/util.py @@ -0,0 +1,80 @@ +#! /usr/bin/python -E +# Authors: Simo Sorce <ssorce@redhat.com> +# +# Copyright (C) 2007 Red Hat +# see file 'COPYING' for use and warranty information +# +# 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; version 2 or later +# +# 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, write to the Free Software +# 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 + +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 |