diff options
author | Adrian Likins <alikins@redhat.com> | 2007-09-20 17:22:19 -0400 |
---|---|---|
committer | Adrian Likins <alikins@redhat.com> | 2007-09-20 17:22:19 -0400 |
commit | e807123be1eaa599261a160aa0d9fa36f982029b (patch) | |
tree | afb1fe5a32a25926c3fabdd7ca900d6e23819f58 | |
parent | 8d04809a4db0b6c4d57eb8f6455239409255b5ea (diff) | |
download | third_party-func-e807123be1eaa599261a160aa0d9fa36f982029b.tar.gz third_party-func-e807123be1eaa599261a160aa0d9fa36f982029b.tar.xz third_party-func-e807123be1eaa599261a160aa0d9fa36f982029b.zip |
attempt to let us run with --debug flag to run from src checkout
-rwxr-xr-x | server/server.py | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/server/server.py b/server/server.py index d297b06..0b408a0 100755 --- a/server/server.py +++ b/server/server.py @@ -32,11 +32,6 @@ import module_loader import utils -MODULE_PATH="modules/" -modules = module_loader.load_modules(MODULE_PATH) -print "modules", modules - - #from busrpc.services import RPCDispatcher #from busrpc.config import DeploymentConfig @@ -44,16 +39,9 @@ from rhpl.translate import _, N_, textdomain, utf8 I18N_DOMAIN = "vf_server" -class Singleton(object): - def __new__(type, *args, **kwargs): - if not '_the_instance' in type.__dict__: - type._the_instance = object.__new__(type, *args, **kwargs) - type._the_instance.init(*args, **kwargs) - return type._the_instance - -class XmlRpcInterface(Singleton): +class XmlRpcInterface(object): - def init(self): + def __init__(self, modules={}): """ Constructor sets up SQLAlchemy (database ORM) and logging. """ @@ -63,6 +51,8 @@ class XmlRpcInterface(Singleton): self.tables = {} self.tokens = [] + self.modules = modules + self.logger = logger.Logger().logger self.__setup_handlers() @@ -73,11 +63,11 @@ class XmlRpcInterface(Singleton): FIXME: eventually calling most functions should go from here through getattr. """ self.handlers = {} - print "ffffffffffff", modules.keys() - for x in modules.keys(): + print "ffffffffffff", self.modules.keys() + for x in self.modules.keys(): print "x", x try: - modules[x].register_rpc(self.handlers) + self.modules[x].register_rpc(self.handlers) self.logger.debug("adding %s" % x) except AttributeError, e: self.logger.warning("module %s could not be loaded, it did not have a register_rpc method" % modules[x]) @@ -178,8 +168,9 @@ def main(argv): Start things up. """ - websvc = XmlRpcInterface() + module_path=None + for arg in sys.argv: if arg == "import" or arg == "--import": prov_obj = provisioning.Provisioning() @@ -189,6 +180,19 @@ def main(argv): prov_obj = provisioning.Provisioning() prov_obj.sync(None, {}) # just for testing return + elif arg in ["debug", "--debug", "-d"]: + # basically, run from the src tree instead of + # using the installed modules + module_path="modules/" + mod_path="server/" + + print "module_path_foo", module_path + modules = module_loader.load_modules(module_path=module_path) + print "modules", modules + + + websvc = XmlRpcInterface(modules=modules) + if "qpid" in sys.argv or "--qpid" in sys.argv: if "daemon" in sys.argv or "--daemon" in sys.argv: utils.daemonize("/var/run/vf_server_qpid.pid") |