CMS 3D CMS Logo

Functions
popcon2dropbox Namespace Reference

Functions

def checkFile ()
 
def copy (args)
 
def run (args)
 
def saveFileForImportErrors (datef, withMetadata=False)
 
def upload (args)
 

Function Documentation

def popcon2dropbox.checkFile ( )

Definition at line 35 of file popcon2dropbox.py.

References harvestTrackValidationPlots.str.

Referenced by run().

35 def checkFile():
36  # check if the expected input file is there...
37  # exit code < 0 => error
38  # exit code = 0 => skip
39  # exit code = 1 => import
40  if not os.path.exists( dbFileName ):
41  logger.error('The file expected as an input %s has not been found.'%dbFileName )
42  return -1
43 
44  empty = True
45  try:
46  dbcon = sqlite3.connect( dbFileName )
47  dbcur = dbcon.cursor()
48  dbcur.execute('SELECT * FROM IOV')
49  rows = dbcur.fetchall()
50  for r in rows:
51  empty = False
52  dbcon.close()
53  if empty:
54  logger.warning('The file expected as an input %s contains no data. The import will be skipped.'%dbFileName )
55  return 0
56  return 1
57  except Exception as e:
58  logger.error('Check on input data failed: %s' %str(e))
59  return -2
60 
def popcon2dropbox.copy (   args)

Definition at line 123 of file popcon2dropbox.py.

References saveFileForImportErrors(), and harvestTrackValidationPlots.str.

Referenced by DigiCollectionFP420.add(), AlignmentSurfaceDeformations.add(), GeometricDet.addComponents(), MatacqProducer.addMatacqData(), AlignableExtras.alignmentErrors(), AlignableDet.alignmentErrors(), AlignableCSCEndcap.alignmentErrors(), AlignableDTBarrel.alignmentErrors(), AlignableComposite.alignmentErrors(), AlignableMuon.alignmentErrors(), AlignableTracker.alignmentErrors(), AlignableExtras.alignments(), AlignableDet.alignments(), AlignableCSCEndcap.alignments(), AlignableDTBarrel.alignments(), AlignableComposite.alignments(), AlignableMuon.alignments(), AlignableTracker.alignments(), LHEWriter.analyze(), DTResidualCalibration.analyze(), DTEfficiencyTask.analyze(), DTResolutionAnalysisTask.analyze(), FFTJetImageRecorder.analyze(), FFTJetPileupAnalyzer.analyze(), GeometryAligner.applyAlignments(), SegmentsTrackAssociator.associate(), GeometryAligner.attachSurfaceDeformations(), EmbeddingLHEProducer.beginRunProduce(), ecaldqm::MESetNonObject.book(), ecaldqm::MESetEcal.book(), L1ExtraDQM::L1ExtraMonElement< CollectionType >.bookhistograms(), MuonTransientTrackingRecHitBreaker.breakInSubRecHits(), CSCGeometryParsFromDD.build(), SiStripFedCabling.buildFedCabling(), DTCombinatorialPatternReco4D.buildPhiSuperSegmentsCandidates(), DTMeantimerPatternReco4D.buildPhiSuperSegmentsCandidates(), DTCombinatorialPatternReco.buildPointsCollection(), DTCombinatorialExtendedPatternReco.buildPointsCollection(), FWDTSegmentProxyBuilder.buildViewType(), lumi::LumiSectionData.bunchCrossingInfo(), reco::FlavorHistoryEvent.cache(), ecaldqm::MESetNonObject.clone(), ecaldqm::MESetDet2D.clone(), ecaldqm::MESetProjection.clone(), ecaldqm::MESetDet1D.clone(), ecaldqm::MESetDet0D.clone(), ecaldqm::MESetTrend.clone(), ecaldqm::MESetEcal.clone(), ecaldqm::MESetMulti.clone(), ecaldqm::MESet.clone(), CmsShowMainFrame.CmsShowMainFrame(), EcalGlobalShowerContainmentCorrectionsVsEta::Coefficients.Coefficients(), EcalShowerContainmentCorrections::Coefficients.Coefficients(), SiStripProcessedRawDigiProducer.common_process(), CompoundPseudoJet.CompoundPseudoJet(), CompoundPseudoSubJet.CompoundPseudoSubJet(), DTCalibValidation.compute(), EcalDccWeightBuilder.computeAllWeights(), OMTFConfiguration.configure(), Measurement.construct(), DDHGCalModule.constructLayers(), DDHGCalModuleAlgo.constructLayers(), DDHGCalEEAlgo.constructLayers(), DDHGCalHEAlgo.constructLayers(), edm.copy_all(), copy_and_sort_vector(), MuonAlignment.copyAlignmentToSurvey(), PFBenchmarkAlgo.copyCollection(), Vispa.Main.Application.Application.copyEvent(), Measurement.copyMeas(), EcalDBCopy.copyToDB(), TruncatedPyramid.createCorners(), sistrip::DetSetVectorFiller< T, dsvIsSparse >.createDetSetVector(), align.createPoints(), TGeoMgrFromDdd.createShape(), TGeoFromDddService.createShape(), AlignableMuon.cscAlignmentErrorsExtended(), AlignableMuon.cscAlignments(), AlignableMuon.CSCChambers(), AlignableMuon.CSCEndcaps(), AlignableMuon.CSCRings(), AlignableMuon.CSCStations(), DetGeomDesc.deepComponents(), HGCalSimHitValidation.defineGeometry(), edm::StreamerInputSource.deserializeEvent(), magfieldparam::rz_poly.Diff(), reco::DiscretizedEnergyFlow.DiscretizedEnergyFlow(), FWLiteJobMetadataManager.doUpdate(), AlignableMuon.DTBarrel(), AlignableMuon.DTChambers(), AlignableMuon.DTStations(), AlignableMuon.DTWheels(), LHEWriter.endRun(), PhysicsTools::Interceptor.eval(), EventMsgBuilder.EventMsgBuilder(), eventSetupComponent(), DDTIDModulePosAlgo.execute(), DDPixBarStackTrigLayerAlgo.execute(), DDHGCalWaferAlgo.execute(), DDPixBarLayerAlgo.execute(), DDPixBarLayerUpgradeAlgo.execute(), DDPixFwdDiskAlgo.execute(), DDPixPhase1FwdDiskAlgo.execute(), DDTrackerLinearXY.execute(), DDTrackerXYZPosAlgo.execute(), DDTrackerZPosAlgo.execute(), DDPixBarLayerUpgradeAlgoCoverage.execute(), DDHCalFibreBundle.execute(), DDHCalLinearXY.execute(), DDTrackerAngular.execute(), DDTrackerAngularV1.execute(), DDLinear.execute(), DDAngular.execute(), DDTrackerRingAlgo.execute(), DDPixFwdBlades.execute(), reco::FFTJetProducerSummary.FFTJetProducerSummary(), Measurement.fillData(), MuonShowerInformationFiller.fillHitsByStation(), CSCHitFromStripOnly.fillPulseHeights(), DTNewROS8FileReader.fillRawData(), DTROS8FileReader.fillRawData(), DTDDUFileReader.fillRawData(), DTROS25FileReader.fillRawData(), DTSpyReader.fillRawData(), reco::modules::JetFlavourIdentifier.findCandidates(), DTCombinatorialPatternReco.findCompatibleHits(), DTCombinatorialExtendedPatternReco.findCompatibleHits(), CSCHitFromStripOnly.findHitOnStripPosition(), SequentialPartitionGenerator.first_part(), ecaldqm::binning.formAxis(), edm.get_underlying_safe(), EcalBarrelGeometry.getClosestCell(), ROOT::Math::Transform3DPJ.GetComponents(), DTTimeBoxFitter.getFitSeeds(), WatcherStreamFileReader.getInputFile(), HcalO2OManager.getListOfNewIovs_test(), MsgTools.getNames(), edm::ParameterSet.getParameterNamesForType(), PhysicsPerformancePayload.getRow(), METCorrectorParametersCollection.getSections(), JetCorrectorParametersCollection.getSections(), TrackTransformerForGlobalCosmicMuons.getTransientRecHits(), TrackTransformerForCosmicMuons.getTransientRecHits(), l1t::Parameter.getVector(), FedRawDataInputSource.grabNextJsonFile(), HcalLogicalMap.HcalLogicalMap(), EventMsgView.hltTriggerBits(), edm::RangeMap< int, std::vector< float >, edm::CopyPolicy< float > >.ids(), EcalSRCondTools.importParameterSet(), gen::JetMatchingAlpgen.init(), SimHitMatcher.init(), RecoIdealGeometry.insert(), edm::helper::Filler< Association< C > >.insert(), SiPixelClusterShapeCache.insert(), Phase2ITPixelClusterShapeCache.insert(), edmNew::DetSetVector< edm::Ref< edmNew::DetSetVector< SiStripCluster >, SiStripCluster, edmNew::DetSetVector< SiStripCluster >::FindForDetSetVector > >.insert(), magfieldparam::rz_poly.Int(), MatacqTBDataFormatter.interpretRawData(), MatacqDataFormatter.interpretRawData(), lhef::LHERunInfo.LHERunInfo(), CaloTowerHardcodeGeometryLoader.load(), HcalGeomParameters.loadGeometry(), HGCalGeomParameters.loadGeometryHexagon(), HGCalGeomParameters.loadGeometrySquare(), edm::MapOfVectors< std::string, AnalysisDescription * >.loadNext(), HGCalGeomParameters.loadWaferHexagon(), OptoScanTask.locateTicks(), MagFieldConfig.MagFieldConfig(), make_array(), CSCHitFromStripOnly.makeStripData(), reco::tau::RecoTauIsolationMasking.mask(), SiStripRecHitConverterAlgorithm.match(), GEMDigiMatcher.matchDigisToSimTrack(), GEMDigiMatcher.matchPadsToSimTrack(), GEMRecHitMatcher.matchRecHitsToSimTrack(), LHERunInfoProduct.mergeProduct(), MuRodBarrelLayer.MuRodBarrelLayer(), SequentialCombinationGenerator< T >.next_combi(), SequentialPartitionGenerator.next_part(), SequentialCombinationGenerator< T >.next_subset(), nonProducerComponent(), reco::tau::RecoTauPhotonFilter.operator()(), reco::tau::RecoTauElectronRejectionPlugin.operator()(), reco::TrackKinematics.operator+(), Json::ValueIteratorBase.operator-(), operator<<(), EcalGlobalShowerContainmentCorrectionsVsEta::Coefficients.operator=(), EcalShowerContainmentCorrections::Coefficients.operator=(), PhysicsTools::MVAComputer::DerivContext.output(), l1t::Parameter.Parameter(), edm.ParameterSet::getParameterNamesForType< std::vector< PdtEntry > >(), AlpgenHeader.parse(), PartitionGenerator.partitions(), CmsTrackerPhase1DiskBuilder.PhiPosNegSplit_innerOuter(), CmsTrackerPhase2TPDiskBuilder.PhiPosNegSplit_innerOuter(), fftjetcms::Polynomial.Polynomial(), DDHGCalModuleAlgo.positionSensitive(), DDHGCalModule.positionSensitive(), L1GtConditionEvaluation.print(), l1t::ConditionEvaluation.print(), GlobalObjectMap.print(), FillInfo.print(), L1GlobalTriggerObjectMap.print(), SiStripQuality.printActiveFedsInfo(), L1RCTProducer.printFedVector(), MagGeoBuilderFromDDD::volumeHandle.printUniqueNames(), sistrip::SpyDigiConverter.processFED(), MuonSeedOrcaPatternRecognition.produce(), EcalBasicClusterLocalContCorrectionsESProducer.produce(), DTRecSegment4DProducer.produce(), reco::tautools::CopyProducer< Collection >.produce(), pat::L1MuonMatcher.produce(), EcalGlobalShowerContainmentCorrectionsVsEtaESProducer.produce(), CSCTFPacker.produce(), EcalShowerContainmentCorrectionsESProducer.produce(), ReducedRecHitCollectionProducer.produce(), DTRecSegment2DExtendedProducer.produce(), EmbeddingLHEProducer.produce(), EcalTrivialConditionRetriever.produceEcalSamplesCorrelation(), EcalTrivialConditionRetriever.produceEcalTimeBiasCorrections(), HcalAlignmentEP.produceHcalAli(), edm::DataFrameContainer.push_back(), MuonDigiCollection< CSCDetId, CSCCLCTDigi >.put(), SurveyPxbImageReader< T >.read(), DTCalibrationMap.readConsts(), RunInfoRead.readData(), LmfSource.readEventWithinFile(), EcalTBReadout.readOut(), Model.readSystemDescription(), DTRefitAndCombineReco4D.refitSuperSegments(), own_ptr< std::ifstream >.release(), HGCalDDDConstants.rowColumnWafer(), run(), magfieldparam::rz_poly.rz_poly(), edm::Schedule.Schedule(), SeedTransformer.seedTransform(), edm::StreamerOutputModuleBase.serializeEvent(), edm::StreamerOutputModuleBase.serializeRegistry(), edm::DataFrameContainer.set_back(), lumi::LumiSectionData.setBunchCrossingData(), lumi::LumiSectionData.setHLTData(), lumi::LumiSectionData.setTriggerData(), PhysicsTools::MVAComputer.setup(), DQMStore.showDirStructure(), SiStripDetInfoFileReader.SiStripDetInfoFileReader(), SiStripHashedDetId.SiStripHashedDetId(), cond::SmallWORMDict.SmallWORMDict(), edm::DataFrameContainer.sort(), MuonDetLayerGeometry.sortLayers(), TrackerGeometryCompare.surveyToTracker(), edm::SystemTimeKeeper.SystemTimeKeeper(), topLevelPSet(), TrackerStablePhiSort(), reco::TrackExtrapolation.TrackExtrapolation(), TrackMVAClassifierBase.TrackMVAClassifierBase(), TrackTransformerForCosmicMuons.transform(), edm::TransientDataFrame< SIZE >.TransientDataFrame(), MuonTransientTrackingRecHit.transientHits(), MuonTrackLoader.unpackHit(), l1t::stage2.unpacking(), PrintGeomInfoAction.update(), PrintGeomMatInfo.update(), sistrip::RawToDigiUnpacker.update(), Version.Version(), AdaptiveVertexReconstructor.vertices(), HGCalDDDConstants.volumes(), DTCalibrationMap.writeConsts(), EcalDccWeightBuilder.writeWeightToRootFile(), and ext::basic_omemstream< Item_t, Traits_t, Allocator_t >.xsputn().

123 def copy( args ):
124  destDb = args.destDb
125  destTag = args.destTag
126  comment = args.comment
127 
128  datef = datetime.now()
129  destMap = { "oracle://cms_orcoff_prep/cms_conditions": "oradev", "oracle://cms_orcon_prod/cms_conditions": "onlineorapro" }
130  if destDb.lower() in destMap.keys():
131  destDb = destMap[destDb.lower()]
132  else:
133  logger.error( 'Destination connection %s is not supported.' %destDb )
134  return
135  # run the copy
136  note = '"Importing data with O2O execution"'
137  commandOptions = '--force --yes --db %s copy %s %s --destdb %s --synchronize --note %s' %(dbFileName,destTag,destTag,destDb,note)
138  copyCommand = 'conddb %s' %commandOptions
139  logger.info( 'Executing command: %s' %copyCommand )
140  try:
141  pipe = subprocess.Popen( copyCommand, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
142  stdout = pipe.communicate()[0]
143  print stdout
144  retCode = pipe.returncode
145  if retCode != 0:
146  saveFileForImportErrors( datef )
147  ret = retCode
148  except Exception as e:
149  ret = 1
150  logger.error( str(e) )
151  return ret
152 
def saveFileForImportErrors(datef, withMetadata=False)
def popcon2dropbox.run (   args)

Definition at line 153 of file popcon2dropbox.py.

References checkFile(), copy(), and upload().

153 def run( args ):
154  if args.auth is not None and not args.auth=='':
155  if auth_path_key in os.environ:
156  logger.warning("Cannot set authentication path to %s in the environment, since it is already set." %args.auth)
157  else:
158  logger.info("Setting the authentication path to %s in the environment." %args.auth)
159  os.environ[auth_path_key]=args.auth
160  if os.path.exists( '%s.db' %dbName ):
161  logger.info("Removing files with name %s" %dbName )
162  os.remove( '%s.db' %dbName )
163  if os.path.exists( '%s.txt' %dbName ):
164  os.remove( '%s.txt' %dbName )
165  command = 'cmsRun %s ' %args.job_file
166  command += ' destinationDatabase=%s' %args.destDb
167  command += ' destinationTag=%s' %args.destTag
168  command += ' 2>&1'
169  pipe = subprocess.Popen( command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
170  stdout = pipe.communicate()[0]
171  retCode = pipe.returncode
172  print stdout
173  logger.info('PopCon Analyzer return code is: %s' %retCode )
174  if retCode!=0:
175  logger.error( 'O2O job failed. Skipping upload.' )
176  return retCode
177 
178  ret = checkFile()
179  if ret < 0:
180  return ret
181  elif ret == 0:
182  return 0
183  if args.copy:
184  return copy( args )
185  return upload( args )
186 
def upload(args)
def popcon2dropbox.saveFileForImportErrors (   datef,
  withMetadata = False 
)

Definition at line 61 of file popcon2dropbox.py.

Referenced by copy(), and upload().

61 def saveFileForImportErrors( datef, withMetadata=False ):
62  # save a copy of the files in case of upload failure...
63  leafFolderName = datef.strftime(dateformatForFolder)
64  fileFolder = os.path.join( errorInImportFileFolder, leafFolderName)
65  if not os.path.exists(fileFolder):
66  os.makedirs(fileFolder)
67  df= '%s.db' %dbName
68  dataDestFile = os.path.join( fileFolder, df)
69  if not os.path.exists(dataDestFile):
70  shutil.copy2(df, dataDestFile)
71  if withMetadata:
72  mf= '%s.txt' %dbName
73  metadataDestFile = os.path.join( fileFolder, mf )
74  if not os.path.exists(metadataDestFile):
75  shutil.copy2(df, metadataDestFile)
76  logger.error("Upload failed. Data file and metadata saved in folder '%s'" %os.path.abspath(fileFolder))
77 
def saveFileForImportErrors(datef, withMetadata=False)
def popcon2dropbox.upload (   args)

Definition at line 78 of file popcon2dropbox.py.

References saveFileForImportErrors(), and harvestTrackValidationPlots.str.

Referenced by run().

78 def upload( args ):
79  destDb = args.destDb
80  destTag = args.destTag
81  comment = args.comment
82 
83  datef = datetime.now()
84 
85  # first remove any existing metadata file...
86  if os.path.exists( '%s.txt' %dbName ):
87  logger.debug('Removing already existing file %s' %dbName)
88  os.remove( '%s.txt' %dbName )
89 
90  # dump Metadata for the Upload
91  uploadMd = {}
92  uploadMd['destinationDatabase'] = destDb
93  tags = {}
94  tagInfo = {}
95  tags[ destTag ] = tagInfo
96  uploadMd['destinationTags'] = tags
97  uploadMd['inputTag'] = destTag
98  uploadMd['since'] = None
99  datelabel = datef.strftime(dateformatForLabel)
100  commentStr = ''
101  if not comment is None:
102  commentStr = comment
103  uploadMd['userText'] = '%s : %s' %(datelabel,commentStr)
104  with open( '%s.txt' %dbName, 'wb') as jf:
105  jf.write( json.dumps( uploadMd, sort_keys=True, indent = 2 ) )
106  jf.write('\n')
107 
108  # run the upload
109  uploadCommand = 'uploadConditions.py %s' %dbName
110  try:
111  pipe = subprocess.Popen( uploadCommand, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
112  stdout = pipe.communicate()[0]
113  print stdout
114  retCode = pipe.returncode
115  if retCode != 0:
116  saveFileForImportErrors( datef, True )
117  ret |= retCode
118  except Exception as e:
119  ret |= 1
120  logger.error(str(e))
121  return ret
122 
def upload(args)
def saveFileForImportErrors(datef, withMetadata=False)