Пример #1
0
    def makeUSR(self):
        logger.info( 'Making UserStuffRetriever Project ')
        cfg = RTTConfiguration(self.rttConfFile)
        confDict = cfg.config
        #extend oringinal Config
        confDict['originalBranch'] = cfg.originalBranch
        confDict['findNightly']    = cfg.findNightly
        confDict['valid']          = cfg.valid
        confDict['isNightly']       = cfg.isNightly

        if confDict['release'] == 'nightly':
            lcr  ='/afs/cern.ch/atlas/software/builds/nightlies/dev/AtlasOffline/latest_copied_release'
            confDict['release'] = os.readlink(lcr)
            print 'nightly Tag is '+str(os.readlink(lcr))
        
        print formatCollection(confDict)
        #print cfg.__str__()
        
        paths = NoPackagePaths('RunTimeTester-00-00-96',
                                confDict, RunTimer(60*60*20 ,logger ),
                                'outLog.log', logger)

        #usr    = UserStuffRetrieverProject(paths,
        #usr     = UserStuffRetrieverRelease(paths,
        #                                   self.subString)
        #usr    = UserStuffRetrieverFactory(logger).create(paths, self.subString, confDict)
        usr    = UserStuffRetrieverFactory(logger).create(paths, self.subString)
        return usr
Пример #2
0
class DataSetMaker:
    def __init__(self, packageCfgFile, destDir, catalog=''):
        self.packageCfg = packageCfgFile
        self.catalog = catalog
        self.destDir = destDir

    def makeDatasets(self):
        datasets = []
        print '====================================='
        print 'Config to parse ' + str(self.packageCfg)
        print '====================================='
        try:
            dom = parse(self.packageCfg)
        except Exception, e:
            print '====================================='
            print 'Error in parsing ' + str(self.packageCfg)
            print '====================================='
            print str(e)
            return ([None], [None])

        nonDQ2 = self.makeNonDQ2data(dom)
        dq2 = self.makeDQ2data(dom)

        return (nonDQ2, dq2)

        print 'DQ2 data'
        for d in dq2:
            print formatCollection((d.__dict__))
        print '-------------------------------------------------------------'
        print 'Non DQ2 data'
        for nd in nonDQ2:
            print formatCollection(nd.__dict__)
Пример #3
0
def dumpLinkTable(table):
    labelDict = {}
    for key in table.keys():
        childLabels = []
        for child in table[key]:
            childLabels.append(child.group)
        if key == None:
            print key, childLabels
        else:
            print key.group, childLabels

    formatCollection(labelDict)
Пример #4
0
 def __str__(self):
     s = ''
     for k in self.__dict__.keys():
         if k != 'config':
             s += '%s      %s\n' % (k, str(self.__dict__[k]))
     s += '----\nconfig: \n%s\n' % formatCollection(self.config)
     return s
Пример #5
0
 def __str__(self):
     string  ='group:       %s\n'%self.group
     string +='parent:      %s\n'%self.parent
     string +='log`Checker: %s\n'%str(self.logChecker)
     string +='\n'
     string += formatCollection(self.kitItems)
     return string
Пример #6
0
class CopyDQ2Files:
    def __init__(self , dsObject):

        self.dataset = dsObject
        self.name    = self.dataset.logicalName
        self.destDir = self.dataset.destDir

    def filesString(self):
        s = ''
        for file in self.dataset.filesToCopy:
            s += ' '+os.path.basename(file)

        return s


    def doCopy(self):
        self.cpstatus = {}
        stage,castor  = self.setAreas()
        print 'stage  ' +stage
        print 'castor ' +castor
        files = [os.path.basename(file) for file in self.dataset.filesToCopy]
        for file in files:
            dq2Getcmd  = 'dq2_get -s '+self.dataset.site
            dq2Getcmd += ' -rc -d '+stage
            dq2Getcmd += ' '+self.name
            dq2Getcmd += ' '+file

            temp = os.path.join(stage,  file)
            dest = os.path.join(castor, file)
            
            try:
                cmd    = Popen4('rfdir '+dest)
                result = str(cmd.fromchild.read())
                if re.search('No such file', result):
                    print dq2Getcmd
                    fromGrid   = Popen4(dq2Getcmd)
                    answer = fromGrid.fromchild.readlines()
                    self.handleStatus(self.name, answer, self.cpstatus)
                    #fromGrid.wait()

                    toCastor = Popen4('rfcp '+temp+ ' '+dest)
                    toCastor.wait()
                    
                else:
                    print 'File already available on castor'

                print 'src file  '+temp
                print 'dest file '+dest
                time.sleep(10)
                rmtemp = Popen4('rm -f '+temp)
                rmtemp.wait()
                print 'deleted '+temp
            except Exception, e:
                print 'problem getting data from grid %s'%str(e)

        if 'error' in self.cpstatus.values():
            self.dataset.copyStatus = 'error'
            self.dataset.copyInfo   = str(formatCollection(self.cpstatus))
        else:
             self.dataset.copyStatus = 'success'
Пример #7
0
    def makeUSR(self):
        logger.info('Making UserStuffRetriever Monolithic')
        confDict = rttConfiguration(self.rttConfFile)
            
        logger.debug( 'rttConfig :'+formatCollection(str(confDict))) 
        paths    = NoPackagePaths('RunTimeTester-00-00-89',
                           confDict, RunTimer(60*60*20 ,logger ),
                                'outLog.log')
        usr   = UserStuffRetriever(paths, self.subString, confDict )

        return usr
Пример #8
0
    def hasTop(self, nodes):

        tops = [n for n in nodes if n.myLabel() == self.topLabel]

        assert (len(tops) < 2)

        if len(tops) == 0:
            msg = 'No top node in Tree, raising exception\n'
            msg += 'top node label %s \n' % self.topLabel
            msg += formatCollection([n.myLabel() for n in nodes])
            logger.error(msg)
            raise RTTCodingError(msg)

        top = tops[0]
        top.parent = self.topParentLabel
Пример #9
0
    def lineage(self, nodes):

        for n in nodes:

            # do not remove the top node
            if n.myLabel() == self.topLabel: continue

            aLabels = [a.myLabel() for a in self.ancestors(n)]
            if self.topLabel not in aLabels:
                msg = 'removing node %s ' % n.myLabel()
                msg += 'which cannot be traced back to the top node'
                msg += 'ancestors are:\n%s\n ' % (formatCollection(aLabels))
                msg += 'top label is: %s' % self.topLabel
                logger.error(msg)
                nodes.remove(n)
Пример #10
0
 def handleCmdOutput(self, output):
     pattern = 'ERROR|not found'
     for line in output:
         print line
         if re.search(pattern, line):
             self.dataset.copyStatus = 'error'
             self.dataset.copyInfo = line
         elif re.search('Total:', line):
             total, failed = line.split('-')
             if string.strip(failed)[-1:] == '0':
                 if string.strip(total)[-1:] != '0':
                     self.dataset.copyStatus = 'success'
                     print 'sucess success,success, success,success,success,success'
             self.dataset.copyInf = line
         else:
             self.dataset.copyInfo = formatCollection(output)
Пример #11
0
    def getReply(self):    
        # remove the EOL if present
        reply  = [replace(line, '\n', '' ) for line in self.reply]
        lenReply = len(reply)
        
        if not self.silent and self.nLinesToReport>-1:
            if lenReply < self.nLinesToReport:
                m = 'Command: %s Reply:\n' % (str(self.cmd))
                self.logger.debug(m)
                [self.logger.debug('%s' % str(l)) for l in reply]
            else:
                msg  = 'ShellCommand - '
                msg += 'total number of lines in reply  %d ' % lenReply
                msg += 'Truncating to %d lines\n' % self.nLinesToReport
                msg += formatCollection(reply[:self.nLinesToReport]
                                        )
                self.logger.debug(msg)

        return reply
Пример #12
0
    def __str__(self):
        s = '----------- Minder ---------------\n'
        s += ' done:                 ' + str(self.isDone()) + '\n'
        s += ' weight:               ' + str(self.jobWeight) + '\n'
        s += ' runPath:              ' + str(self.runPath) + '\n'
        s += ' keepFilePatterns:     ' + formatCollection(
            self.keepFilePatterns) + '\n'
        s += ' auxFilePatterns:      ' + formatCollection(
            self.auxFilePatterns) + '\n'
        s += ' keepFiles:            ' + formatCollection(
            self.keepFiles) + '\n'
        s += ' auxFiles:             ' + formatCollection(self.auxFiles) + '\n'
        s += ' actions:              ' + formatCollection(self.actions) + '\n'
        s += ' tests:                ' + formatCollection(self.tests) + '\n'
        s += ' scripts:              ' + str(self.scripts.keys()) + '\n'
        s += ' descriptor:\n'

        return s
Пример #13
0
    def makeUSR(self):
        logger.info('Making UserStuffRetriever Project ')
        cfg = RTTConfiguration(self.rttConfFile)
        self.confDict = cfg.config

        #extend original Config
        self.confDict['originalBranch'] = cfg.originalBranch
        self.confDict['findNightly'] = cfg.findNightly
        self.confDict['valid'] = cfg.valid
        self.confDict['isNightly'] = cfg.isNightly

        self.RTTSrcDir = self.copierConfig.get('rttsrc')
        self.RTTLibDir = self.copierConfig.get('rttLibDir')
        self.logFileDir = self.copierConfig.get('logDir')

        if self.confDict['release'] == 'nightly':
            lcr = '/afs/cern.ch/atlas/software/builds/nightlies/'
            lcr += self.confDict['originalBranch']
            lcr += '/AtlasProduction/latest_copied_release'

            self.confDict['release'] = os.readlink(lcr)
            self.logger.info('nightly Tag is ' + str(os.readlink(lcr)))

        self.logger.debug(formatCollection(self.confDict))

        self.parametersForCMT = ParametersForCMT(self.confDict, self.logger)

        self.paths = NoPackagePaths(self.RTTSrcDir, self.RTTLibDir,
                                    self.confDict, self.logFileDir,
                                    self.summaryDocument.createElement,
                                    self.summaryDocument.createTextNode,
                                    self.parametersForCMT, self.logger)

        usr = UserStuffRetrieverFactory(logger).create(self.paths,
                                                       self.subString)
        return usr
Пример #14
0
    def __str__(self):

        s = Minder.__str__(self)
        s += '----------- Worker Minder ---------------\n'
        s += ' checks:              %s' % formatCollection(self.checks)
        return s
Пример #15
0
 def __str__(self):
     str += self.__class__.__name__ + '\n'
     str += formatCollection(self.__dict__) + '\n'
     return str
Пример #16
0
 def __str__(self):
     str  = 'TestDescriptor: module name %s test name %s \n' % (self.moduleName, self.testName)
     str += 'argDict: \n%s' % formatCollection(self.argDict)
     return str
Пример #17
0
 def __str__(self):
     str  = 'GetUserConfigData - packages:\n'
     str += formatCollection([p.name for p in self.packages])
     return str 
Пример #18
0
 def __str__(self):
     s = Minder.__str__(self)
     names = [job.identifiedName for job in self.jobsToWatch]
     s += 'job to watch.:      %s' % formatCollection(names)
     return s
Пример #19
0
 def __str__(self):
     return 'CVSPackage:\n'+formatCollection(self.__dict__)+'\n'