Пример #1
0
 def testConnect(self):
     "Test connection through nameserver"
     ns = PyroUtil.connectNameServer("localhost", 5000, "mmp-secret-key")
     print("Connected to nameserver")
     for i, app in enumerate(self.apps):
         # what is localport??
         # tunnel=PyroUtil.sshTunnel(remoteHost='localhost',userName='******'%(2000+i),localPort=2000+i,remotePort=4000+i,sshClient='ssh',options='-oStrictHostKeyChecking=no',sshHost='')
         # print('Tunnel established')
         a = PyroUtil.connectApp(ns, PyroUtil.getNSAppName(self.jobname, app.__class__.__name__))
         print("Connected to App through Pyro")
         self.assert_(a)
         appsig = a.getApplicationSignature()
         print(appsig)
         tunnel.terminate()
Пример #2
0
 def testConnect(self):
     'Test connection through nameserver'
     ns=PyroUtil.connectNameServer('localhost',5000,'mmp-secret-key')
     print('Connected to nameserver')
     for i,app in enumerate(self.apps):
         # what is localport??
         #tunnel=PyroUtil.sshTunnel(remoteHost='localhost',userName='******'%(2000+i),localPort=2000+i,remotePort=4000+i,sshClient='ssh',options='-oStrictHostKeyChecking=no',sshHost='')
         #print('Tunnel established')
         a=PyroUtil.connectApp(ns,PyroUtil.getNSAppName(self.jobname,app.__class__.__name__))
         print('Connected to App through Pyro')
         self.assert_(a)
         appsig=a.getApplicationSignature()
         print(appsig)
         tunnel.terminate()
Пример #3
0
def main():
    # Parse arguments
    args = parser.parse_args()
    sys.path.append(os.getcwd())

    # Load config
    conf = args.configFile
    if conf[-3:] == '.py':
        conf = conf[:-3]
    print(conf)

    tConf = importlib.import_module(conf)

    # locate nameserver
    ns = PyroUtil.connectNameServer(nshost=tConf.nshost,
                                    nsport=tConf.nsport,
                                    hkey=tConf.hkey)

    # Run a daemon for jobMamager on this machine
    daemon = PyroUtil.runDaemon(host=tConf.daemonHost,
                                port=tConf.jobManPort,
                                nathost=tConf.nathost,
                                natport=tConf.jobManNatport)
    # Run job manager on a serverdaemon, ns, appAPIClass, appName, portRange,
    # jobManWorkDir, serverConfigPath, serverConfigFile, jobMan2CmdPath,
    # maxJobs=1, jobMancmdCommPort=10000
    jobMan = jb.SimpleJobManager2(daemon,
                                  ns,
                                  appAPIClass=tConf.applicationClass,
                                  appName=tConf.jobManName,
                                  portRange=tConf.jobManPortsForJobs,
                                  jobManWorkDir=tConf.jobManWorkDir,
                                  serverConfigPath=tConf.serverConfigPath,
                                  serverConfigFile=conf,
                                  jobMan2CmdPath=tConf.jobMan2CmdPath,
                                  maxJobs=tConf.jobManMaxJobs,
                                  jobMancmdCommPort=tConf.jobManSocket)

    # set up daemon with JobManager
    uri = daemon.register(jobMan)
    # register JobManager to nameServer
    ns.register(tConf.jobManName, uri)
    logger.debug("Daemon for JobManager runs at " + str(uri))
    print(80 * '-')
    print("Started " + tConf.jobManName)
    # waits for requests
    daemon.requestLoop()
Пример #4
0
def main():
    # Parse arguments
    args = parser.parse_args()
    sys.path.append(os.getcwd())

    # Load config
    conf = args.configFile
    if conf[-3:] == '.py':
        conf = conf[:-3]
    print(conf)

    tConf = importlib.import_module(conf)

    # locate nameserver
    ns = PyroUtil.connectNameServer(nshost=tConf.nshost,
                                    nsport=tConf.nsport,
                                    hkey=tConf.hkey)

    # Run a daemon for jobMamager on this machine
    daemon = PyroUtil.runDaemon(host=tConf.daemonHost,
                                port=tConf.jobManPort,
                                nathost=tConf.nathost,
                                natport=tConf.jobManNatport)
    # Run job manager on a serverdaemon, ns, appAPIClass, appName, portRange,
    # jobManWorkDir, serverConfigPath, serverConfigFile, jobMan2CmdPath,
    # maxJobs=1, jobMancmdCommPort=10000
    jobMan = jb.SimpleJobManager2(daemon, ns,
                                  appAPIClass=tConf.applicationClass,
                                  appName=tConf.jobManName,
                                  portRange=tConf.jobManPortsForJobs,
                                  jobManWorkDir=tConf.jobManWorkDir,
                                  serverConfigPath=tConf.serverConfigPath,
                                  serverConfigFile=conf,
                                  jobMan2CmdPath=tConf.jobMan2CmdPath,
                                  maxJobs=tConf.jobManMaxJobs,
                                  jobMancmdCommPort=tConf.jobManSocket)

    # set up daemon with JobManager
    uri = daemon.register(jobMan)
    # register JobManager to nameServer
    ns.register(tConf.jobManName, uri)
    logger.debug("Daemon for JobManager runs at " + str(uri))
    print(80 * '-')
    print("Started " + tConf.jobManName)
    # waits for requests
    daemon.requestLoop()
Пример #5
0
import clientConfig as cConf
import Pyro4
from mmp_tracer_api import objID
from comsol_api import MMPComsolDummy
from mupif import PyroUtil, Property, PropertyID, FieldID, ValueType
import logging
logger = logging.getLogger()

import time as timeTime
start = timeTime.time()
logger.info('Timer started')

# locate nameserver
ns = PyroUtil.connectNameServer(
    nshost=cConf.nshost, nsport=cConf.nsport, hkey=cConf.hkey)

# localize JobManager running on (remote) server and create a tunnel to it
# allocate the first application app1

tracerSolverAppRec = PyroUtil.allocateApplicationWithJobManager(
    ns, cConf.tracerSolverJobManRec, cConf.jobNatPorts.pop(0),
    cConf.sshClient, cConf.options, cConf.sshHost)
mieSolverAppRec = PyroUtil.allocateApplicationWithJobManager(
    ns, cConf.mieSolverJobManRec, cConf.jobNatPorts.pop(0),
    cConf.sshClient, cConf.options, cConf.sshHost)

comsolAppRec = PyroUtil.allocateApplicationWithJobManager(ns, cConf.comsolSolverJobManRec, cConf.jobNatPorts.pop(0), cConf.sshClient, cConf.options, cConf.sshHost)


mieApp = mieSolverAppRec.getApplication()
tracerApp = tracerSolverAppRec.getApplication()
Пример #6
0
def main():
    global host
    global jobmanname
    nshost = '172.30.0.1'
    nsport = 9090
    hkey = 'mupif-secret-key'
    jobmanname = None
    debug = False
    #nshost=None
    ssh = False  #ssh flag (set to True if ssh tunnel need to be established)
    log = logging.getLogger()

    try:
        opts, args = getopt.getopt(sys.argv[1:], "h:j:p:k:u:n:r:t")
        # print(opts, args)
    except getopt.GetoptError as err:
        # print help information and exit:
        print(str(err))  # will print something like "option -a not recognized"
        usage()
        sys.exit(2)

    for o, a in opts:
        #        if o in ("-p"):
        #            port = int(a)
        #        elif o in ("-h"):
        #            host = a
        if o in ("-j"):
            jobmanname = a
        elif o in ("-k"):
            hkey = a
        elif o in ("-t"):
            ssh = True
        elif o in ("-u"):
            username = a
        elif o in ("-n"):
            nshost = a
        elif o in ("-r"):
            nsport = int(a)
        else:
            assert False, "unhandled option"

    # print("huhu:"+host+str(port))

    if (not jobmanname):
        usage()
        sys.exit(2)

    #locate nameserver
    ns = PyroUtil.connectNameServer(nshost, nsport, hkey)
    # locate remote jobManager application, request remote proxy
    jobManUri = ns.lookup(jobmanname)
    #get local port of jobmanager (from uri)
    jobmannatport = int(re.search('(\d+)$', str(jobManUri)).group(0))
    host = PyroUtil.getIPfromUri(jobManUri)

    #extablish secure ssh tunnel connection
    if ssh:
        (host, jobmannatport, jobManNatHost,
         port) = PyroUtil.getNSConnectionInfo(ns, jobmanname)
        tunnel = PyroUtil.sshTunnel(remoteHost=host,
                                    userName=username,
                                    localPort=jobmannatport,
                                    remotePort=port,
                                    sshClient='ssh')

    jobMan = PyroUtil.connectJobManager(ns, jobmanname, hkey=hkey)

    curses.wrapper(processor, jobMan)

    if ssh:
        tunnel.terminate()
Пример #7
0
from mupif import WorkflowMonitor
from mupif import Util
from mupif import PyroUtil
import argparse
# Read int for mode as number behind '-m' argument: 0-local (default), 1-ssh, 2-VPN
mode = argparse.ArgumentParser(parents=[Util.getParentParser()]).parse_args().mode
from Config import config
cfg = config(mode)

Util.changeRootLogger('monitor.log')

# bp stuff
# cfg.monitorServer='172.30.0.3'


# locate nameserver
ns = PyroUtil.connectNameServer(nshost=cfg.nshost, nsport=cfg.nsport, hkey=cfg.hkey)
monitor = WorkflowMonitor.WorkflowMonitor()
print(monitor.getAllMetadata())
PyroUtil.runAppServer(
    server=cfg.monitorServer,
    port=cfg.monitorPort,
    nathost=None,
    natport=None,
    nshost=cfg.nshost,
    nsport=cfg.nsport,
    appName=cfg.monitorName,
    hkey=cfg.hkey,
    app=monitor
)
Пример #8
0
from builtins import str
import sys

sys.path.append('../../..')
import os

import conf
from mupif import Application
from mupif import APIError
from mupif import PyroUtil
import time as timeTime

start = timeTime.time()
#locate nameserver
ns = PyroUtil.connectNameServer(conf.nshost, 9090, conf.hkey)

results = []
tunnel = None
for apprecord in conf.apps:
    starti = timeTime.time()
    conf.log.info("Trying to connect to server " +
                  str(apprecord[conf.appIndx_Name]))

    #Find if we need different ssh server for authentication
    if apprecord[conf.appIndx_SshHost] == '':
        sshHost = apprecord[conf.appIndx_ServerName]
    else:
        sshHost = apprecord[conf.appIndx_SshHost]
    try:

        tunnel = PyroUtil.sshTunnel(
Пример #9
0
from __future__ import print_function
from builtins import str
import sys
sys.path.append('../../..')
import os

import conf
from mupif import Application
from mupif import APIError
from mupif import PyroUtil
import time as timeTime


start = timeTime.time()
#locate nameserver
ns = PyroUtil.connectNameServer(conf.nshost, 9090, conf.hkey)

results=[]
tunnel= None
for apprecord in conf.apps:
    starti = timeTime.time()
    conf.logger.info("Trying to connect to server " + str(apprecord[conf.appIndx_Name]))

    #Find if we need different ssh server for authentication
    if apprecord[conf.appIndx_SshHost] == '':
        sshHost = apprecord[conf.appIndx_ServerName]
    else:
        sshHost = apprecord[conf.appIndx_SshHost]
    try:

        tunnel = PyroUtil.sshTunnel(remoteHost=apprecord[conf.appIndx_ServerName],
Пример #10
0
    elif o in ("-n"):
        nshost = a
    elif o in ("-r"):
        nsport = int(a)
    else:
        assert False, "unhandled option"

print "huhu:"+host+str(port)

jobid_col = 0
port_col  = 35
user_col = 41
time_col = 70

#locate nameserver
ns     = PyroUtil.connectNameServer(nshost, nsport, hkey)
# locate remote jobManager application, request remote proxy
jobManUri = ns.lookup(jobmanname)
#get local port of jabmanager (from uri)
jobmannatport = int(re.search('(\d+)$',str(jobManUri)).group(0))


#extablish secure ssh tunnel connection
if ssh:
    tunnel = PyroUtil.sshTunnel(remoteHost=host, userName=username, localPort=jobmannatport, remotePort=port, sshClient='ssh')


jobMan = PyroUtil.connectApp(ns, jobmanname)

#ssh flag (set to True if ssh tunnel need to be established)
ssh = False
Пример #11
0
def main():
    global host
    global jobmanname
    host = 'ksm.fsv.cvut.cz'    
    port = 9090
    hkey =""
    ssh = False#ssh flag (set to tru if ssh tunnel need to be established)
    logger = logging.getLogger()
    


    


    try:
        opts, args = getopt.getopt(sys.argv[1:], "h:j:p:k:u:n:r:t")
        print(opts, args)
    except getopt.GetoptError as err: 
        # print help information and exit: 
        print(str(err)) # will print something like "option -a not recognized"
        usage()
        sys.exit(2)
    
    for o, a in opts:
        if o in ("-p"):
            port = int(a)                                                                                              
        elif o in ("-h"):
            host = a                                         
        elif o in ("-j"):
            jobmanname = a
        elif o in ("-k"):
            hkey = a
        elif o in ("-t"):
            ssh = True
        elif o in ("-u"):
            username = a
        elif o in ("-n"):
            nshost = a
        elif o in ("-r"):
            nsport = int(a)
        else:
            assert False, "unhandled option"
    
    print("huhu:"+host+str(port))
    
    
    #locate nameserver
    ns     = PyroUtil.connectNameServer(nshost, nsport, hkey)
    # locate remote jobManager application, request remote proxy
    jobManUri = ns.lookup(jobmanname)
    #get local port of jabmanager (from uri)
    jobmannatport = int(re.search('(\d+)$',str(jobManUri)).group(0))
    
    
    #extablish secure ssh tunnel connection
    if ssh:
        tunnel = PyroUtil.sshTunnel(remoteHost=host, userName=username, localPort=jobmannatport, remotePort=port, sshClient='ssh')
    
    
    jobMan = PyroUtil.connectApp(ns, jobmanname)
    
    #ssh flag (set to True if ssh tunnel need to be established)
    ssh = False
    
    curses.wrapper(processor, jobMan)
    
    if ssh:
        tunnel.terminate()