fIsValid = kTRUE;
}
-
-//______________________________________________________________________________________________
-AliShuttleConfig::AliShuttleConfig(const AliShuttleConfig & other):
- TObject(),
- fConfigHost(other.fConfigHost),
- fDAQlbHost(other.fDAQlbHost),
- fDAQlbPort(other.fDAQlbPort),
- fDAQlbUser(other.fDAQlbUser),
- fDAQlbPass(other.fDAQlbPass),
- fDAQlbDB(other.fDAQlbDB),
- fDAQlbTable(other.fDAQlbTable),
- fShuttlelbTable(other.fShuttlelbTable),
- fRunTypelbTable(other.fRunTypelbTable),
- fPasswdFilePath(other.fPasswdFilePath),
- fMaxRetries(other.fMaxRetries),
- fPPTimeOut(other.fPPTimeOut),
- fDCSTimeOut(other.fDCSTimeOut),
- fDCSRetries(other.fDCSRetries),
- fPPMaxMem(other.fPPMaxMem),
- fMonitorHost(other.fMonitorHost),
- fMonitorTable(other.fMonitorTable),
- fTriggerWait(other.fTriggerWait),
- fRunMode(other.fRunMode),
- fDetectorMap(),
- fDetectorList(other.fDetectorList),
- fShuttleInstanceHost(other.fShuttleInstanceHost),
- fProcessedDetectors(other.fProcessedDetectors),
- fKeepDCSMap(other.fKeepDCSMap),
- fKeepTempFolder(other.fKeepTempFolder),
- fSendMail(other.fSendMail),
- fProcessAll(other.fProcessAll),
- fIsValid(other.fIsValid)
-{
- //
- // copy ctor
- //
- for (Int_t i = 0; i<3; i++){
- fFXSHost[i]=other.fFXSHost[i];
- fFXSPort[i]=other.fFXSPort[i];
- fFXSUser[i]=other.fFXSUser[i];
- fFXSPass[i]=other.fFXSPass[i];
- fFXSBaseFolder[i]=other.fFXSBaseFolder[i];
- fFXSdbHost[i]=other.fFXSdbHost[i];
- fFXSdbPort[i]=other.fFXSdbPort[i];
- fFXSdbUser[i]=other.fFXSdbUser[i];
- fFXSdbPass[i]=other.fFXSdbPass[i];
- fFXSdbName[i]=other.fFXSdbName[i];
- fFXSdbTable[i]=other.fFXSdbTable[i];
- }
- for (Int_t i = 0; i<5; i++){
- fAdmin[i] = new TObjArray();
- fAdmin[i]->AddAt(other.fAdmin[i]->At(i),i);
- }
-
- TIter iter((other.fDetectorMap).GetTable());
- TPair* aPair = 0;
-
- while ((aPair = (TPair*) iter.Next())) {
- AliShuttleDetConfigHolder *holder =(AliShuttleDetConfigHolder *)aPair->Value();
- TKey *key = (TKey*)aPair->Key();
- fDetectorMap.Add(key,holder);
- }
-
-
-}
-//_____________________________________________________________________________________________
-AliShuttleConfig& AliShuttleConfig::operator=(const AliShuttleConfig &other)
-{
- //
- //assignment operator
- //
- this->fConfigHost=other.fConfigHost;
- this->fDAQlbHost=other.fDAQlbHost;
- this->fDAQlbPort=other.fDAQlbPort;
- this->fDAQlbUser=other.fDAQlbUser;
- this->fDAQlbPass=other.fDAQlbPass;
- this->fDAQlbDB=other.fDAQlbDB;
- this->fDAQlbTable=other.fDAQlbTable;
- this->fShuttlelbTable=other.fShuttlelbTable;
- this->fRunTypelbTable=other.fRunTypelbTable;
- this->fPasswdFilePath=other.fPasswdFilePath;
- this->fMaxRetries=other.fMaxRetries;
- this->fPPTimeOut=other.fPPTimeOut;
- this->fDCSTimeOut=other.fDCSTimeOut;
- this->fDCSRetries=other.fDCSRetries;
- this->fPPMaxMem=other.fPPMaxMem;
- this->fMonitorHost=other.fMonitorHost;
- this->fMonitorTable=other.fMonitorTable;
- this->fTriggerWait=other.fTriggerWait;
- this->fRunMode=other.fRunMode;
- this->fDetectorList=other.fDetectorList;
- this->fShuttleInstanceHost=other.fShuttleInstanceHost;
- this->fProcessedDetectors=other.fProcessedDetectors;
- this->fKeepDCSMap=other.fKeepDCSMap;
- this->fKeepTempFolder=other.fKeepTempFolder;
- this->fSendMail=other.fSendMail;
- this->fProcessAll=other.fProcessAll;
- this->fIsValid=other.fIsValid;
- for (Int_t i = 0; i<3; i++){
- this->fFXSHost[i]=other.fFXSHost[i];
- this->fFXSPort[i]=other.fFXSPort[i];
- this->fFXSUser[i]=other.fFXSUser[i];
- this->fFXSPass[i]=other.fFXSPass[i];
- this->fFXSBaseFolder[i]=other.fFXSBaseFolder[i];
- this->fFXSdbHost[i]=other.fFXSdbHost[i];
- this->fFXSdbPort[i]=other.fFXSdbPort[i];
- this->fFXSdbUser[i]=other.fFXSdbUser[i];
- this->fFXSdbPass[i]=other.fFXSdbPass[i];
- this->fFXSdbName[i]=other.fFXSdbName[i];
- this->fFXSdbTable[i]=other.fFXSdbTable[i];
- }
- for (Int_t i = 0; i<5; i++){
- this->fAdmin[i] = new TObjArray();
- this->fAdmin[i]->AddAt(other.fAdmin[i]->At(i),i);
- }
-
- TIter iter((other.fDetectorMap).GetTable());
- TPair* aPair = 0;
-
- while ((aPair = (TPair*) iter.Next())) {
- AliShuttleDetConfigHolder *holder =(AliShuttleDetConfigHolder *)aPair->Value();
- TKey *key = (TKey*)aPair->Key();
- this->fDetectorMap.Add(key,holder);
- }
- return *this;
-}
//______________________________________________________________________________________________
void AliShuttleConfig::AliShuttleDCSConfigHolder::ExpandAndAdd(TObjArray* target, const char* entry)
{
AliShuttleConfig::AliShuttleConfig(const char* host, Int_t port,
const char* binddn, const char* password, const char* basedn):
fConfigHost(host),
+ fAlienPath(""),
fDAQlbHost(""),
fDAQlbPort(),
fDAQlbUser(""),
fShuttlelbTable(""),
fRunTypelbTable(""),
fPasswdFilePath(""),
- fMaxRetries(0),
+ fTerminateFilePath(""),
+ fMaxRetries(0),
fPPTimeOut(0),
fDCSTimeOut(0),
fDCSRetries(0),
+ fDCSQueryOffset(0),
+ fDCSDelay(0),
fPPMaxMem(0),
fMonitorHost(""),
fMonitorTable(""),
fTriggerWait(3600),
+ fShuttleFileSystem("/"),
+ fFreeDiskWarningThreshold(20),
+ fFreeDiskFatalThreshold(10),
fRunMode(kTest),
fDetectorMap(),
fDetectorList(),
fDetectorList.SetOwner(0); //fDetectorList and fDetectorMap share the same object!
fProcessedDetectors.SetOwner();
- for (int i=0; i<5; i++)
+ for (int i=0; i<6; i++)
{
fAdmin[i] = new TObjArray();
fAdmin[i]->SetOwner();
{
//
// returns collection of TObjString which represents the list of mail addresses
- // of the system's administrator(s) (DAQ, DCS, HLT, Global, Amanda)
+ // of the system's administrator(s) (DAQ, DCS, HLT, Global, Amanda, DQM)
//
- if (sys < 0 || sys > 4) return 0;
+ if (sys < 0 || sys > 5) return 0;
return fAdmin[sys];
}
TString tmpStr = anAttribute->GetValue();
fMaxRetries = tmpStr.Atoi();
+ anAttribute = anEntry->GetAttribute("terminateFilePath");
+ if (anAttribute) {
+ fTerminateFilePath = anAttribute->GetValue();
+ }
+
anAttribute = anEntry->GetAttribute("ppTimeOut");
if (!anAttribute) {
AliError("Can't find ppTimeOut attribute!");
tmpStr = anAttribute->GetValue();
fDCSRetries = tmpStr.Atoi();
+ anAttribute = anEntry->GetAttribute("DCSQueryOffset");
+ if (!anAttribute) {
+ AliError("Can't find DCSQueryOffset attribute!");
+ return 4;
+ }
+ tmpStr = anAttribute->GetValue();
+ fDCSQueryOffset = tmpStr.Atoi();
+
+ anAttribute = anEntry->GetAttribute("DCSDelay");
+ if (!anAttribute) {
+ AliError("Can't find DCSDelay attribute!");
+ return 4;
+ }
+ tmpStr = anAttribute->GetValue();
+ fDCSDelay = tmpStr.Atoi();
+
anAttribute = anEntry->GetAttribute("ppMaxMem");
if (!anAttribute) {
AliError("Can't find ppMaxMem attribute!");
anAttribute = anEntry->GetAttribute("triggerWait"); // MAY
if (!anAttribute) {
- AliWarning(Form("triggerWait not set! default = ", fTriggerWait));
+ AliWarning(Form("triggerWait not set! default = %d", fTriggerWait));
}
tmpStr = anAttribute->GetValue();
fTriggerWait = tmpStr.Atoi();
-
+
+ anAttribute = anEntry->GetAttribute("ShuttleFileSystem");
+ if (!anAttribute) {
+ AliWarning(Form("ShuttleFileSystem not set! default = %s", fShuttleFileSystem.Data()));
+ }
+ fShuttleFileSystem = anAttribute->GetValue();
+
+ anAttribute = anEntry->GetAttribute("FreeDiskWarningThreshold"); // MAY
+ if (!anAttribute) {
+ AliWarning(Form("FreeDiskWarningThreshold not set! default = %d", fFreeDiskWarningThreshold));
+ }
+ tmpStr = anAttribute->GetValue();
+ fFreeDiskWarningThreshold = tmpStr.Atoi();
+
+ anAttribute = anEntry->GetAttribute("FreeDiskFatalThreshold"); // MAY
+ if (!anAttribute) {
+ AliWarning(Form("FreeDiskFatalThreshold not set! default = %d", fFreeDiskFatalThreshold));
+ }
+ tmpStr = anAttribute->GetValue();
+ fFreeDiskFatalThreshold = tmpStr.Atoi();
+
anAttribute = anEntry->GetAttribute("mode");
if (!anAttribute) {
AliWarning("Run mode not set! Running in test mode.");
//______________________________________________________________________________________________
UInt_t AliShuttleConfig::SetSysConfig(TList* list)
{
- // Set the online FXS configuration (DAQ + DCS + HLT)
+ // Set the online FXS configuration (DAQ + DCS + HLT + DQM)
TLDAPEntry* anEntry = 0;
TLDAPAttribute* anAttribute = 0;
- if (list->GetEntries() != 3)
+ if (list->GetEntries() != 4)
{
AliError(Form("Wrong number of online systems found: %d !", list->GetEntries()));
return 1;
iSys = kHLT;
count += 100;
}
+ else if (sysName == "DQM")
+ {
+ iSys = kDQM;
+ count += 1000;
+ }
anAttribute = anEntry->GetAttribute("dbHost");
if (!anAttribute) {
}
- if(count != 111) {
+ if(count != 1111) {
AliError(Form("Wrong system configuration! (code = %d)", count));
return 6;
}
AliInfo("Setting Passwords");
- // Retrieving Passwords for DAQ lb, DAQ/DCS/HLT FXS
+ // Retrieving Passwords for DAQ lb, DAQ/DCS/HLT/DQM FXS
ifstream *inputfile = new ifstream(fPasswdFilePath.Data());
if (!*inputfile) {
TObjArray *tokens = line.Tokenize(" \t");
TString system = ((TObjString *)tokens->At(0))->String();
TString password = ((TObjString *)tokens->At(1))->String();
+ delete tokens;
if (system.Contains("DAQ_LB")){
fDAQlbPass=password;
nPwd++;
nPwd++;
AliDebug(3,Form("HLT_DB: Password %s for %s found", password.Data(), system.Data()));
}
+ else if (system.Contains("DQM_DB")){
+ fFXSdbPass[3]=password;
+ nPwd++;
+ AliDebug(3,Form("DQM_DB: Password %s for %s found", password.Data(), system.Data()));
+ }
else {
nPwdFake++;
AliDebug(3,Form("%i fake line(s) found in file %s", nPwdFake, fPasswdFilePath.Data()));
continue;
}
- delete tokens;
}
inputfile->close();
delete inputfile;
- if (nPwd!=4){
+ if (nPwd!=5){
AliError(Form("Wrong file for DAQ Logbook password found %s (some passwors missing), please Check!", fPasswdFilePath.Data()));
return 2;
}
result += Form("Logbook Configuration \n\n \tHost: %s:%d; \tUser: %s; ",
fDAQlbHost.Data(), fDAQlbPort, fDAQlbUser.Data());
-// result += "Password: ";
-// result.Append('*', fDAQlbPass.Length());
result += Form("\tDB: %s; \tTables: %s, %s, %s\n",
fDAQlbDB.Data(), fDAQlbTable.Data(), fShuttlelbTable.Data(), fRunTypelbTable.Data());
+ result += Form("Terminate file path: %s\n", fTerminateFilePath.Data());
+
result += "\n\n";
result += "------------------------------------------------------\n";
result += "FXS configuration\n\n";
- for(int iSys=0;iSys<3;iSys++){
+ for(int iSys=0;iSys<4;iSys++){
result += Form("*** %s ***\n", AliShuttleInterface::GetSystemName(iSys));
result += Form("\tDB host: %s:%d; \tUser: %s; \tName: %s; \tTable: %s\n",
fFXSdbHost[iSys].Data(), fFXSdbPort[iSys], fFXSdbUser[iSys].Data(),
fFXSdbName[iSys].Data(), fFXSdbTable[iSys].Data());
- // result += Form("DB Password:",fFXSdbPass[iSys].Data());
result += Form("\tFXS host: %s:%d; \tUser: %s\n", fFXSHost[iSys].Data(), fFXSPort[iSys],
fFXSUser[iSys].Data());
- // result += Form("FXS Password:",fFXSPass[iSys].Data());
const TObjArray* fxsAdmins = GetAdmins(iSys);
if (fxsAdmins->GetEntries() != 0)
{