CMS 3D CMS Logo

Functions
popcon2dropbox Namespace Reference

Functions

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

Function Documentation

def popcon2dropbox.checkFile (   dbName)

Definition at line 31 of file popcon2dropbox.py.

References str.

Referenced by run().

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

Definition at line 121 of file popcon2dropbox.py.

References saveFileForImportErrors(), and str.

Referenced by __assert_no_abort(), PreMixingCaloParticleWorker.add(), DigiCollectionFP420.add(), AlignmentSurfaceDeformations.add(), GeometricDet.addComponents(), MatacqProducer.addMatacqData(), PreMixingDigiSimLinkWorker< DigiSimLinkCollection >.addPileups(), nanoaod::MergeableCounterTable.addVFloat(), nanoaod::MergeableCounterTable.addVInt(), algorithm(), 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(), HGCalGeometryLoader.build(), 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::MESetDet0D.clone(), ecaldqm::MESetDet1D.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(), DDAHcalModuleAlgo.constructLayers(), DDHGCalModule.constructLayers(), DDHGCalModuleAlgo.constructLayers(), DDHGCalTBModule.constructLayers(), DDHGCalEEAlgo.constructLayers(), DDHGCalHEAlgo.constructLayers(), edm.copy_all(), copy_and_sort_vector(), o2o_helper.copy_payload(), MuonAlignment.copyAlignmentToSurvey(), PFBenchmarkAlgo.copyCollection(), Vispa.Main.Application.Application.copyEvent(), edm::soa::Table< Args >.copyFromToWithResize(), Measurement.copyMeas(), EcalDBCopy.copyToDB(), TruncatedPyramid.createCorners(), sistrip::DetSetVectorFiller< T, dsvIsSparse >.createDetSetVector(), genericValidation.ValidationWithPlots.createPlottingScript(), 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(), genericValidation.ValidationWithComparison.doComparison(), FWLiteJobMetadataManager.doUpdate(), AlignableMuon.DTBarrel(), AlignableMuon.DTChambers(), AlignableMuon.DTStations(), AlignableMuon.DTWheels(), BeamFitter.dumpTxtFile(), empty(), MuonSeedOrcaPatternRecognition.endcapPatterns(), LHEWriter.endRun(), PhysicsTools::Interceptor.eval(), EventMsgBuilder.EventMsgBuilder(), eventSetupComponent(), DDHGCalWafer8.execute(), DDTIDModulePosAlgo.execute(), DDHGCalWafer.execute(), DDHGCalWaferAlgo.execute(), DDPixBarLayerUpgradeAlgo.execute(), DDPixFwdDiskAlgo.execute(), DDPixPhase1FwdDiskAlgo.execute(), DDTrackerLinearXY.execute(), DDPixBarLayerAlgo.execute(), DDTrackerXYZPosAlgo.execute(), DDTrackerZPosAlgo.execute(), DDTrackerAngularV1.execute(), DDHCalFibreBundle.execute(), DDHCalLinearXY.execute(), DDTrackerAngular.execute(), DDLinear.execute(), DDAngular.execute(), DDTrackerRingAlgo.execute(), DDPixFwdBlades.execute(), EMTFSubsystemCollector.extractPrimitives(), reco::FFTJetProducerSummary.FFTJetProducerSummary(), Measurement.fillData(), MuonShowerInformationFiller.fillHitsByStation(), CSCHitFromStripOnly.fillPulseHeights(), DTNewROS8FileReader.fillRawData(), DTROS8FileReader.fillRawData(), DTDDUFileReader.fillRawData(), DTROS25FileReader.fillRawData(), DTSpyReader.fillRawData(), CaloTruthAccumulator.finalizeEvent(), reco::modules::JetFlavourIdentifier.findCandidates(), DTCombinatorialPatternReco.findCompatibleHits(), DTCombinatorialExtendedPatternReco.findCompatibleHits(), CSCHitFromStripOnly.findHitOnStripPosition(), SequentialPartitionGenerator.first_part(), ecaldqm::binning.formAxis(), edm.get_underlying_safe(), EcalBarrelGeometry.getClosestCell(), genericValidation.GenericValidation.getCompareStrings(), ROOT::Math::Transform3DPJ.GetComponents(), l1t::stage2::GTCollections.getEGammas(), l1t::stage2::GTCollections.getEtSums(), DTTimeBoxFitter.getFitSeeds(), WatcherStreamFileReader.getInputFile(), l1t::stage2::GTCollections.getJets(), l1t::stage2::GTCollections.getMuons(), l1t::stage2::GMTCollections.getMuons(), MsgTools.getNames(), edm::ParameterSet.getParameterNamesForType(), PhysicsPerformancePayload.getRow(), METCorrectorParametersCollection.getSections(), JetCorrectorParametersCollection.getSections(), l1t::stage2::GTCollections.getTaus(), TrackTransformerForGlobalCosmicMuons.getTransientRecHits(), TrackTransformerForCosmicMuons.getTransientRecHits(), l1t::Parameter.getVector(), evf::EvFDaqDirector.grabNextJsonFileAndUnlock(), 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(), Phase2ITPixelClusterShapeCache.insert(), SiPixelClusterShapeCache.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.loadGeometryHexagon8(), 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(), PhiMemoryImage.PhiMemoryImage(), CmsTrackerPhase1DiskBuilder.PhiPosNegSplit_innerOuter(), CmsTrackerPhase2TPDiskBuilder.PhiPosNegSplit_innerOuter(), fftjetcms::Polynomial.Polynomial(), DDHGCalHEAlgo.positionMix(), DDAHcalModuleAlgo.positionSensitive(), DDHGCalModule.positionSensitive(), DDHGCalModuleAlgo.positionSensitive(), DDHGCalTBModule.positionSensitive(), DDHGCalEEAlgo.positionSensitive(), DDHGCalHEAlgo.positionSensitive(), edm::PreMixingModule.PreMixingModule(), L1GtConditionEvaluation.print(), l1t::ConditionEvaluation.print(), GlobalObjectMap.print(), L1GlobalTriggerObjectMap.print(), FillInfo.print(), LHCInfo.print(), SiStripQuality.printActiveFedsInfo(), L1RCTProducer.printFedVector(), MagGeoBuilderFromDDD::volumeHandle.printUniqueNames(), sistrip::SpyDigiConverter.processFED(), MuonSeedOrcaPatternRecognition.produce(), PFMuonUntagger.produce(), EcalBasicClusterLocalContCorrectionsESProducer.produce(), PFCandidateMuonUntagger.produce(), DTRecSegment4DProducer.produce(), reco::tautools::CopyProducer< Collection >.produce(), CSCTFPacker.produce(), EcalGlobalShowerContainmentCorrectionsVsEtaESProducer.produce(), pat::L1MuonMatcher.produce(), EcalShowerContainmentCorrectionsESProducer.produce(), ReducedRecHitCollectionProducer.produce(), DTRecSegment2DExtendedProducer.produce(), PFCandidateRecalibrator.produce(), EmbeddingLHEProducer.produce(), EcalTrivialConditionRetriever.produceEcalSamplesCorrelation(), EcalTrivialConditionRetriever.produceEcalTimeBiasCorrections(), HcalAlignmentEP.produceHcalAli(), FQueue< T >.push_back(), edm::DataFrameContainer.push_back(), MuonDigiCollection< uint16_t, GEMGEBStatusDigi >.put(), SurveyPxbImageReader< T >.read(), DTCalibrationMap.readConsts(), RunInfoRead.readData(), LmfSource.readEventWithinFile(), EcalTBReadout.readOut(), Model.readSystemDescription(), DTRefitAndCombineReco4D.refitSuperSegments(), edm::soa::Table< Args >.resizeFromTo(), PhiMemoryImage.rotl(), PhiMemoryImage.rotr(), 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(), l1t::stage2::EGammaUnpacker.setEGammaCopy(), l1t::stage2::EtSumUnpacker.setEtSumCopy(), lumi::LumiSectionData.setHLTData(), l1t::stage2::JetUnpacker.setJetCopy(), l1t::stage2::MuonUnpacker.setMuonCopy(), 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_bmtf(), PrintGeomInfoAction.update(), SimG4FluxProducer.update(), HGCPassive.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().

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

Definition at line 155 of file popcon2dropbox.py.

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

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

Definition at line 58 of file popcon2dropbox.py.

Referenced by copy(), and upload().

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

Definition at line 75 of file popcon2dropbox.py.

References saveFileForImportErrors(), and str.

Referenced by run().

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