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 store_details( self ): """store details about running server. The module hQServerDetails is used for storing details. """ # create hQServerDetails instance hqServerDetails = hQServerDetails(self.server_type) # write host and port to file <varpath>/hq.server.cfg hqServerDetails.save([ ('host', self.host), ('port', self.port), ('id', self.server_id), ('pid', self.pid), ('started', self.startTime ) ])
import traceback from pprint import pprint as pp import getpass # import hq libraries from hq.lib.hQBaseServer import hQBaseServer, hQBaseServerHandler, hQBaseRequestProcessor from hq.lib.hQServerDetails import hQServerDetails from hq.lib.hQDBConnection import hQDBConnection from hq.lib.hQCommand import hQCommand from hq.lib.hQSocket import hQSocket from hq.lib.daemon import Daemon import hq.lib.hQDatabase as db # get stored host and port from hq-user-server hqServerDetails = hQServerDetails("hq-user-server") HQU_SERVER_HOST = hqServerDetails.get("host", None) HQU_SERVER_PORT = hqServerDetails.get("port", None) USER = getpass.getuser() class hQExecServer(hQBaseServer, Daemon): server_type = "hq-exec-server" def __init__(self, port): handler = hQExecServerHandler processor = hQExecServerRequestProcessor() self.user = USER
consoleLog.setLevel(logging.INFO) # handler level. consoleLog.setFormatter(formatter) # add handler to logger logger.addHandler(consoleLog) HOMEDIR = os.environ['HOME'] # import hq libraries from hq.lib.hQUtils import SmartFormatter from hq.lib.hQSocket import hQSocket from hq.lib.hQServerProxy import hQServerProxy from hq.lib.hQServerDetails import hQServerDetails # get stored host and port from taskdispatcher hqUserServerDetails = hQServerDetails('hq-user-server') HOST = hqUserServerDetails.get('host', None) PORT = hqUserServerDetails.get('port', None) if __name__ == '__main__': loginShell = os.environ['SHELL'].split('/')[-1] defaultValues = { "slots": 1, "group": "", "infoText": "", "logfile": "", "stdout": "", "stderr": "", "shell": loginShell,
import traceback from pprint import pprint as pp # import hq libraries from hq.lib.hQBaseServer import hQBaseServer,hQBaseServerHandler,hQBaseRequestProcessor from hq.lib.hQServerDetails import hQServerDetails from hq.lib.hQDBConnection import hQDBConnection from hq.lib.hQCommand import hQCommand from hq.lib.hQSocket import hQSocket from hq.lib.hQServerProxy import hQServerProxy from hq.lib.daemon import Daemon import hq.lib.hQDatabase as db # get stored host and port from the main server hqServerDetails = hQServerDetails('hq-server') HQ_SERVER_HOST = hqServerDetails.get('host', None) HQ_SERVER_PORT = hqServerDetails.get('port', None) USER = pwd.getpwuid(os.getuid())[0] class hQUserServer(hQBaseServer, Daemon): server_type ='hq-user-server' def __init__(self, port): handler = hQUserServerHandler processor = hQUserServerRequestProcessor() self.user=USER