Ejemplo n.º 1
0
    def __init__(self,
                 serverType = '',
                 host = None,
                 logFile = "",
                 verboseMode = False,
                 persistent = False ):
        """! @brief Constructor
        
        @param serverType (string) Type of server. Currently supported are user-server and user-menial-server.
        
        """
        self.user = USER
        self.host = host
        self.serverType = serverType
        self.logFile = logFile
        self.verboseMode = verboseMode
        self.clientSock = None
        self.running = False	# set true if server responsed to ping
        self.started = False	# set true if server has been started
        self.persistent = persistent

        #self.homedir = os.environ['HOME']

        if self.verboseMode:
            logger.setLevel( logging.DEBUG )

        logger.info( 'server proxy for hq-{s}'.format(s=self.serverType) )
        
        # read default config file
        hqConfigFileName = "%s/hq.cfg" % ETCPATH
        
        logger.info( "read config file {f}".format(f=hqConfigFileName) )
        
        if os.path.exists( hqConfigFileName ):
            hqConfig = ConfigParser.ConfigParser()
            hqConfig.read( hqConfigFileName )
        else:
            logger.info( "ERROR: config file {f} could not be found".format( f=hqConfigFileName ) )
            sys.exit(-1)

        # python executable (to start server)
        self.python = hqConfig.get( 'SYSTEM', 'python' )

        # get stored server details
        hqServerDetails = hQServerDetails( self.serverType )
        
        logger.info( "read config file {f} for hq-{serverType}.".format( f=hqServerDetails.cfgFile,
                                                                         serverType=self.serverType) )
        if not self.host:
            # get host from config file or use current host
            self.host = hqServerDetails.get('host', host if host else os.uname()[1])

        # get port from config file or get default port. add 1 to default port for exec-server's
        a = 1 if self.serverType=='exec-server' else 0
        self.port = hqServerDetails.get('port', hQUtils.getDefaultPort( self.user, add=a) )
Ejemplo n.º 2
0
    def __init__(self, serverType ):
        """! @brief constructor

        @param serverType (string) one of the supported server type: hq-server, hq-user-server, hq-user-menial-server
        """
        self.server_type = serverType.lower()

        # set path to config file
        # distiguish betweent defferent server types
        if self.server_type=='hq-server':
            # get path to hq.
            # it is assumed that this package is in the lib directory of the hq package
            HQPATH = os.path.normpath( os.path.join( os.path.dirname( os.path.realpath(__file__) ) + '/..') )

            self.cfgFile = "{hqpath}/var/{serverType}.cfg".format( hqpath = HQPATH,
                                                                   serverType = self.server_type )
        else:
            # look in home directory of current user
            homedir = os.environ['HOME']
            BASEDIR =  "{home}/.hq".format(home=homedir)

            try:
                # create directory
                os.mkdir( BASEDIR )
            except OSError:
                # probably directory already exists
                pass
            
            self.cfgFile = "{basedir}/{serverType}.cfg".format( basedir = BASEDIR,
                                                                serverType = self.server_type )

        # store details 
        self.hQServerDetails = {}
        
        cfg = ConfigParser.SafeConfigParser()
        cfg.read( self.cfgFile )

        try:
            self.hQServerDetails['host'] = cfg.get( 'SETTINGS', 'host' )
            self.hQServerDetails['port'] = cfg.getint( 'SETTINGS', 'port' )
        except: 
            # could not read config file

            # set default
            self.hQServerDetails['host'] = os.uname()[1]
            self.hQServerDetails['port'] = hQUtils.getDefaultPort( user=getpass.getuser(),
                                                                   add=1 if self.server_type=='exec-server' else 0 )
Ejemplo n.º 3
0
# import hq libraries
from hq.lib.hQUserServer import hQUserServer
import hq.lib.hQUtils as hQUtils

USER = getpass.getuser()

#####################################
if __name__ == '__main__':
    # host name
    hqHost = os.uname()[1]
    
    ### read hq config file
    defaultErrorLogFile = '/tmp/hq-user-server.{port}.err'

    # default port number is constructed from the user name
    defaultHQPort = hQUtils.getDefaultPort( USER )

    textWidth = 80
    parser = argparse.ArgumentParser(
        prog = PROG,
        usage = '%(prog)s [-h --help]  [OPTIONS]',
        formatter_class = argparse.RawDescriptionHelpFormatter,
        description = '\n'.join( textwrap.wrap("Run hq-user-server on", width=textWidth) +
                                 ['\n'] +
                                 textwrap.wrap("  host: {}".format(hqHost), width=textWidth)+
                                 textwrap.wrap("  port: {}".format(defaultHQPort), width=textWidth)+
                                 ['\n']+
                                 textwrap.wrap("By default an error logfile {f} is created. This can be changed with option -e.".format(f=defaultErrorLogFile.format(port=defaultHQPort)), width=textWidth ) ),
        epilog='Written by Hendrik.'
        )
    
Ejemplo n.º 4
0
if __name__ == '__main__':
    # host name
    hqHost = os.uname()[1]
    
    ### read hq config file
    ##hQConfigFileName = "%s/hq-server.cfg" % ETCPATH
    ##
    ##hQConfig = ConfigParser.ConfigParser()
    ##hQConfig.read( hQConfigFileName )
    ##
    ##defaultHQPort = hQConfig.getint( 'ADDRESS', 'hQServerPort' )
    ##    
    ##defaultErrorLogFile = '/tmp/hq-user-server.{port}.err'

    # default port number is constructed from the user name
    defaultHQPort = hQUtils.getDefaultPort( user, add=1 )

    textWidth = 80
    parser = argparse.ArgumentParser(
        prog = PROG,
        usage = '%(prog)s [-h --help]  [OPTIONS]',
        formatter_class = argparse.RawDescriptionHelpFormatter,
        description = '\n'.join( textwrap.wrap("Run hq-user-server on", width=textWidth) +
                                 ['\n'] +
                                 textwrap.wrap("  host: {}".format(hqHost), width=textWidth)+
                                 textwrap.wrap("  port: {}".format(defaultHQPort), width=textWidth)+
                                 ['\n']+
                                 textwrap.wrap("By default an error logfile {f} is created. This can be changed with option -e.".format(f="defaultErrorLogFile".format(port=defaultHQPort)), width=textWidth ) ),
        epilog='Written by Hendrik.'
        )