3 #ifndef __ARC_EXECUTIONTARGET_H__     4 #define __ARC_EXECUTIONTARGET_H__    15 #include <arc/DateTime.h>    16 #include <arc/compute/Endpoint.h>    18 #include <arc/Utils.h>    19 #include <arc/compute/GLUE2Entity.h>    20 #include <arc/compute/JobDescription.h>    21 #include <arc/compute/Software.h>    22 #include <arc/compute/SubmissionStatus.h>    28   class SubmitterPlugin;
    73       : 
Software(Name), FreeSlots(-1), FreeJobs(-1), FreeUserSeats(-1)  {}
    75       : 
Software(Name, 
Version), FreeSlots(-1), FreeJobs(-1), FreeUserSeats(-1)  {}
    77       Software::operator=(sv);
   124       : VirtualMachine(
false), CPUClockSpeed(-1), MainMemorySize(-1),
   125         ConnectivityIn(
false), ConnectivityOut(
false) {}
   127     std::string Platform;
   129     std::string CPUVendor;
   130     std::string CPUModel;
   131     std::string CPUVersion;
   150     bool ConnectivityOut;
   191       Reservation(
false), BulkSubmission(
false),
   192       TotalPhysicalCPUs(-1), TotalLogicalCPUs(-1), TotalSlots(-1),
   194       WorkingAreaShared(
true), WorkingAreaTotal(-1), WorkingAreaFree(-1), WorkingAreaLifeTime(-1),
   195       CacheTotal(-1), CacheFree(-1) {}
   198     std::string ProductName;
   199     std::string ProductVersion;
   202     int TotalPhysicalCPUs;
   203     int TotalLogicalCPUs;
   206     std::list<std::string> NetworkInfo;
   207     bool WorkingAreaShared;
   208     int WorkingAreaTotal;
   210     Period WorkingAreaLifeTime;
   224       MaxWallTime(-1), MaxTotalWallTime(-1), MinWallTime(-1), DefaultWallTime(-1),
   225       MaxCPUTime(-1), MaxTotalCPUTime(-1), MinCPUTime(-1), DefaultCPUTime(-1),
   226       MaxTotalJobs(-1), MaxRunningJobs(-1), MaxWaitingJobs(-1),
   227       MaxPreLRMSWaitingJobs(-1), MaxUserRunningJobs(-1), MaxSlotsPerJob(-1),
   228       MaxStageInStreams(-1), MaxStageOutStreams(-1),
   231       TotalJobs(-1), RunningJobs(-1), LocalRunningJobs(-1), WaitingJobs(-1), LocalWaitingJobs(-1),
   232       SuspendedJobs(-1), LocalSuspendedJobs(-1), StagingJobs(-1), PreLRMSWaitingJobs(-1),
   233       EstimatedAverageWaitingTime(-1), EstimatedWorstWaitingTime(-1),
   234       FreeSlots(-1), UsedSlots(-1), RequestedSlots(-1) {}
   243     std::string MappingQueue;
   256     int MaxPreLRMSWaitingJobs;
   257     int MaxUserRunningJobs;
   259     int MaxStageInStreams;
   260     int MaxStageOutStreams;
   261     std::string SchedulingPolicy;
   287     URL DefaultStorageService;
   291     int LocalRunningJobs;
   293     int LocalWaitingJobs;
   295     int LocalSuspendedJobs;
   297     int PreLRMSWaitingJobs;
   298     Period EstimatedAverageWaitingTime;
   299     Period EstimatedWorstWaitingTime;
   312     std::string ReservationPolicy;
   324       TotalJobs(-1), RunningJobs(-1), WaitingJobs(-1),
   325       StagingJobs(-1), SuspendedJobs(-1), PreLRMSWaitingJobs(-1) {}
   328     std::string URLString;
   329     std::string InterfaceName;
   330     std::string HealthState;
   331     std::string HealthStateInfo;
   332     std::string QualityLevel;
   333     std::set<std::string> Capability;
   334     std::string Technology;
   335     std::list<std::string> InterfaceVersion;
   336     std::list<std::string> InterfaceExtension;
   337     std::list<std::string> SupportedProfile;
   338     std::string Implementor;
   340     std::string ServingState;
   341     std::string IssuerCA;
   342     std::list<std::string> TrustedCA;
   351     int PreLRMSWaitingJobs;
   353     std::list<std::string> JobDescriptions;
   365       TotalJobs(-1), RunningJobs(-1), WaitingJobs(-1),
   366       StagingJobs(-1), SuspendedJobs(-1), PreLRMSWaitingJobs(-1) {}
   370     std::set<std::string> Capability;
   371     std::string QualityLevel;
   377     int PreLRMSWaitingJobs;
   420     std::map<int, ExecutionEnvironmentType> ExecutionEnvironment;
   437     std::set<int> ComputingEndpointIDs;
   452     std::set<int> ComputingShareIDs;
   463     void GetExecutionTargets(T& container) 
const;
   468     std::map<int, ComputingEndpointType> ComputingEndpoint;
   469     std::map<int, ComputingShareType> ComputingShare;
   470     std::map<int, ComputingManagerType> ComputingManager;
   475     void AddExecutionTarget(T& container, 
const ExecutionTarget& et) 
const;
   481   void ComputingServiceType::AddExecutionTarget< std::list<ExecutionTarget> >(std::list<ExecutionTarget>& etList, 
const ExecutionTarget& et) 
const;
   509       Benchmarks(new std::map<std::string, double>()),
   519       Location(t.Location), AdminDomain(t.AdminDomain), ComputingService(t.ComputingService),
   520       ComputingEndpoint(t.ComputingEndpoint), OtherEndpoints(t.OtherEndpoints),
   521       ComputingShare(t.ComputingShare), MappingPolicies(t.MappingPolicies),
   522       ComputingManager(t.ComputingManager), ExecutionEnvironment(t.ExecutionEnvironment),
   523       Benchmarks(t.Benchmarks), ApplicationEnvironments(t.ApplicationEnvironments) {}
   540       Location(l), AdminDomain(a), ComputingService(cse),
   541       ComputingEndpoint(ce), OtherEndpoints(oe),
   542       ComputingShare(csh), MappingPolicies(mp),
   543       ComputingManager(cm), ExecutionEnvironment(ee),
   544       Benchmarks(b), ApplicationEnvironments(ae) {}
   562       ExecutionEnvironment((*(
ExecutionTarget*)addrptr).ExecutionEnvironment),
   564       ApplicationEnvironments((*(
ExecutionTarget*)addrptr).ApplicationEnvironments) {}
   568       Location = et.Location; AdminDomain = et.AdminDomain; ComputingService = et.ComputingService;
   569       ComputingEndpoint = et.ComputingEndpoint; ComputingEndpoint = et.ComputingEndpoint;
   570       ComputingShare = et.ComputingShare; MappingPolicies = et.MappingPolicies;
   571       ComputingManager = et.ComputingManager; Benchmarks = et.Benchmarks;
   572       ExecutionEnvironment = et.ExecutionEnvironment; ApplicationEnvironments = et.ApplicationEnvironments;
   578     SubmissionStatus Submit(
const UserConfig& ucfg, 
const JobDescription& jobdesc, Job& job) 
const;
   603     static void GetExecutionTargets(
const std::list<ComputingServiceType>& csList, std::list<ExecutionTarget>& etList);
   605     CountedPointer<LocationAttributes> Location;
   606     CountedPointer<AdminDomainAttributes> AdminDomain;
   607     CountedPointer<ComputingServiceAttributes> ComputingService;
   608     CountedPointer<ComputingEndpointAttributes> ComputingEndpoint;
   609     std::list< CountedPointer<ComputingEndpointAttributes> > OtherEndpoints;
   610     CountedPointer<ComputingShareAttributes> ComputingShare;
   611     std::list< CountedPointer<MappingPolicyAttributes> > MappingPolicies;
   612     CountedPointer<ComputingManagerAttributes> ComputingManager;
   613     CountedPointer<ExecutionEnvironmentAttributes> ExecutionEnvironment;
   614     CountedPointer< std::map<std::string, double> > Benchmarks;
   615     CountedPointer< std::list<ApplicationEnvironment> > ApplicationEnvironments;
   618     static Logger logger;
   623 #endif // __ARC_EXECUTIONTARGET_H__ Definition: ExecutionTarget.h:416
 
Arc namespace contains all core ARC classes. 
Definition: ArcConfig.h:11
 
Definition: ExecutionTarget.h:91
 
std::map< Period, int > FreeSlotsWithDuration
FreeSlotsWithDuration std::map<Period, int> 
Definition: ExecutionTarget.h:309
 
std::map< int, MappingPolicyType > MappingPolicy
Definition: ExecutionTarget.h:442
 
int MaxMainMemory
MaxMainMemory UInt64 0..1 MB. 
Definition: ExecutionTarget.h:269
 
ExecutionTarget(const CountedPointer< LocationAttributes > &l, const CountedPointer< AdminDomainAttributes > &a, const CountedPointer< ComputingServiceAttributes > &cse, const CountedPointer< ComputingEndpointAttributes > &ce, const std::list< CountedPointer< ComputingEndpointAttributes > > &oe, const CountedPointer< ComputingShareAttributes > &csh, const std::list< CountedPointer< MappingPolicyAttributes > > &mp, const CountedPointer< ComputingManagerAttributes > &cm, const CountedPointer< ExecutionEnvironmentAttributes > &ee, const CountedPointer< std::map< std::string, double > > &b, const CountedPointer< std::list< ApplicationEnvironment > > &ae)
Definition: ExecutionTarget.h:529
 
Definition: ExecutionTarget.h:221
 
Definition: GLUE2Entity.h:19
 
int MaxDiskSpace
MaxDiskSpace UInt64 0..1 GB. 
Definition: ExecutionTarget.h:285
 
A class for storing and manipulating times. 
Definition: DateTime.h:125
 
ExecutionTarget()
Create an ExecutionTarget. 
Definition: ExecutionTarget.h:501
 
void RegisterJobSubmission(const JobDescription &jobdesc) const
Update ExecutionTarget after succesful job submission. 
 
A logger class. 
Definition: Logger.h:493
 
Wrapper for pointer with automatic destruction and multiple references. 
Definition: Utils.h:183
 
Definition: ExecutionTarget.h:401
 
Definition: ExecutionTarget.h:434
 
Software()
Dummy constructor. 
Definition: Software.h:58
 
Represents an endpoint of a service with a given interface type and capabilities. ...
Definition: Endpoint.h:68
 
Definition: ExecutionTarget.h:188
 
Definition: ExecutionTarget.h:109
 
Software OperatingSystem
OperatingSystem. 
Definition: ExecutionTarget.h:147
 
ExecutionTarget(long int addrptr)
Create an ExecutionTarget. 
Definition: ExecutionTarget.h:553
 
A Period represents a length of time. 
Definition: DateTime.h:48
 
Definition: ExecutionTarget.h:389
 
CountedPointer< std::list< ApplicationEnvironment > > ApplicationEnvironments
ApplicationEnvironments. 
Definition: ExecutionTarget.h:427
 
Class to represent general URLs. 
Definition: URL.h:88
 
Definition: ExecutionTarget.h:395
 
Definition: ExecutionTarget.h:165
 
ApplicationEnvironment. 
Definition: ExecutionTarget.h:68
 
friend std::ostream & operator<<(std::ostream &out, const ExecutionTarget &et)
Print the ExecutionTarget information. 
 
Definition: ExecutionTarget.h:460
 
ExecutionTarget. 
Definition: ExecutionTarget.h:494
 
Definition: ExecutionTarget.h:449
 
Definition: ExecutionTarget.h:321
 
std::list< std::string > Rule
Definition: ExecutionTarget.h:179
 
Definition: ExecutionTarget.h:410
 
std::string Scheme
Scheme adopted to define the policy rules. 
Definition: ExecutionTarget.h:173
 
std::string Name
Name String 0..1. 
Definition: ExecutionTarget.h:242
 
Definition: ExecutionTarget.h:121
 
std::string ID
A global unique ID. 
Definition: ExecutionTarget.h:170
 
Definition: ExecutionTarget.h:362
 
int MaxVirtualMemory
MaxVirtualMemory UInt64 0..1 MB. 
Definition: ExecutionTarget.h:277
 
Used to represent software (names and version) and comparison. 
Definition: Software.h:38
 
ExecutionTarget(const ExecutionTarget &t)
Create an ExecutionTarget. 
Definition: ExecutionTarget.h:518