3 #ifndef __ARC_USERCONFIG_H__ 4 #define __ARC_USERCONFIG_H__ 10 #include <arc/ArcConfig.h> 11 #include <arc/DateTime.h> 73 operator bool()
const {
246 bool loadSysConfig =
true);
274 const std::string& jfile,
276 bool loadSysConfig =
true);
389 return !((proxyPath.empty() && (certificatePath.empty() || keyPath.empty())) || caCertificatesDirectory.empty());
428 bool SaveToFile(
const std::string& filename)
const;
454 operator bool()
const {
return ok; }
554 bool Verbosity(
const std::string& newVerbosity);
565 const std::string&
Verbosity()
const {
return verbosity; }
586 bool Broker(
const std::string& name);
604 bool Broker(
const std::string& name,
const std::string& argument) { broker = std::pair<std::string, std::string>(name, argument);
return true;}
614 const std::pair<std::string, std::string>&
Broker()
const {
return broker; }
629 bool VOMSESPath(
const std::string& path) { vomsesPath = path;
return true; }
645 const std::list<std::string>&
DefaultVOMSes()
const {
return defaultVomses; };
658 bool UserName(
const std::string& name) { username = name;
return true; }
667 const std::string&
UserName()
const {
return username; }
680 bool Password(
const std::string& newPassword) { password = newPassword;
return true; }
689 const std::string&
Password()
const {
return password; }
718 void OToken(
const std::string& token) { otoken = token; }
727 const std::string&
OToken()
const {
return otoken; }
743 bool ProxyPath(
const std::string& newProxyPath) { proxyPath = newProxyPath;
return true;}
751 const std::string&
ProxyPath()
const {
return proxyPath; }
771 bool CertificatePath(
const std::string& newCertificatePath) { certificatePath = newCertificatePath;
return true; }
802 bool KeyPath(
const std::string& newKeyPath) { keyPath = newKeyPath;
return true; }
815 const std::string&
KeyPath()
const {
return keyPath; }
831 bool KeyPassword(
const std::string& newKeyPassword) { keyPassword = newKeyPassword;
return true; }
857 bool KeySize(
int newKeySize) { keySize = newKeySize;
return true;}
884 bool CACertificatePath(
const std::string& newCACertificatePath) { caCertificatePath = newCACertificatePath;
return true; }
912 bool CACertificatesDirectory(
const std::string& newCACertificatesDirectory) { caCertificatesDirectory = newCACertificatesDirectory;
return true; }
957 bool SLCS(
const URL& newSLCS) { slcs = newSLCS;
return true; }
975 if(credentialString != other.credentialString)
return false;
976 if(proxyPath != other.proxyPath)
return false;
977 if(certificatePath != other.certificatePath)
return false;
978 if(username != other.username)
return false;
979 if(otoken != other.otoken)
return false;
994 bool StoreDirectory(
const std::string& newStoreDirectory) { storeDirectory = newStoreDirectory;
return true; }
1016 bool JobDownloadDirectory(
const std::string& newDownloadDirectory) { downloadDirectory = newDownloadDirectory;
return true; }
1040 bool IdPName(
const std::string& name) { idPName = name;
return true; }
1048 const std::string&
IdPName()
const {
return idPName; }
1065 bool OverlayFile(
const std::string& path) { overlayfile = path;
return true; }
1120 infointerface = infointerface_;
1143 submissioninterface = submissioninterface_;
1168 void AddRejectDiscoveryURLs(
const std::list<std::string>& urls) { rejectDiscoveryURLs.insert(rejectDiscoveryURLs.end(), urls.begin(), urls.end()); }
1305 static bool makeDir(
const std::string& path);
1306 static bool copyFile(
const std::string& source,
1307 const std::string& destination);
1308 bool CreateDefaultConfigurationFile()
const;
1310 std::list<ConfigEndpoint> FilterServices(
const std::list<ConfigEndpoint>&,
ConfigEndpoint::Type);
1313 std::string joblistfile;
1314 std::string joblisttype;
1318 std::string verbosity;
1321 std::pair<std::string, std::string> broker;
1323 std::list<ConfigEndpoint> defaultServices;
1324 std::map<std::string, ConfigEndpoint> allServices;
1325 std::map<std::string, std::list<ConfigEndpoint> > groupMap;
1326 std::list<std::string> rejectDiscoveryURLs;
1327 std::list<std::string> rejectManagementURLs;
1329 std::string credentialString;
1331 std::string proxyPath;
1332 std::string certificatePath;
1333 std::string keyPath;
1334 std::string keyPassword;
1336 std::string caCertificatePath;
1337 std::string caCertificatesDirectory;
1338 Period certificateLifeTime;
1342 std::string vomsesPath;
1343 std::list<std::string> defaultVomses;
1345 std::string storeDirectory;
1346 std::string downloadDirectory;
1347 std::string idPName;
1349 std::string username;
1350 std::string password;
1352 std::string overlayfile;
1353 std::string utilsdir;
1355 std::string submissioninterface;
1356 std::string infointerface;
1390 std::string x509_user_key_old;
1391 std::string x509_user_key_new;
1392 bool x509_user_key_set;
1393 std::string x509_user_cert_old;
1394 std::string x509_user_cert_new;
1395 bool x509_user_cert_set;
1396 std::string x509_user_proxy_old;
1397 std::string x509_user_proxy_new;
1398 bool x509_user_proxy_set;
1399 std::string ca_cert_dir_old;
1400 bool ca_cert_dir_set;
1407 #endif // __ARC_USERCONFIG_H__ Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
int KeySize() const
Get key size.
Definition: UserConfig.h:868
Defines how user credentials are looked for.
Definition: UserConfig.h:98
bool operator==(initializeType v)
Returns true if this initializeType is the same as v.
Definition: UserConfig.h:115
bool operator!=(initializeType v)
Returns true if this initializeType is not the same as v.
Definition: UserConfig.h:117
~CertEnvLocker(void)
Release lock on X509 environment variables and set back to old values if they were changed...
const std::string & JobListType() const
Get type of job storage.
Definition: UserConfig.h:505
User configuration class
Definition: UserConfig.h:196
initializeCredentialsType(void)
Construct a new initializeCredentialsType with initializeType TryCredentials.
Definition: UserConfig.h:111
static std::string DEFAULTCONFIG()
Path to default configuration file.
void CredentialString(const std::string &cred)
Set credentials.
Definition: UserConfig.h:699
Same as TryCredentials but skip checking CA certificates.
Definition: UserConfig.h:107
static std::string EXAMPLECONFIG()
Path to example configuration.
bool SaveToFile(const std::string &filename) const
Save to INI file.
a local information system of a computing element
Definition: UserConfig.h:41
static std::string DEFAULT_BROKER()
Default broker.
std::string InterfaceName
A string representing the interface type (based on the InterfaceName attribute of the GLUE2 specifica...
Definition: UserConfig.h:62
bool ProxyPath(const std::string &newProxyPath)
Set path to user proxy.
Definition: UserConfig.h:743
const URL & SLCS() const
Get the URL to the Short Lived Certificate Service (SLCS).
Definition: UserConfig.h:964
static std::string JOBLISTFILE()
Path to default job list file.
bool Broker(const std::string &name, const std::string &argument)
Set broker to use in target matching.
Definition: UserConfig.h:604
Configuration for client interface.
Definition: ArcConfig.h:104
static std::string SYSCONFIG()
Path to system configuration.
bool UserName(const std::string &name)
Set user-name for SLCS.
Definition: UserConfig.h:658
initializeType
initializeType determines how UserConfig deals with credentials.
Definition: UserConfig.h:101
Represents the endpoint of service with a given type and GLUE2 InterfaceName.
Definition: UserConfig.h:36
bool KeySize(int newKeySize)
Set key size.
Definition: UserConfig.h:857
const std::pair< std::string, std::string > & Broker() const
Get the broker and corresponding arguments.
Definition: UserConfig.h:614
bool CertificatePath(const std::string &newCertificatePath)
Set path to certificate.
Definition: UserConfig.h:771
bool CACertificatePath(const std::string &newCACertificatePath)
Set CA-certificate path.
Definition: UserConfig.h:884
const std::string & SubmissionInterface() const
Get the default submission interface.
Definition: UserConfig.h:1151
UserConfig(initializeCredentialsType initializeCredentials=initializeCredentialsType())
Create a UserConfig object.
static std::string ARCUSERDIRECTORY()
Path to ARC user home directory.
bool StoreDirectory(const std::string &newStoreDirectory)
Set store directory.
Definition: UserConfig.h:994
a service registry
Definition: UserConfig.h:40
ServiceType
Type of service.
Definition: UserConfig.h:23
A logger class.
Definition: Logger.h:493
void AddRejectDiscoveryURLs(const std::list< std::string > &urls)
Add list of URLs to ignored at service discovery.
Definition: UserConfig.h:1168
std::string tostring(T t, int width=0, int precision=0)
This method converts any type to a string of the width given.
Definition: StringConv.h:92
const std::string & UtilsDirPath() const
Get path to directory storing utility files for DataPoints.
Definition: UserConfig.h:1089
const std::string & CertificatePath() const
Get path to certificate.
Definition: UserConfig.h:781
const User & GetUser() const
Get User for filesystem access.
Definition: UserConfig.h:1106
std::string RequestedSubmissionInterfaceName
A GLUE2 InterfaceName requesting a job submission interface.
Definition: UserConfig.h:70
Class for handling X509* variables in a multi-threaded environment.
Definition: UserConfig.h:1382
const std::string & CACertificatesDirectory() const
Get path to CA-certificate directory.
Definition: UserConfig.h:922
Same as NotTryCredentials but skip checking CA certificates.
Definition: UserConfig.h:106
std::list< ConfigEndpoint > GetServicesInGroup(const std::string &group, ConfigEndpoint::Type type=ConfigEndpoint::ANY)
Get the services in a given group filtered by type.
const std::string & CredentialString() const
Get credentials.
Definition: UserConfig.h:708
const std::list< std::string > & DefaultVOMSes() const
Get the list of VOMS VOs to be used by default while creating proxy credentials.
Definition: UserConfig.h:645
both, only used for filtering, when both types are accepted
Definition: UserConfig.h:42
initializeCredentialsType(initializeType v)
Construct a new initializeCredentialsType with initializeType v.
Definition: UserConfig.h:113
Type type
The type of the ConfigEndpoint: REGISTRY or COMPUTINGINFO.
Definition: UserConfig.h:56
Look for credentials, test if they are valid and report errors if not valid.
Definition: UserConfig.h:105
int Timeout() const
Get timeout.
Definition: UserConfig.h:536
A service that processes jobs.
Definition: UserConfig.h:24
std::list< ConfigEndpoint > GetDefaultServices(ConfigEndpoint::Type type=ConfigEndpoint::ANY)
Get the services flagged as default filtered by type.
Look for credentials and test if they are valid.
Definition: UserConfig.h:104
const std::string & InfoInterface() const
Get the default local information system interface.
Definition: UserConfig.h:1128
bool KeyPath(const std::string &newKeyPath)
Set path to key.
Definition: UserConfig.h:802
const std::string & UserName() const
Get user-name.
Definition: UserConfig.h:667
bool InitializeCredentials(initializeCredentialsType initializeCredentials)
Initialize user credentials.
ConfigEndpoint(const std::string &URLString="", const std::string &InterfaceName="", ConfigEndpoint::Type type=ConfigEndpoint::ANY)
Creates a ConfigEndpoint from a URL an InterfaceName and a Type.
Definition: UserConfig.h:52
const std::string & VOMSESPath()
Get path to file containing VOMS configuration.
Same as RequireCredentials but skip checking CA certificates.
Definition: UserConfig.h:108
const std::string & OToken() const
Get authentication token.
Definition: UserConfig.h:727
bool LoadConfigurationFile(const std::string &conffile, bool ignoreJobListFile=true)
Load specified configuration file.
static std::string SYSCONFIGARCLOC()
Path to system configuration at ARC location.
bool CredentialsFound() const
Validate credential location.
Definition: UserConfig.h:388
A Period represents a length of time.
Definition: DateTime.h:48
void SetUser(const User &u)
Set User for filesystem access.
Definition: UserConfig.h:1099
const std::string & OverlayFile() const
Get path to configuration overlay file.
Definition: UserConfig.h:1071
bool KeyPassword(const std::string &newKeyPassword)
Set password for generated key.
Definition: UserConfig.h:831
Type
Types of ComputingEndpoint objects.
Definition: UserConfig.h:39
bool IdPName(const std::string &name)
Set IdP name.
Definition: UserConfig.h:1040
bool Password(const std::string &newPassword)
Set password.
Definition: UserConfig.h:680
Class to represent general URLs.
Definition: URL.h:88
bool operator!() const
Returns true if the URL is empty.
Definition: UserConfig.h:78
void ApplyToConfig(BaseConfig &ccfg) const
Apply credentials to BaseConfig.
bool JobDownloadDirectory(const std::string &newDownloadDirectory)
Set download directory.
Definition: UserConfig.h:1016
bool VOMSESPath(const std::string &path)
Set path to file containing VOMS configuration.
Definition: UserConfig.h:629
const std::string & IdPName() const
Get IdP name.
Definition: UserConfig.h:1048
CertEnvLocker(const UserConfig &cfg)
Create a lock on X509 environment variables. Blocks if another instance exists.
Don't look for credentials.
Definition: UserConfig.h:102
Look for credentials but don't evaluate them.
Definition: UserConfig.h:103
bool InfoInterface(const std::string &infointerface_)
Set the default local information system interface.
Definition: UserConfig.h:1119
bool CertificateLifeTime(const Period &newCertificateLifeTime)
Set certificate life time.
Definition: UserConfig.h:937
void ClearRejectDiscoveryURLs()
Clear the rejected service discovery URLs.
Definition: UserConfig.h:1174
const std::string & StoreDirectory() const
Get store diretory.
Definition: UserConfig.h:1003
const std::string & KeyPassword() const
Get password for generated key.
Definition: UserConfig.h:842
const std::string & Verbosity() const
Get the user selected level of verbosity.
Definition: UserConfig.h:565
std::list< ConfigEndpoint > GetServices(const std::string &groupOrAlias, ConfigEndpoint::Type type=ConfigEndpoint::ANY)
Get one or more service with the given alias or in the given group filtered by type.
const std::list< std::string > & RejectManagementURLs() const
Get the list of rejected job managmenet URLs.
Definition: UserConfig.h:1182
const std::string & KeyPath() const
Get path to key.
Definition: UserConfig.h:815
A service that provides information.
Definition: UserConfig.h:25
bool SLCS(const URL &newSLCS)
Set the URL to the Short Lived Certificate Service (SLCS).
Definition: UserConfig.h:957
const std::list< std::string > & RejectDiscoveryURLs() const
Get the list of rejected service discovery URLs.
Definition: UserConfig.h:1159
const std::string & Password() const
Get password.
Definition: UserConfig.h:689
bool SubmissionInterface(const std::string &submissioninterface_)
Set the default submission interface.
Definition: UserConfig.h:1142
Platform independent representation of system user.
Definition: User.h:16
bool operator!() const
Check for non-validity.
Definition: UserConfig.h:460
bool OverlayFile(const std::string &path)
Set path to configuration overlay file.
Definition: UserConfig.h:1065
std::map< std::string, ConfigEndpoint > GetAllConfiguredServices()
Get all services.
Definition: UserConfig.h:1230
const std::string & JobListFile() const
Get a reference to the path of the job list file.
Definition: UserConfig.h:485
const std::string & CACertificatePath() const
Get path to CA-certificate.
Definition: UserConfig.h:893
bool operator==(ConfigEndpoint c) const
Returns true if the type, the URLString, the InterfaceName and the RequestedSubmissionInterfaceName m...
Definition: UserConfig.h:83
void OToken(const std::string &token)
Set authentication token.
Definition: UserConfig.h:718
const Period & CertificateLifeTime() const
Get certificate life time.
Definition: UserConfig.h:946
ConfigEndpoint GetService(const std::string &alias)
Get the ConfigEndpoint for the service with the given alias.
const std::string & JobDownloadDirectory() const
Get download directory.
Definition: UserConfig.h:1028
bool CACertificatesDirectory(const std::string &newCACertificatesDirectory)
Set path to CA-certificate directory.
Definition: UserConfig.h:912
bool IsSameIdentity(UserConfig const &other) const
Check if configuration represents same user identity (false negatives are likely) ...
Definition: UserConfig.h:974
static const int DEFAULT_TIMEOUT
Default timeout in seconds.
Definition: UserConfig.h:1287
const std::string & ProxyPath() const
Get path to user proxy.
Definition: UserConfig.h:751
std::string URLString
A string representing the URL of the ConfigEndpoint.
Definition: UserConfig.h:59