// will be retrieved (used by AliShuttle).
//
-
+#include <Riostream.h>
#include "AliShuttleConfig.h"
#include "AliShuttleInterface.h"
AliShuttleConfig::AliShuttleConfig(const AliShuttleConfig & other):
TObject(),
fConfigHost(other.fConfigHost),
+ fAlienPath(other.fAlienPath),
fDAQlbHost(other.fDAQlbHost),
fDAQlbPort(other.fDAQlbPort),
fDAQlbUser(other.fDAQlbUser),
fDAQlbTable(other.fDAQlbTable),
fShuttlelbTable(other.fShuttlelbTable),
fRunTypelbTable(other.fRunTypelbTable),
+ fPasswdFilePath(other.fPasswdFilePath),
fMaxRetries(other.fMaxRetries),
fPPTimeOut(other.fPPTimeOut),
fDCSTimeOut(other.fDCSTimeOut),
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];
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->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];
AliShuttleConfig::AliShuttleConfig(const char* host, Int_t port,
const char* binddn, const char* password, const char* basedn):
fConfigHost(host),
+ fAlienPath(""),
fDAQlbHost(""),
fDAQlbPort(),
fDAQlbUser(""),
fDAQlbTable(""),
fShuttlelbTable(""),
fRunTypelbTable(""),
+ fPasswdFilePath(""),
fMaxRetries(0),
fPPTimeOut(0),
fDCSTimeOut(0),
fDCSRetries(0),
+ fDCSQueryOffset(0),
+ fDCSDelay(0),
fPPMaxMem(0),
fMonitorHost(""),
fMonitorTable(""),
result += SetGlobalConfig(&globalList);
result += SetSysConfig(&sysList);
+ result += SetPasswords();
result += SetDetConfig(&detList,&dcsList);
result += SetHostConfig(&hostList);
fDetectorMap.DeleteAll();
fDetectorList.Clear();
fProcessedDetectors.Delete();
-
- delete[] fAdmin;
-
}
//______________________________________________________________________________________________
{
// Set the global configuration (DAQ Logbook + preprocessor monitoring settings)
+
TLDAPEntry* anEntry = 0;
TLDAPAttribute* anAttribute = 0;
}
+ anAttribute = anEntry->GetAttribute("AlienPath");
+ if (!anAttribute) {
+ AliError("Can't find AlienPath attribute!");
+ return 4;
+ }
+ fAlienPath = anAttribute->GetValue();
+
anAttribute = anEntry->GetAttribute("daqLbHost");
if (!anAttribute) {
AliError("Can't find daqLbHost attribute!");
}
fDAQlbUser = anAttribute->GetValue();
- anAttribute = anEntry->GetAttribute("daqLbPasswd");
- if (!anAttribute) {
- AliError("Can't find daqLbPasswd attribute!");
- return 4;
- }
- fDAQlbPass = anAttribute->GetValue();
-
anAttribute = anEntry->GetAttribute("daqLbDB");
if (!anAttribute) {
AliError("Can't find daqLbDB 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!");
fSendMail = (Bool_t) sendMailStr.Atoi();
}
+ anAttribute = anEntry->GetAttribute("passwdFilePath");
+ if (!anAttribute) {
+ AliError("Can't find Passwords File Path attribute!");
+ return 4;
+ }
+ fPasswdFilePath = anAttribute->GetValue();
+
return 0;
}
UInt_t AliShuttleConfig::SetSysConfig(TList* list)
{
// Set the online FXS configuration (DAQ + DCS + HLT)
-
+
+
TLDAPEntry* anEntry = 0;
TLDAPAttribute* anAttribute = 0;
}
fFXSdbUser[iSys] = anAttribute->GetValue();
- anAttribute = anEntry->GetAttribute("dbPasswd");
- if (!anAttribute) {
- AliError(Form ("Can't find dbPasswd attribute for %s!!",
- AliShuttleInterface::GetSystemName(iSys)));
- return 5;
- }
- fFXSdbPass[iSys] = anAttribute->GetValue();
-
anAttribute = anEntry->GetAttribute("dbName");
if (!anAttribute) {
AliError(Form ("Can't find dbName attribute for %s!!",
anAttribute = anEntry->GetAttribute("fxsPasswd");
if (anAttribute) fFXSPass[iSys] = anAttribute->GetValue();
+
+ anAttribute = anEntry->GetAttribute("fxsBaseFolder");
+ if (anAttribute) fFXSBaseFolder[iSys] = anAttribute->GetValue();
anAttribute = anEntry->GetAttribute("fxsAdmin"); // MAY
if (!anAttribute)
return 0;
}
+//______________________________________________________________________________________________
+UInt_t AliShuttleConfig::SetPasswords(){
+
+ AliInfo("Setting Passwords");
+
+ // Retrieving Passwords for DAQ lb, DAQ/DCS/HLT FXS
+
+ ifstream *inputfile = new ifstream(fPasswdFilePath.Data());
+ if (!*inputfile) {
+ AliError(Form("Error opening file %s !", fPasswdFilePath.Data()));
+ inputfile->close();
+ delete inputfile;
+ return 1;
+ }
+
+ TString line;
+ Int_t nPwd=0;
+ Int_t nPwdFake=0;
+ while (line.ReadLine(*inputfile)) {
+ TObjArray *tokens = line.Tokenize(" \t");
+ TString system = ((TObjString *)tokens->At(0))->String();
+ TString password = ((TObjString *)tokens->At(1))->String();
+ if (system.Contains("DAQ_LB")){
+ fDAQlbPass=password;
+ nPwd++;
+ AliDebug(3,Form("DAQ_LB: Password %s for %s found", password.Data(), system.Data()));
+ }
+ else if (system.Contains("DAQ_DB")){
+ fFXSdbPass[0]=password;
+ nPwd++;
+ AliDebug(3,Form("DAQ_DB: Password %s for %s found", password.Data(), system.Data()));
+ }
+ else if (system.Contains("DCS_DB")){
+ fFXSdbPass[1]=password;
+ nPwd++;
+ AliDebug(3,Form("DCS_DB: Password %s for %s found", password.Data(), system.Data()));
+ }
+ else if (system.Contains("HLT_DB")){
+ fFXSdbPass[2]=password;
+ nPwd++;
+ AliDebug(3,Form("HLT_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){
+ AliError(Form("Wrong file for DAQ Logbook password found %s (some passwors missing), please Check!", fPasswdFilePath.Data()));
+ return 2;
+ }
+
+ return 0;
+
+}
//______________________________________________________________________________________________
UInt_t AliShuttleConfig::SetDetConfig(TList* detList, TList* dcsList)
{