// look for filename matching query (called by GetEntryId)
// if querying for fRun and not specifying a version, look in the fValidFileIds list
- if(query.GetFirstRun() == fRun && !query.HasVersion()) {
+ if(!AliCDBManager::Instance()->GetCvmfsOcdbTag().IsNull() && query.GetFirstRun() == fRun && !query.HasVersion()) {
+ //if(query.GetFirstRun() == fRun && !query.HasVersion()) {
// get id from fValidFileIds
TIter iter(&fValidFileIds);
AliCDBId* result=0;
while((anIdPtr = dynamic_cast<AliCDBId*> (iter.Next()))){
- if(anIdPtr->GetPath() != query.GetPath()) continue;
- result = anIdPtr;
+ if(anIdPtr->GetPath() == query.GetPath()){
+ result = anIdPtr;
+ break;
+ }
}
- return result;
+ if (result)
+ return dynamic_cast<AliCDBId*> (result->Clone());
}
// otherwise browse in the local filesystem CDB storage
ifstream *file = new ifstream(runValidFile.Data());
if (!*file) {
AliFatal(Form("Error opening file \"%s\"!", runValidFile.Data()));
- file->close();
- delete file;
}
TString filepath;
while (filepath.ReadLine(*file)) {
ifstream *file = new ifstream(inoutFile.Data());
if (!*file) {
AliFatal(Form("Error opening file \"%s\"!", inoutFile.Data()));
- file->close();
- delete file;
}
TString lhcPeriod;
TObjArray* oStringsArray = 0;
return;
}
-
AliCDBPath aPath(calibType);
if(!aPath.IsValid()){
AliError(Form("Not a valid path: %s", calibType));
AliDebug(2,Form("Querying specific storage %s",aCalibType->GetName()));
AliCDBStorage *aStorage = GetStorage(aPar);
if(aStorage->GetType() == "alien" || aStorage->GetType() == "local"){
- aStorage->QueryCDB(fRun,aCalibType->GetName());
+ aStorage->QueryCDB(fRun, aCalibType->GetName());
} else {
AliDebug(2,
"Skipping query for valid files, it is used only in grid...");
Int_t GetStartRunLHCPeriod();
Int_t GetEndRunLHCPeriod();
TString GetLHCPeriod();
+ TString GetCvmfsOcdbTag() const {return fCvmfsOcdb;}
Bool_t DiffObjects(const char *cdbFile1, const char *cdbFile2) const;
AliInfo(Form("Querying files valid for run %d and path \"%s\" into CDB storage \"%s://%s\"",
fRun, pathFilter, fType.Data(), fBaseFolder.Data()));
- // Clear fValidFileIds list (it cannot be filled twice!
- AliDebug(2, "Clearing list of CDB Id's previously loaded");
- fValidFileIds.Clear();
+ // In fValidFileIds, clear id for the same 3level path, if any
+ AliDebug(3, Form("Clearing list of CDB Id's previously loaded for path \"%s\"", pathFilter));
+ AliCDBPath filter(pathFilter);
+ for (Int_t i=0; i<fValidFileIds.GetEntries(); ++i) {
+ AliCDBId *rmMe = dynamic_cast<AliCDBId*>(fValidFileIds.At(i));
+ AliCDBPath rmPath = rmMe->GetAliCDBPath();
+ if (filter.Comprises(rmPath)) {
+ AliDebug(3,Form("Removing id \"%s\" matching: \"%s\"", rmPath.GetPath().Data(), pathFilter));
+ delete fValidFileIds.RemoveAt(i);
+ }
+ }
if(fMetaDataFilter) {delete fMetaDataFilter; fMetaDataFilter=0;}
if(md) fMetaDataFilter = dynamic_cast<AliCDBMetaData*> (md->Clone());
QueryValidFiles();
- AliInfo(Form("%d valid files found!", fValidFileIds.GetEntriesFast()));
+ AliInfo(Form("%d valid files found!", fValidFileIds.GetEntries()));
}