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;
 
   60       : 
Software(Name), FreeSlots(-1), FreeJobs(-1), FreeUserSeats(-1)  {}
 
   62       : 
Software(Name, Version), FreeSlots(-1), FreeJobs(-1), FreeUserSeats(-1)  {}
 
   64       Software::operator=(sv);
 
  111       : VirtualMachine(
false), CPUClockSpeed(-1), MainMemorySize(-1),
 
  112         ConnectivityIn(
false), ConnectivityOut(
false) {}
 
  114     std::string Platform;
 
  116     std::string CPUVendor;
 
  117     std::string CPUModel;
 
  118     std::string CPUVersion;
 
  137     bool ConnectivityOut;
 
  149       Reservation(
false), BulkSubmission(
false),
 
  150       TotalPhysicalCPUs(-1), TotalLogicalCPUs(-1), TotalSlots(-1),
 
  152       WorkingAreaShared(
true), WorkingAreaTotal(-1), WorkingAreaFree(-1), WorkingAreaLifeTime(-1),
 
  153       CacheTotal(-1), CacheFree(-1) {}
 
  156     std::string ProductName;
 
  157     std::string ProductVersion;
 
  160     int TotalPhysicalCPUs;
 
  161     int TotalLogicalCPUs;
 
  164     std::list<std::string> NetworkInfo;
 
  165     bool WorkingAreaShared;
 
  166     int WorkingAreaTotal;
 
  168     Period WorkingAreaLifeTime;
 
  182       MaxWallTime(-1), MaxTotalWallTime(-1), MinWallTime(-1), DefaultWallTime(-1),
 
  183       MaxCPUTime(-1), MaxTotalCPUTime(-1), MinCPUTime(-1), DefaultCPUTime(-1),
 
  184       MaxTotalJobs(-1), MaxRunningJobs(-1), MaxWaitingJobs(-1),
 
  185       MaxPreLRMSWaitingJobs(-1), MaxUserRunningJobs(-1), MaxSlotsPerJob(-1),
 
  186       MaxStageInStreams(-1), MaxStageOutStreams(-1),
 
  189       TotalJobs(-1), RunningJobs(-1), LocalRunningJobs(-1), WaitingJobs(-1), LocalWaitingJobs(-1),
 
  190       SuspendedJobs(-1), LocalSuspendedJobs(-1), StagingJobs(-1), PreLRMSWaitingJobs(-1),
 
  191       EstimatedAverageWaitingTime(-1), EstimatedWorstWaitingTime(-1),
 
  192       FreeSlots(-1), UsedSlots(-1), RequestedSlots(-1) {}
 
  201     std::string MappingQueue;
 
  214     int MaxPreLRMSWaitingJobs;
 
  215     int MaxUserRunningJobs;
 
  217     int MaxStageInStreams;
 
  218     int MaxStageOutStreams;
 
  219     std::string SchedulingPolicy;
 
  245     URL DefaultStorageService;
 
  249     int LocalRunningJobs;
 
  251     int LocalWaitingJobs;
 
  253     int LocalSuspendedJobs;
 
  255     int PreLRMSWaitingJobs;
 
  256     Period EstimatedAverageWaitingTime;
 
  257     Period EstimatedWorstWaitingTime;
 
  270     std::string ReservationPolicy;
 
  282       TotalJobs(-1), RunningJobs(-1), WaitingJobs(-1),
 
  283       StagingJobs(-1), SuspendedJobs(-1), PreLRMSWaitingJobs(-1) {}
 
  286     std::string URLString;
 
  287     std::string InterfaceName;
 
  288     std::string HealthState;
 
  289     std::string HealthStateInfo;
 
  290     std::string QualityLevel;
 
  291     std::set<std::string> Capability;
 
  292     std::string Technology;
 
  293     std::list<std::string> InterfaceVersion;
 
  294     std::list<std::string> InterfaceExtension;
 
  295     std::list<std::string> SupportedProfile;
 
  296     std::string Implementor;
 
  298     std::string ServingState;
 
  299     std::string IssuerCA;
 
  300     std::list<std::string> TrustedCA;
 
  309     int PreLRMSWaitingJobs;
 
  311     std::list<std::string> JobDescriptions;
 
  323       TotalJobs(-1), RunningJobs(-1), WaitingJobs(-1),
 
  324       StagingJobs(-1), SuspendedJobs(-1), PreLRMSWaitingJobs(-1) {}
 
  328     std::set<std::string> Capability;
 
  329     std::string QualityLevel;
 
  335     int PreLRMSWaitingJobs;
 
  369     std::map<int, ExecutionEnvironmentType> ExecutionEnvironment;
 
  386     std::set<int> ComputingEndpointIDs;
 
  396     std::set<int> ComputingShareIDs;
 
  407     void GetExecutionTargets(T& container) 
const;
 
  412     std::map<int, ComputingEndpointType> ComputingEndpoint;
 
  413     std::map<int, ComputingShareType> ComputingShare;
 
  414     std::map<int, ComputingManagerType> ComputingManager;
 
  419     void AddExecutionTarget(T& container, 
const ExecutionTarget& et) 
const;
 
  449       Benchmarks(new std::map<std::string, double>()),
 
  459       Location(t.Location), AdminDomain(t.AdminDomain), ComputingService(t.ComputingService),
 
  460       ComputingEndpoint(t.ComputingEndpoint), OtherEndpoints(t.OtherEndpoints),
 
  461       ComputingShare(t.ComputingShare), ComputingManager(t.ComputingManager),
 
  462       ExecutionEnvironment(t.ExecutionEnvironment),
 
  463       Benchmarks(t.Benchmarks), ApplicationEnvironments(t.ApplicationEnvironments) {}
 
  475       Location(l), AdminDomain(a), ComputingService(cse),
 
  476       ComputingEndpoint(ce), OtherEndpoints(oe), ComputingShare(csh),
 
  477       ComputingManager(cm), ExecutionEnvironment(ee),
 
  478       Benchmarks(b), ApplicationEnvironments(ae) {}
 
  495       ExecutionEnvironment((*(
ExecutionTarget*)addrptr).ExecutionEnvironment),
 
  497       ApplicationEnvironments((*(
ExecutionTarget*)addrptr).ApplicationEnvironments) {}
 
  501       Location = et.Location; AdminDomain = et.AdminDomain; ComputingService = et.ComputingService;
 
  502       ComputingEndpoint = et.ComputingEndpoint; ComputingEndpoint = et.ComputingEndpoint; ComputingShare = et.ComputingShare;
 
  503       ComputingManager = et.ComputingManager; Benchmarks = et.Benchmarks;
 
  504       ExecutionEnvironment = et.ExecutionEnvironment; ApplicationEnvironments = et.ApplicationEnvironments;
 
  510     SubmissionStatus Submit(
const UserConfig& ucfg, 
const JobDescription& jobdesc, Job& job) 
const;
 
  535     static void GetExecutionTargets(
const std::list<ComputingServiceType>& csList, std::list<ExecutionTarget>& etList);
 
  537     CountedPointer<LocationAttributes> Location;
 
  538     CountedPointer<AdminDomainAttributes> AdminDomain;
 
  539     CountedPointer<ComputingServiceAttributes> ComputingService;
 
  540     CountedPointer<ComputingEndpointAttributes> ComputingEndpoint;
 
  541     std::list< CountedPointer<ComputingEndpointAttributes> > OtherEndpoints;
 
  542     CountedPointer<ComputingShareAttributes> ComputingShare;
 
  543     CountedPointer<ComputingManagerAttributes> ComputingManager;
 
  544     CountedPointer<ExecutionEnvironmentAttributes> ExecutionEnvironment;
 
  545     CountedPointer< std::map<std::string, double> > Benchmarks;
 
  546     CountedPointer< std::list<ApplicationEnvironment> > ApplicationEnvironments;
 
  549     static Logger logger;
 
  554 #endif // __ARC_EXECUTIONTARGET_H__