import sys import os import subprocess import urllib import urllib2 import re from xml.dom.ext.reader import HtmlLib import time grouphash={'900':'physics','tau':'tau','susy':'susy','physics':'physics','higgs':'higgs','top':'top','trigger':'trigger','jetetmiss':'jetEtmiss','exotics':'exotics','heavyions':'heavyion','calibration':'physics','standardmodel':'sm','flavourtag':'btagging','bphys':'bphysics','egamma':'egamma','trackingperf':'physics'} inff=sys.argv[1] print inff infile = open(inff,"r") for line in infile: line2=line.rstrip("\r\n") group,ds,short,comment,etag,stats,inputfb,nfreq=line2.split('=') data={} data['group']=group data['ds']=ds data['short']=short data['comment']=comment data['etag']=etag data['stats']=stats data['inputfb']=inputfb data['nfreq']=nfreq # print 'data=',data inputs={} inputs['mode']='reqtask2' inputs['qProject']='mc08' # inputs['qProject']='test1' inputs['qTaskTRF']='csc_evgen08new_trf.py' inputs['qTaskTRFVersion']='14.2.25.6' inputs['qDSNNN']=data['ds'] inputs['qDSPHREF']=data['short'] inputs['qDSPhLong']=data['comment'] inputs['qProjectMode']=data['etag'] inputs['qMail']='borut' inputs['action']='Continue' url_values = urllib.urlencode(inputs) urlpanda = 'http://panda.cern.ch:25880/server/pandamon/query/' full_url = urlpanda + '?' + url_values print 'URL1=',full_url req = urllib2.Request(full_url) response = urllib2.urlopen(req) ostr = response.read() #req = urllib2.Request('http://panda.cern.ch:25880/server/pandamon/query/?mode=reqtask2&mode=reqtask2&qProject=test1&qTaskTRF=csc_modgen_trf.py&qTaskTRFVersion=14.1.0.3&qDSNNN=105001&qDSPHREF=pythia_minbias&qDSPhLong=testing&qProjectMode=e389&qMail=borut&action=Continue') # infile = open('page.html',"r") # ostr = infile.read() #print ostr reader = HtmlLib.Reader() doc = reader.fromString(ostr) ins = doc.getElementsByTagName('input') input={} for inp in ins: attrs=inp.attributes name='' value='' for val in attrs.values(): # print val.name,val.value if val.name=='name': name=val.value if val.name=='value': value=val.value input[name.encode( "utf-8" )]=value.encode( "utf-8" ) # print name.encode( "utf-8" ),"=",value.encode( "utf-8" ) outputs={} try: outputs['mode']='reqtask1' outputs['qDSFFile']=input['qDSFFile'] outputs['qDSNFiles']=input['qDSNFiles'] outputs['qTRFCache']=input['qTRFCache'] outputs['qJO1']=input['qJO1'] outputs['qJO2']=input['qJO2'] outputs['qJO3']=input['qJO3'] outputs['pList']=input['pList'] outputs['qTaskREvents']=input['qTaskREvents'] outputs['qTaskNEvents']=input['qTaskNEvents'] outputs['qTaskFEvents']=input['qTaskFEvents'] outputs['qPriority']=input['qPriority'] outputs['qTaskGrid']='panda' outputs['qDSPhLong']=input['qDSPhLong'] outputs['qProjectMode']=input['qProjectMode'] # outputs['qphysgroup']=input['qphysgroup'] outputs['task_request_email']=input['task_request_email'] outputs['qProject']=input['qProject'] outputs['qDSInput']=input['qDSInput'] outputs['qTaskName']=input['qTaskName'] outputs['qTaskTRF']=input['qTaskTRF'] outputs['qTaskTRFVersion']=input['qTaskTRFVersion'] outputs['qSWRelease']=input['qSWRelease'] outputs['qMail']=input['qMail'] outputs['qCPUJob']=input['qCPUJob'] outputs['qRAMJob']=input['qRAMJob'] outputs['qFormats']=input['qFormats'] except OSError, e: print "system problem!" #overwrites try: outputs['qTaskREvents']='-1' outputs['qPriority']='700' outputs['qJO2']=data['inputfb'] outputs['qDSNFiles']=data['nfreq'] outputs['qTaskNEvents']=data['stats'] outputs['qphysgroup']=grouphash[data['group'].lower()] except OSError, e: print "system2 problem!" #do it url_values = urllib.urlencode(outputs) urlpanda = 'http://panda.cern.ch:25880/server/pandamon/query/' full_url = urlpanda + '?' + url_values print "URL2=",full_url req = urllib2.Request(full_url) response2 = urllib2.urlopen(req) ostr2 = response2.read() # print ostr2 # if ostr2.find('Check') != -1: # print "problem",data,full_url print "waiting a bit.." time.sleep(2) #http://panda.cern.ch:25880/server/pandamon/query/?mode=reqtask1&qFormats=EVNT&qDSFFile=1&qDSNFiles=1&qTRFCache=AtlasProduction&qJO1=EvgenJobOpts-00-01-12.tar.gz&qJO2=None&qJO3=0&pList=EvgenJobOpts%2CInput+file+base%2CSeedOffset&qTaskREvents=-1&qTaskNEvents=50000&qTaskFEvents=5000&qPriority=700&qTaskGrid=panda&qDSPhLong=testing&qProjectMode=default&qphysgroup=physics&task_request_email=TaskSubmit&qProject=test1&qDSInput=MC8.105001.pythia_minbias.py&qTaskName=test1.105001.pythia_minbias.evgen.e389&qTaskTRF=csc_evgen08new_trf.py&qTaskTRFVersion=14.2.24.3&qSWRelease=14.2.24&qMail=borut.kersevan%40ijs.si&qCPUJob=30&qRAMJob=1000 #mode=reqtask1 #qFormats=EVNT #qDSFFile=1 #qDSNFiles=1 #qTRFCache=AtlasProduction #qJO1=EvgenJobOpts-00-01-12.tar.gz #qJO2=None #qJO3=0 #pList=EvgenJobOpts%2CInput+file+base%2CSeedOffset #qTaskREvents=-1 #qTaskNEvents=50000 #qTaskFEvents=5000 #qPriority=700 #qTaskGrid=panda #qDSPhLong=testing #qProjectMode=default #qphysgroup=physics #task_request_email=TaskSubmit #qProject=test1 #qDSInput=MC8.105001.pythia_minbias.py #qTaskName=test1.105001.pythia_minbias.evgen.e389 #qTaskTRF=csc_evgen08new_trf.py #qTaskTRFVersion=14.2.24.3 #qSWRelease=14.2.24 #qMail=borut.kersevan%40ijs.si #qCPUJob=30 #qRAMJob=1000 # outputs['qFormats']='EVNT' # outputs['qDSFFile']='1' # outputs['qDSNFiles']='1' # outputs['qTRFCache']='AtlasProduction' # outputs['qJO1']='EvgenJobOpts-00-01-12.tar.gz' # outputs['qJO2']='None' # outputs['qJO3']='0' # outputs['pList']='EvgenJobOpts,Inputfile base,SeedOffset' # outputs['qTaskREvents']='-1' # outputs['qTaskNEvents']='50000' # outputs['qTaskFEvents']='5000' # outputs['qPriority']='700' # outputs['qTaskGrid']='panda' # outputs['qDSPhLong']='testing' # outputs['qProjectMode']='default' # outputs['qphysgroup']='physics' # outputs['task_request_email']='TaskSubmit' # outputs['qProject']='test1' # outputs['qDSInput']='MC8.105001.pythia_minbias.py' # outputs['qTaskName']='test1.105001.pythia_minbias.evgen.e389' # outputs['qTaskTRF']='csc_evgen08new_trf.py' # outputs['qTaskTRFVersion']='14.2.24.3' # outputs['qSWRelease']='14.2.24' # outputs['qMail']='borut.kersevan@ijs.si' # outputs['qCPUJob']='30' # outputs['qRAMJob']='1000'