예제 #1
0
파일: __init__.py 프로젝트: tubav/teagle
def _pre_call(args):
    # needed for chroot safety
    import encodings.string_escape

    cmd = " ".join(args)
    get_logger().debug("running %s" % (cmd,))
    return cmd
예제 #2
0
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__
예제 #3
0
파일: __init__.py 프로젝트: tubav/teagle
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
예제 #4
0
파일: __init__.py 프로젝트: tubav/teagle
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
예제 #5
0
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
예제 #6
0
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
예제 #7
0
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)
예제 #8
0
파일: __init__.py 프로젝트: tubav/teagle
	def get_logger(self):
		try:
			return self.__logger
		except AttributeError:
			self.__logger = get_logger(self)
			return self.__logger