コード例 #1
0
ファイル: hQServerProxy.py プロジェクト: call-me-jimi/hq
    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) )
コード例 #2
0
ファイル: hQBaseServer.py プロジェクト: call-me-jimi/hq
    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 )
                               ])
コード例 #3
0
ファイル: hQExecServer.py プロジェクト: call-me-jimi/hq
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
コード例 #4
0
ファイル: hq-submit.py プロジェクト: call-me-jimi/hq
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,
コード例 #5
0
ファイル: hQUserServer.py プロジェクト: call-me-jimi/hq
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