Ejemplo n.º 1
0
 def do_replicate(self,args):
   """ Replicate a given file to a given SE
       
       usage:
         replicate <LFN> <SE> [<SourceSE>]
   """
   argss = args.split()
   if len(args) < 2:
     print "Error: unsufficient number of arguments"
   lfn = argss[0]
   lfn = self.getPath(lfn)
   se = argss[1]
   sourceSE = ''
   if len(argss)>2:
     sourceSE=argss[2]
   if len(argss)>3: 
     localCache=argss[3]
   try:
     dirac = Dirac()
     result = dirac.replicateFile(lfn,se,sourceSE,printOutput=True)      
     if not result['OK']:
       print 'Error: %s' %(result['Message'])
     elif not result['Value']:
       print "Replica is already present at the target SE"
     else:  
       print "File %s successfully replicated to the %s SE" % (lfn,se)  
   except Exception, x:
     print "Error: replicate failed with exception: ", x      
Ejemplo n.º 2
0
def main():
    # Registering arguments will automatically add their description to the help menu
    Script.registerArgument(
        "LFN:      Logical File Name or file containing LFNs")
    Script.registerArgument("Dest:     Valid DIRAC SE")
    Script.registerArgument("Source:   Valid DIRAC SE",
                            default="",
                            mandatory=False)
    Script.registerArgument("Cache:    Local directory to be used as cache",
                            default="",
                            mandatory=False)
    _, args = Script.parseCommandLine(ignoreErrors=True)

    if len(args) > 4:
        Script.showHelp(exitCode=1)

    lfn, seName, sourceSE, localCache = Script.getPositionalArgs(group=True)

    from DIRAC.Interfaces.API.Dirac import Dirac

    dirac = Dirac()
    exitCode = 0

    try:
        f = open(lfn, "r")
        lfns = f.read().splitlines()
        f.close()
    except Exception:
        lfns = [lfn]

    finalResult = {"Failed": [], "Successful": []}
    for lfn in lfns:
        result = dirac.replicateFile(lfn,
                                     seName,
                                     sourceSE,
                                     localCache,
                                     printOutput=True)
        if not result["OK"]:
            finalResult["Failed"].append(lfn)
            print("ERROR %s" % (result["Message"]))
            exitCode = 2
        else:
            finalResult["Successful"].append(lfn)

    if len(lfns) > 1:
        print(finalResult)

    DIRAC.exit(exitCode)
Ejemplo n.º 3
0
def main():
    Script.parseCommandLine(ignoreErrors=True)
    args = Script.getPositionalArgs()

    if len(args) < 2 or len(args) > 4:
        Script.showHelp(exitCode=1)

    lfn = args[0]
    seName = args[1]
    sourceSE = ''
    localCache = ''
    if len(args) > 2:
        sourceSE = args[2]
    if len(args) == 4:
        localCache = args[3]

    from DIRAC.Interfaces.API.Dirac import Dirac
    dirac = Dirac()
    exitCode = 0

    try:
        f = open(lfn, 'r')
        lfns = f.read().splitlines()
        f.close()
    except BaseException:
        lfns = [lfn]

    finalResult = {"Failed": [], "Successful": []}
    for lfn in lfns:
        result = dirac.replicateFile(lfn,
                                     seName,
                                     sourceSE,
                                     localCache,
                                     printOutput=True)
        if not result['OK']:
            finalResult["Failed"].append(lfn)
            print('ERROR %s' % (result['Message']))
            exitCode = 2
        else:
            finalResult["Successful"].append(lfn)

    if len(lfns) > 1:
        print(finalResult)

    DIRAC.exit(exitCode)
Ejemplo n.º 4
0
if len(args) > 2:
  sourceSE = args[2]
if len(args) == 4:
  localCache = args[3]

from DIRAC.Interfaces.API.Dirac import Dirac
dirac = Dirac()
exitCode = 0

try:
  f = open(lfn, 'r')
  lfns = f.read().splitlines()
  f.close()
except BaseException:
  lfns = [lfn]

finalResult = {"Failed": [], "Successful": []}
for lfn in lfns:
  result = dirac.replicateFile(lfn, seName, sourceSE, localCache, printOutput=True)
  if not result['OK']:
    finalResult["Failed"].append(lfn)
    print('ERROR %s' % (result['Message']))
    exitCode = 2
  else:
    finalResult["Successful"].append(lfn)

if len(lfns) > 1:
  print(finalResult)

DIRAC.exit(exitCode)
Ejemplo n.º 5
0
if len( args ) > 2:
  sourceSE = args[2]
if len( args ) == 4:
  localCache = args[3]

from DIRAC.Interfaces.API.Dirac                       import Dirac
dirac = Dirac()
exitCode = 0

try:
  f = open( lfn, 'r' )
  lfns = f.read().splitlines()
  f.close()
except:
  lfns = [lfn]

finalResult = {"Failed":[], "Successful":[]}
for lfn in lfns:
  result = dirac.replicateFile( lfn, seName, sourceSE, localCache, printOutput = True )
  if not result['OK']:
    finalResult["Failed"].append( lfn )
    print 'ERROR %s' % ( result['Message'] )
    exitCode = 2
  else:
    finalResult["Successful"].append( lfn )

if len( lfns ) > 1:
  print finalResult

DIRAC.exit( exitCode )
Ejemplo n.º 6
0
def replicateFile(lfn, seName, printOutput=True):
    dirac = Dirac()
    result = dirac.replicateFile(lfn, seName, printOutput=True)
    return result