def prepareDaemon(self):
     """
     Prepare daemon
     """
     if not Settings.cfgFileIsPresent():
         sys.stdout.write(" (config file doesn't exist)")
         sys.exit(2)
     try:
         # Initialize
         Settings.initialize()
         Logger.initialize()
         CliFunctions.initialize(parent=self)
     except Exception as e:
         self.error("Unable to initialize settings: %s" % str(e))
     else:
         # config file exist so prepare the deamon
         self.prepare(
             pidfile="%s/%s/%s.pid" %
             (Settings.getDirExec(), Settings.get(
                 'Paths', 'run'), Settings.get('Server', 'acronym')),
             name=Settings.get('Server', 'name'),
             stdout="%s/%s/output.log" %
             (Settings.getDirExec(), Settings.get('Paths', 'logs')),
             stderr="%s/%s/output.log" %
             (Settings.getDirExec(), Settings.get('Paths', 'logs')),
             stdin="/dev/null",
             runningfile="%s/%s/%s.running" %
             (Settings.getDirExec(), Settings.get(
                 'Paths', 'run'), Settings.get('Server', 'acronym')),
         )
 def hupHandler(self, signum, frame):
     """
     Hup handler
     """
     self.info('Reloading configuration...')
     Settings.finalize()
     Settings.initialize()
     Logger.reconfigureLevel()
     self.info('Configuration reloaded!')
arg = sys.argv[0]
pathname = os.path.dirname(arg)
path_install = os.path.abspath(pathname)

settingsFile = '%s/settings.ini' % path_install
if not os.path.exists(settingsFile):
    print('config file settings.ini doesn\'t exist.')
    sys.exit(-1)

# adding missing folders
if not os.path.exists("%s/Logs/" % path_install):
    os.mkdir("%s/Logs" % path_install)
if not os.path.exists("%s/Tmp/" % path_install):
    os.mkdir("%s/Tmp" % path_install)

Settings.initialize()

plugins = {}
pkg = __import__("Plugins")
for listing in dir(pkg):
    obj = getattr(pkg, listing)
    if inspect.ismodule(obj):
        for listing2 in dir(obj):
            if listing2.endswith("Agent"):
                obj2 = getattr(obj, listing2)
                if inspect.ismodule(obj2):
                    plugins[obj2.__TYPE__] = obj2

# prepare the command line with all options
parser = OptionParser()
parser.set_usage(
        elif o in ["--pkg"]:
            pkgVersion = a
        elif o in ["--pathlib"]:
            pathLib = a
        elif o in ["--overwrite"]:
            overwrite = True

    if pkgVersion is not None and wsdlFile is not None:

        if pathLib is not None:
            sys.path.insert(0, pathLib)
        else:
            sys.path.insert(0, '../')
        from Libs import Settings

        Settings.initialize(path="../")

        # download the wsdl
        wsdlFile = prepare_wsdl(wsdlFile, pkgVersion)

        # read the wsdl
        adapters, complexList = read_wsdl(wsdlFile=wsdlFile)

        # constructs library
        construct_adapter(adaptersName=adapters,
                          complexList=complexList,
                          wsdlFile=wsdlFile,
                          overwrite=overwrite)

        Settings.finalize()
        sys.exit(0)
    def initialize(self,
                   ip,
                   port,
                   type,
                   name,
                   descr,
                   defaultTool,
                   supportProxy=False,
                   proxyIp=None,
                   proxyPort=None,
                   sslSupport=True,
                   isAgent=0,
                   fromCmd=False):
        """
        Initialize the tool

        @param ip:
        @type ip: 

        @param type:
        @type type: 

        @param name:
        @type name: 

        @param descr:
        @type descr: 
        """
        self.running = False
        self.defaultTool = defaultTool
        self.tool = None
        if not Settings.cfgFileIsPresent():
            sys.stdout.write(" (config file doesn't exist)")
            sys.exit(RETURN_CONFIG)

        try:
            Settings.initialize()
            Logger.initialize(
                logPathFile="%s/%s/%s.log" %
                (Settings.getDirExec(), Settings.get('Paths', 'logs'), name))
            if (isAgent, str(type)) in plugins:
                self.info("Initialize %s tool type=%s..." % (type, isAgent))

                if not len(ip): raise Exception("No controller ip specified!")
                if not len(name): raise Exception("No tool name specified!")

                self.tool = plugins[(isAgent, str(type))].initialize(
                    controllerIp=str(ip),
                    toolName=str(name),
                    toolDesc=str(descr),
                    defaultTool=defaultTool,
                    controllerPort=int(port),
                    supportProxy=supportProxy,
                    proxyIp=str(proxyIp),
                    proxyPort=proxyPort,
                    sslSupport=sslSupport)
                self.tool.setFromCmd()

                self.tool.onRegistrationSuccessful = self.onRegistrationSuccessful
                self.tool.onRegistrationFailed = self.onRegistrationFailed
                self.tool.onRegistrationRefused = self.onRegistrationRefused
                self.tool.onToolWarningCalled = self.onToolLogWarningCalled
                self.tool.onToolLogErrorCalled = self.onToolLogErrorCalled
                self.tool.onToolDisconnection = self.onToolDisconnection
                self.tool.onConnectionRefused = self.onConnectionRefused
                self.tool.onConnectionTimeout = self.onConnectionTimeout
                self.tool.onProxyConnectionTimeout = self.onProxyConnectionTimeout
                self.tool.onProxyConnectionRefused = self.onProxyConnectionRefused
                self.tool.onProxyConnectionError = self.onProxyConnectionError
                self.tool.checkPrerequisites()
                self.tool.startCA()
            else:
                self.error('tool type unknown: %s' % type)
                self.finalize(RETURN_TYPE_UNKNOWN)
        except Exception as e:
            self.error("unable to start tool: " + str(e))
            try:
                Settings.finalize()
            except:
                pass
            Logger.finalize()

        else:
            # run in loop
            self.running = True
            self.run()
Example #6
0
def initialize():
    """
    Initialize settings
    """
    Settings.initialize(cfgname='test.ini')