// //
/////////////////////////////////////////////////////////////////////////////////////////////////
-
+#include <cstdlib>
#include <TGrid.h>
#include <TGridResult.h>
#include <TFile.h>
AliInfo(Form("gGrid = %x; fGridUrl = %s; gGrid->GridUrl() = %s",gGrid,fGridUrl.Data(), gGrid->GridUrl()));
AliInfo(Form("fUser = %s; gGrid->GetUser() = %s",fUser.Data(), gGrid->GetUser()));
}
+ AliDebug(2,Form("1. Grid Url = %s",fGridUrl.Data()));
+ if (fGridUrl == "raw://") fGridUrl = "alien://";
+ AliDebug(2,Form("2. Grid Url = %s (should be different from previous in cas eof raw)", fGridUrl.Data()));
TGrid::Connect(fGridUrl.Data(),fUser.Data());
}
}
delete res;
+ // GRP entries with explicitly set version escape default incremental versioning
+ if(id.GetPath().Contains("GRP") && id.HasVersion() && lastVersion!=0)
+ {
+ AliDebug(5,Form("Entry %s won't be put in the destination OCDB", id.ToString().Data()));
+ return kFALSE;
+ }
+
id.SetVersion(lastVersion + 1);
id.SetSubVersion(0);
AliDebug(2,Form("pattern: %s", pattern.Data()));
TGridResult *res = gGrid->Query(fDBFolder, pattern, filter, "");
- AliCDBId validFileId;
- for(int i=0; i<res->GetEntries(); i++){
- TString filename = res->GetKey(i, "lfn");
- if(filename == "") continue;
- if(FilenameToId(filename, validFileId))
- validFileIds.AddLast(validFileId.Clone());
- }
- delete res;
+ if (res) {
+ AliCDBId validFileId;
+ for(int i=0; i<res->GetEntries(); i++){
+ TString filename = res->GetKey(i, "lfn");
+ if(filename == "") continue;
+ if(FilenameToId(filename, validFileId))
+ validFileIds.AddLast(validFileId.Clone());
+ }
+ delete res;
+ }
dataId = GetId(validFileIds, selectedId);
}
// check if the string is valid Grid URI
TRegexp gridPattern("^alien://.+$");
+ TRegexp gridRawPattern("^raw://.+$");
- return TString(gridString).Contains(gridPattern);
+ return (TString(gridString).Contains(gridPattern)||TString(gridString).Contains(gridRawPattern));
}
//_____________________________________________________________________________
}
TString buffer(gridString);
+ Bool_t rawFlag = kFALSE; // flag to say whether we are in the "raw://" case
TString gridUrl = "alien://";
TString user = "";
if(entry.BeginsWith("alien://")) { // maybe it's a gridUrl!
gridUrl = entry;
continue;
+ } else if(entry.BeginsWith("raw://")) { // maybe it's a gridRawUrl!
+ gridUrl = entry;
+ rawFlag = kTRUE;
+ continue;
} else {
AliError(Form("Invalid entry! %s",entry.Data()));
continue;
AliDebug(2, Form("local cache size: %d", cacheSize));
AliDebug(2, Form("local cache cleanup interval: %d", cleanupInterval));
- if(dbFolder == ""){
+ if(dbFolder == "" && !rawFlag){
AliError("Base folder must be specified!");
return NULL;
}
fDBFolder.Data(), fSE.Data(), fCacheFolder.Data(),
fOperateDisconnected, fCacheSize, fCleanupInterval);
+ AliDebug(2,Form("uri = %s", uri.Data()));
SetURI(uri.Data());
}