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) )
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 )
# 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.' )
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.' )