4 |
|
import popen2 |
5 |
|
import time |
6 |
|
|
7 |
< |
from MCPayloads.WorkflowSpec import WorkflowSpec |
8 |
< |
from MCPayloads.LFNAlgorithm import unmergedLFNBase, mergedLFNBase |
9 |
< |
from CMSConfigTools.CfgInterface import CfgInterface |
10 |
< |
from MCPayloads.DatasetExpander import splitMultiTier |
11 |
< |
import MCPayloads.WorkflowTools as WorkflowTools |
12 |
< |
import MCPayloads.UUID as MCPayloadsUUID |
7 |
> |
from ProdCommon.MCPayloads.WorkflowSpec import WorkflowSpec |
8 |
> |
from ProdCommon.MCPayloads.LFNAlgorithm import unmergedLFNBase, mergedLFNBase |
9 |
> |
from ProdCommon.CMSConfigTools.CfgInterface import CfgInterface |
10 |
> |
from ProdCommon.MCPayloads.DatasetExpander import splitMultiTier |
11 |
> |
import ProdCommon.MCPayloads.WorkflowTools as WorkflowTools |
12 |
> |
import ProdCommon.MCPayloads.UUID as MCPayloadsUUID |
13 |
> |
from ProdCommon.CMSConfigTools.CfgInterface import CfgInterface |
14 |
> |
|
15 |
> |
def checkPSetType (pycfg): |
16 |
> |
cfgInt = CfgInterface (pycfg, True) |
17 |
> |
for outModName, val in cfgInt.outputModules.items(): |
18 |
> |
datasets = val.datasets() |
19 |
> |
for outDataset in datasets: |
20 |
> |
if outDataset.has_key ('dataTier'): |
21 |
> |
return "NEW" |
22 |
> |
else: |
23 |
> |
return "OLD" |
24 |
> |
return "OLD" |
25 |
|
|
26 |
|
# Fixme: do the same for createProdWorkflow |
27 |
< |
def createPreProdWorkflow (pycfg = None, |
28 |
< |
psetHash = None, |
27 |
> |
def createPreProdWorkflow (PyCfg = None, |
28 |
> |
PSetHash = None, |
29 |
|
prodName = None, |
30 |
< |
version = None, |
30 |
> |
cmsswVersion = None, |
31 |
|
category = "PreProd", |
32 |
|
timestamp = int(time.time()), |
33 |
|
fakeHash = False, |
52 |
|
cmsRun.name = "cmsRun1" # every node in the workflow needs a unique name |
53 |
|
cmsRun.type = "CMSSW" # Nodes that are CMSSW based should set the name |
54 |
|
cmsRun.application["Project"] = "CMSSW" # project |
55 |
< |
cmsRun.application["Version"] = version # version |
55 |
> |
cmsRun.application["Version"] = cmsswVersion # version |
56 |
|
cmsRun.application["Architecture"] = "slc3_ia32_gcc323" # arch (not needed) |
57 |
|
cmsRun.application["Executable"] = "cmsRun" # binary name |
58 |
< |
cmsRun.configuration = pycfg # Python PSet file |
58 |
> |
cmsRun.configuration = PyCfg # Python PSet file |
59 |
|
|
60 |
|
|
61 |
|
# // |
108 |
|
guid = MCPayloadsUUID.uuidgen() |
109 |
|
if guid == None: |
110 |
|
guid = MCPayloadsUUID.uuid() |
111 |
< |
hashValue = "hash=%s;guid=%s" % (psetHash, guid) |
111 |
> |
hashValue = "hash=%s;guid=%s" % (PSetHash, guid) |
112 |
|
outDS['PSetHash'] = hashValue |
113 |
|
else: |
114 |
< |
outDS['PSetHash'] = psetHash |
114 |
> |
outDS['PSetHash'] = PSetHash |
115 |
|
datasetList.append(outDS.name()) |
116 |
|
|
117 |
|
stageOut = cmsRun.newNode("stageOut1") |
125 |
|
mergedLFNBase(spec) |
126 |
|
unmergedLFNBase(spec) |
127 |
|
|
128 |
< |
return spec.makeIMProv().makeDOMElement().toprettyxml() |
128 |
> |
return spec |