Ejemplo n.º 1
0
def helpFuncs():
  from pprint import pprint
  rpcServer = RPCServer.getInstance()
  methods = listFuncs()
  for mName in listFuncs():
    rpcServer.getBatchServer().system.methodHelp(mName)
  
  methodsHelp = zip(methods, rpcServer.getBatchServer()())
  RPCServer.getInstance().resetBatch()
  pprint(dict(methodsHelp))
Ejemplo n.º 2
0
def runBatch(reset = True):
  res = RPCServer.getInstance().getBatchServer()()
  if reset:
    RPCServer.getInstance().resetBatch()
    endBatch()
  resultsList = []
  for r in res:
    if isinstance(r, str):
      tpe = r.split("-",1)[0]
      resInstance = eval( "%s(id='%s')" % (tpe, r) )
      resultsList.append(resInstance)
    else:
      resultsList.append(r)

  return resultsList
Ejemplo n.º 3
0
def initializeClient(configFileName = 'config.cfg'):
  global global_config
  global clientId
  global createCount
  global gcThreshold
  createCount = 0
  global_config = Configuration(configFileName)
  rpcServer = RPCServer.getInstance( global_config.RPCServerURL )
  clientId = rpcServer.getServer()._requestClientId()
  gcThreshold = global_config.GCThreshold
  global filteredMethods
  filteredMethods = filter(lambda mName: mName[:7] != 'system.' and mName[0] != '_', 
                            rpcServer.getInteractiveServer().system.listMethods())

  proxyFuncsSrc = """def %(methodName)s(*args):
    \"\"\"%(methodHelp)s\"\"\"
    global createCount
    global gcThreshold 
    mName = '%(methodName)s'
    newArgs = [clientId]
    rpcServer = RPCServer.getInstance()


    for arg in args:
      if type(arg) in ( type(()), type([]) ):
        newArgs.append( __elemsToStr(arg) )
      elif isinstance(arg, Variable):
        newArgs.append(arg.getId())
      else:
        newArgs.append(arg)
    try:
      result = rpcServer.getServer().%(methodName)s(*newArgs)
    except:
      raise


    #result's first chars before the "-" indicate the type of the result
    #UNLESS the result is an string repr of the number, in which case
    #it is not processed
    if isinstance(result, str):
      tpe = result.split("-",1)[0]
      if tpe.isalpha():
        strToEval = "%%s(id='%%s')" %% (tpe, result)
        result = eval(strToEval)

    if mName.endswith("Create"):
      createCount += 1
      if createCount > gcThreshold:
        runGC(result.getId())
        createCount = 0


    return result
"""
  for mName in filteredMethods:
    rpcServer.getBatchServer().system.methodHelp(mName)
  
  methodsHelp = zip(filteredMethods, rpcServer.getBatchServer()())
  for methodAndHelpPair in methodsHelp:
    exec proxyFuncsSrc % \
    {'methodName': methodAndHelpPair[0], 
     'methodHelp': methodAndHelpPair[1]
    } in globals()

  return globals()
Ejemplo n.º 4
0
def endBatch():
  RPCServer.getInstance().setBatch(False)
Ejemplo n.º 5
0
def runBatch(reset = True):
  res = RPCServer.getInstance().getBatchServer()()
  if reset:
    RPCServer.getInstance().resetBatch()
  return [x for x in res]
Ejemplo n.º 6
0
def beginBatch():
  RPCServer.getInstance().setBatch(True)