public:
enum DCSType {kAlias=0, kDP};
enum TestMode { kNone = 0, kSkipDCS = 1, kErrorDCS = 2, kErrorFXSSources = 4, kErrorFXSFiles = 8, kErrorOCDB = 16, kErrorStorage = 32, kErrorGrid = 64 };
+ enum EMailTarget { kDCSEMail = 0, kFXSEMail, kPPEMail };
AliShuttle(const AliShuttleConfig* config, UInt_t timeout = 5000, Int_t retries = 5);
virtual ~AliShuttle();
virtual TList* GetFileSources(Int_t system, const char* detector, const char* id = 0);
virtual TList* GetFileIDs(Int_t system, const char* detector, const char* source);
virtual const char* GetRunParameter(const char* lbEntry);
+ virtual UInt_t GetStartTimeDCSQuery();
+ virtual UInt_t GetEndTimeDCSQuery();
virtual AliCDBEntry* GetFromOCDB(const char* detector, const AliCDBPath& path);
virtual const char* GetRunType();
virtual Bool_t GetHLTStatus();
- virtual void Log(const char* detector, const char* message);
+ virtual const char* GetTriggerConfiguration();
+ virtual const char* GetCTPTimeParams();
+ virtual const char* GetTriggerDetectorMask();
+ virtual void Log(const char* detector, const char* message, UInt_t level=3);
void SetLogbookEntry(AliShuttleLogbookEntry* entry) {fLogbookEntry=entry;}
static void SetMainRefStorage (TString mainRefStorage) {fgkMainRefStorage = mainRefStorage;}
static void SetLocalRefStorage (TString localRefStorage) {fgkLocalRefStorage = localRefStorage;}
+ static void SetMirrorSEs (TString mirrors) {fgkMirrorSEs = mirrors;}
static void SetShuttleTempDir (const char* tmpDir);
static void SetShuttleLogDir (const char* logDir);
+ virtual void SendMLFromDet(const char* value);
+ virtual TString* GetLTUConfig(const char* det);
+
private:
AliShuttle(const AliShuttle& other);
AliShuttle& operator= (const AliShuttle& other);
- Bool_t ProcessCurrentDetector();
+ Int_t ProcessCurrentDetector();
AliShuttleLogbookEntry* QueryRunParameters(Int_t run);
Bool_t QueryShuttleLogbook(const char* whereClause, TObjArray& entries);
+ void CountOpenRuns();
Bool_t RetrieveConditionsData(const TObjArray& shuttleLogbookEntries);
TMap* GetValueSet(const char* host, Int_t port, const TSeqCollection* entries,
Bool_t RetrieveFile(UInt_t system, const char* daqFileName, const char* localFileName);
Bool_t UpdateTable();
+ Bool_t UpdateTableSkippedCase(const char* detector="ALL");
Bool_t UpdateTableFailCase();
Bool_t StoreLocally(const TString& localUri, const AliCDBPath& path, TObject* object,
AliCDBMetaData* metaData, Int_t validityStart = 0, Bool_t validityInfinite = kFALSE);
Bool_t StoreOCDB();
- Bool_t StoreOCDB(const TString& uri);
+ Int_t StoreOCDB(const TString& uri);
Bool_t CopyFileLocally(const char* localFile, const TString& target);
Bool_t CopyFilesToGrid(const char* type);
void CleanLocalStorage(const TString& uri);
Bool_t ContinueProcessing();
void UpdateShuttleStatus(AliShuttleStatus::Status newStatus, Bool_t increaseCount = kFALSE);
Bool_t UpdateShuttleLogbook(const char* detector, const char* status=0);
- Bool_t SendMail();
- Bool_t SendMailToDCS();
+ Bool_t SendMail(EMailTarget target, Int_t system = -1);
+ Int_t GetMem(Int_t pid);
TString GetLogFileName(const char* detector) const;
void SetLastAction(const char* action);
- void SendMLInfo();
+ void SendAlive();
+ void SendMLDetInfo();
+ void SendMLRunInfo(const char* status);
+ virtual Bool_t TouchFile();
const AliShuttleConfig* fConfig; // pointer to configuration object
AliShuttleLogbookEntry* fLogbookEntry; //! current Shuttle logbook entry
TString fCurrentDetector; // current detector
+ Bool_t fFirstProcessing; // processing this detector the first time in this run
- TSQLServer *fServer[4]; // pointer to the three FXS + Run & Shuttle logbook servers
- Bool_t fFXSCalled[3]; // FXS call status
- TList fFXSlist[3]; // List of files retrieved from each FXS
+ TSQLServer *fServer[5]; // pointer to the four FXS + Run & Shuttle logbook servers
+ Bool_t fFXSCalled[4]; // FXS call status
+ TList fFXSlist[4]; // List of files retrieved from each FXS
+ Int_t fFXSError; // Variable to keep track of any FXS errors; contains -1 for no error, kDAQ, kDCS, kHLT otherwise
AliCDBEntry* fStatusEntry; // last CDB entry containing a AliShuttleStatus retrieved