possibility to set mirror SE at the menager level, not only for a single Put
authorrgrosso <rgrosso@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 30 Aug 2012 10:19:46 +0000 (10:19 +0000)
committerrgrosso <rgrosso@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 30 Aug 2012 10:19:46 +0000 (10:19 +0000)
STEER/CDB/AliCDBManager.cxx
STEER/CDB/AliCDBManager.h

index d9524b76936ec3d8951916b90e6b3de092ad02dc..4acc838442d430952f1f23f52e27d25b12500606 100644 (file)
@@ -297,6 +297,7 @@ AliCDBManager::AliCDBManager():
   fCondParam(0),
   fRefParam(0),
   fRun(-1),
   fCondParam(0),
   fRefParam(0),
   fRun(-1),
+  fMirrorSEs(""),
   fCache(kTRUE),
   fLock(kFALSE),
   fSnapshotMode(kFALSE),
   fCache(kTRUE),
   fLock(kFALSE),
   fSnapshotMode(kFALSE),
@@ -1276,7 +1277,12 @@ Bool_t AliCDBManager::Put(AliCDBEntry* entry, const char* mirrors, DataType type
 
        AliDebug(2,Form("Storing object into storage: %s", aStorage->GetURI().Data()));
 
 
        AliDebug(2,Form("Storing object into storage: %s", aStorage->GetURI().Data()));
 
-       Bool_t result = aStorage->Put(entry, mirrors, type);
+       TString strMirrors(mirrors);
+       Bool_t result = "kFALSE";
+       if(!strMirrors.IsNull() && !strMirrors.IsWhitespace())
+           result = aStorage->Put(entry, mirrors, type);
+       else
+           result = aStorage->Put(entry, fMirrorSEs, type);
 
        if(fRun >= 0) QueryCDB();
 
 
        if(fRun >= 0) QueryCDB();
 
index c1ae71ed43866e6b4e47d497168fcdbfbc1b5e7a..c262dbbca78c92a40733899b3f2c4f1a3e687a7f 100644 (file)
@@ -103,6 +103,9 @@ class AliCDBManager: public TObject {
        void SetRun(Int_t run);
        Int_t GetRun() const {return fRun;}
 
        void SetRun(Int_t run);
        Int_t GetRun() const {return fRun;}
 
+       void SetMirrorSEs(const char* mirrors){fMirrorSEs=mirrors;}
+       const char* GetMirrorSEs() const {return fMirrorSEs;}
+
        void DestroyActiveStorages();
        void DestroyActiveStorage(AliCDBStorage* storage);
 
        void DestroyActiveStorages();
        void DestroyActiveStorage(AliCDBStorage* storage);
 
@@ -182,6 +185,7 @@ protected:
        AliCDBParam* fRefParam;         // Reference data storage parameters
 
        Int_t fRun;                     //! The run number
        AliCDBParam* fRefParam;         // Reference data storage parameters
 
        Int_t fRun;                     //! The run number
+       const char* fMirrorSEs;         //! List of SEs used in case we are putting objects on an AliEn storage 
        Bool_t fCache;                  //! The cache flag
        Bool_t fLock;   //! Lock flag, if ON default storage and run number cannot be reset
 
        Bool_t fCache;                  //! The cache flag
        Bool_t fLock;   //! Lock flag, if ON default storage and run number cannot be reset