def _pre_call(args): # needed for chroot safety import encodings.string_escape cmd = " ".join(args) get_logger().debug("running %s" % (cmd,)) return cmd
def get_repo(): try: return get_repo.__repo__ except AttributeError: from teagle.repository import DEFAULT_URI, make_repoclient repo = getattr(settings, "TEAGLE_REPO", DEFAULT_URI) classes = getattr(settings, "TEAGLE_REPO_CLASSES", None) get_logger().info("Using %s as Teagle Repository.", repo) get_repo.__repo__ = make_repoclient(repo, classes = classes) return get_repo.__repo__
def check_call(args, stdin=None, stdout=None, stderr=None, shell=False, cwd=None, env=None, *popenargs, **popenkw): cmd = _pre_call(args) try: return _check_call( args, stdin=stdin, stdout=stdout, stderr=stderr, shell=shell, cwd=cwd, env=env, *popenargs, **popenkw ) except CalledProcessError, e: get_logger().debug("Command %s returned exit code %s." % (cmd, e.returncode)) raise
def check_output(args, stderr=STDOUT): cmd = _pre_call(args) try: return _check_output(args, stderr=stderr) except CalledProcessError, e: get_logger().debug( "Command %s returned exit code %s. This is the programs output:\n%s<<EOF>>" % (cmd, e.returncode, e.output) ) raise
def get_teagle_home(): global _home if _home is None: from ngniutils.path import path as Path _home = os.getenv("TEAGLE_HOME") if not _home: get_logger().warn("TEAGLE_HOME is not set. Assuming /opt/teagle") _home = "/opt/teagle" _home = Path(_home) return _home
def get_teagle_flavour(): try: return get_teagle_flavour.__flavour__ except AttributeError: f = os.getenv("TEAGLE_FLAVOUR", "") if not f: get_logger().info("TEAGLE_FLAVOUR is not set. Assuming default.") f = DEFAULT_FLAVOUR else: get_logger().debug("TEAGLE_FLAVOUR is %s", f) get_teagle_flavour.__flavour__ = f return f
import teagle import sys from ngniutils.logging import get_logger entities = "teagle.repository.entities_" + teagle.get_teagle_flavour() get_logger().info("Using %s as entities module" % (entities, )) entities = __import__(entities, globals(), locals(), ("get_entity_classes", )) sys.modules["teagle.repository.entities"] = entities from TeagleRepository import TeagleRepository from Entity import Entity, Field, Password DEFAULT_URI = "http://localhost:8080/repository/rest" def make_repoclient(url, username = None, password = None, classes = None): if teagle.single_process_environment(): from tssg import TSSGRepository as _RepoClass else: from tssg.multiprocess import SynchronizedTSSGRepository as _RepoClass return _RepoClass(url, username = username, password = password, classes = classes)
def get_logger(self): try: return self.__logger except AttributeError: self.__logger = get_logger(self) return self.__logger