Example #1
0
 public Guid AddJob(DT.Job dto) {
   using (var db = CreateContext()) {
     var entity = Convert.ToEntity(dto);
     db.Jobs.InsertOnSubmit(entity);
     db.SubmitChanges();
     foreach (Guid pluginId in dto.PluginsNeededIds) {
       db.RequiredPlugins.InsertOnSubmit(new RequiredPlugin() { JobId = entity.JobId, PluginId = pluginId });
     }
     db.SubmitChanges();
     return entity.JobId;
   }
 }
Example #2
0
 public void UpdateJob(DT.Job dto) {
   using (var db = CreateContext()) {
     var entity = db.Jobs.FirstOrDefault(x => x.JobId == dto.Id);
     if (entity == null) db.Jobs.InsertOnSubmit(Convert.ToEntity(dto));
     else Convert.ToEntity(dto, entity);
     foreach (Guid pluginId in dto.PluginsNeededIds) {
       if (db.RequiredPlugins.Count(p => p.PluginId == pluginId) == 0) {
         db.RequiredPlugins.InsertOnSubmit(new RequiredPlugin() { JobId = entity.JobId, PluginId = pluginId });
       }
     }
     db.SubmitChanges();
   }
 }
Example #3
0
 public static void ToEntity(DT.Job source, Job target) {
   if ((source != null) && (target != null)) {
     target.JobId = source.Id;
     target.CoresNeeded = source.CoresNeeded;
     target.ExecutionTimeMs = source.ExecutionTime.TotalMilliseconds;
     target.MemoryNeeded = source.MemoryNeeded;
     target.ParentJobId = source.ParentJobId;
     target.Priority = source.Priority;
     target.LastHeartbeat = source.LastHeartbeat;
     target.State = source.State;
     if (target.StateLogs == null) target.StateLogs = new EntitySet<StateLog>();
     foreach (DT.StateLog sl in source.StateLog.Where(x => x.Id == Guid.Empty)) {
       target.StateLogs.Add(Convert.ToEntity(sl));
     }
     target.IsParentJob = source.IsParentJob;
     target.FinishWhenChildJobsFinished = source.FinishWhenChildJobsFinished;
     target.Command = source.Command;
     // RequiredPlugins are added by Dao
     target.HiveExperimentId = source.HiveExperimentId;
     target.IsPrivileged = source.IsPrivileged;
   }
 }
Example #4
0
 public static void ToEntity(DT.Slave source, Slave target) {
   if ((source != null) && (target != null)) {
     target.ResourceId = source.Id;
     target.ParentResourceId = source.ParentResourceId;
     target.Cores = source.Cores;
     target.CpuSpeed = source.CpuSpeed;
     target.FreeCores = source.FreeCores;
     target.FreeMemory = source.FreeMemory;
     target.IsAllowedToCalculate = source.IsAllowedToCalculate;
     target.Memory = source.Memory;
     target.Name = source.Name;
     target.SlaveState = source.SlaveState;
     target.CpuArchitecture = source.CpuArchitecture;
     target.OperatingSystem = source.OperatingSystem;
     target.LastHeartbeat = source.LastHeartbeat;
     target.CpuUtilization = source.CpuUtilization;
   }
 }
Example #5
0
 public void UpdateDowntime(DT.Downtime dto) {
   using (var db = CreateContext()) {
     var entity = db.Downtimes.FirstOrDefault(x => x.DowntimeId == dto.Id);
     if (entity == null) db.Downtimes.InsertOnSubmit(Convert.ToEntity(dto));
     else Convert.ToEntity(dto, entity);
     db.SubmitChanges();
   }
 }
Example #6
0
 public Guid AddSlaveGroup(DT.SlaveGroup dto) {
   using (var db = CreateContext()) {
     if (dto.Id == Guid.Empty)
       dto.Id = Guid.NewGuid();
     var entity = Convert.ToEntity(dto);
     db.Resources.InsertOnSubmit(entity);
     db.SubmitChanges();
     return entity.ResourceId;
   }
 }
Example #7
0
 public Guid AddPluginData(DT.PluginData dto) {
   using (var db = CreateContext()) {
     var entity = Convert.ToEntity(dto);
     db.PluginDatas.InsertOnSubmit(entity);
     db.SubmitChanges();
     return entity.PluginDataId;
   }
 }
Example #8
0
 public void AddHiveExperimentPermission(DT.HiveExperimentPermission dto) {
   using (var db = CreateContext()) {
     var entity = Convert.ToEntity(dto);
     db.HiveExperimentPermissions.InsertOnSubmit(entity);
     db.SubmitChanges();
   }
 }
Example #9
0
 public static UserStatistics ToEntity(DT.UserStatistics source) {
   if (source == null) return null;
   var entity = new UserStatistics(); ToEntity(source, entity);
   return entity;
 }
Example #10
0
 public static void ToEntity(DT.SlaveStatistics source, SlaveStatistics target) {
   if ((source != null) && (target != null)) {
     target.StatisticsId = source.Id;
     target.SlaveId = source.SlaveId;
     target.Cores = source.Cores;
     target.CpuUtilization = source.CpuUtilization;
     target.FreeCores = source.FreeCores;
     target.FreeMemory = source.FreeMemory;
     target.Memory = source.Memory;
   }
 }
Example #11
0
 public static SlaveStatistics ToEntity(DT.SlaveStatistics source) {
   if (source == null) return null;
   var entity = new SlaveStatistics(); ToEntity(source, entity);
   return entity;
 }
Example #12
0
    public static void ToEntity(DT.Statistics source, Statistics target) {
      if ((source != null) && (target != null)) {
        target.StatisticsId = source.Id;
        target.Timestamp = source.TimeStamp;

      }
    }
Example #13
0
 public static void ToEntity(DT.Resource source, Resource target) {
   if ((source != null) && (target != null)) {
     target.ResourceId = source.Id; target.Name = source.Name; target.ParentResourceId = source.ParentResourceId;
   }
 }
Example #14
0
 public static Resource ToEntity(DT.Resource source) {
   if (source == null) return null;
   var entity = new Resource(); ToEntity(source, entity);
   return entity;
 }
Example #15
0
 public static SlaveGroup ToEntity(DT.SlaveGroup source) {
   if (source == null) return null;
   var entity = new SlaveGroup(); ToEntity(source, entity);
   return entity;
 }
Example #16
0
    private DT.HiveExperiment AddStatsToExperiment(HiveDataContext db, DT.HiveExperiment exp) {
      if (exp == null)
        return null;

      var jobs = db.Jobs.Where(j => j.HiveExperimentId == exp.Id);
      exp.JobCount = jobs.Count();
      exp.CalculatingCount = jobs.Count(j => j.State == JobState.Calculating);
      exp.FinishedCount = jobs.Count(j => j.State == JobState.Finished);
      return exp;
    }
Example #17
0
 public Guid AddHiveExperiment(DT.HiveExperiment dto) {
   using (var db = CreateContext()) {
     var entity = Convert.ToEntity(dto);
     db.HiveExperiments.InsertOnSubmit(entity);
     db.SubmitChanges();
     return entity.HiveExperimentId;
   }
 }
Example #18
0
 public static void ToEntity(DT.UserStatistics source, UserStatistics target) {
   if ((source != null) && (target != null)) {
     target.StatisticsId = source.Id;
     target.UserId = source.UserId;
     target.UsedCores = source.UsedCores;
     target.ExecutionTimeMs = source.ExecutionTime.TotalMilliseconds;
     target.ExecutionTimeMsFinishedJobs = source.ExecutionTimeFinishedJobs.TotalMilliseconds;
     target.StartToEndTimeMs = source.StartToEndTime.TotalMilliseconds;
   }
 }
Example #19
0
 public void UpdateHiveExperimentPermission(DT.HiveExperimentPermission dto) {
   using (var db = CreateContext()) {
     var entity = db.HiveExperimentPermissions.FirstOrDefault(x => x.HiveExperimentId == dto.HiveExperimentId && x.GrantedUserId == dto.GrantedUserId);
     if (entity == null) db.HiveExperimentPermissions.InsertOnSubmit(Convert.ToEntity(dto));
     else Convert.ToEntity(dto, entity);
     db.SubmitChanges();
   }
 }
Example #20
0
 public static JobData ToEntity(DT.JobData source) {
   if (source == null) return null;
   var entity = new JobData(); ToEntity(source, entity);
   return entity;
 }
Example #21
0
 public void UpdatePluginData(DT.PluginData dto) {
   using (var db = CreateContext()) {
     var entity = db.PluginDatas.FirstOrDefault(x => x.PluginId == dto.PluginId);
     if (entity == null) db.PluginDatas.InsertOnSubmit(Convert.ToEntity(dto));
     else Convert.ToEntity(dto, entity);
     db.SubmitChanges();
   }
 }
Example #22
0
 public static void ToEntity(DT.JobData source, JobData target) {
   if ((source != null) && (target != null)) {
     target.JobId = source.JobId; target.Data = new Binary(source.Data); target.LastUpdate = source.LastUpdate;
   }
 }
Example #23
0
 public void UpdateSlaveGroup(DT.SlaveGroup dto) {
   using (var db = CreateContext()) {
     var entity = db.Resources.OfType<SlaveGroup>().FirstOrDefault(x => x.ResourceId == dto.Id);
     if (entity == null) db.Resources.InsertOnSubmit(Convert.ToEntity(dto));
     else Convert.ToEntity(dto, entity);
     db.SubmitChanges();
   }
 }
Example #24
0
    public IEnumerable<DT.Job> GetWaitingJobs(DT.Slave slave, int count) {
      using (var db = CreateContext()) {
        var resourceIds = GetParentResources(slave.Id).Select(r => r.Id);
        var waitingParentJobs = GetParentJobs(resourceIds, count, false);
        if (count > 0 && waitingParentJobs.Count() >= count) return waitingParentJobs.Take(count).ToArray();

        var query = from ar in db.AssignedResources
                    where resourceIds.Contains(ar.ResourceId)
                       && !(ar.Job.IsParentJob && ar.Job.FinishWhenChildJobsFinished)
                       && ar.Job.State == JobState.Waiting
                       && ar.Job.CoresNeeded <= slave.FreeCores
                       && ar.Job.MemoryNeeded <= slave.FreeMemory
                    orderby ar.Job.Priority descending, db.Random() // take random job to avoid the race condition that occurs when this method is called concurrently (the same job would be returned)
                    select Convert.ToDto(ar.Job);
        var waitingJobs = (count == 0 ? query : query.Take(count)).ToArray();
        return waitingJobs.Union(waitingParentJobs).OrderByDescending(x => x.Priority);
      }
    }
Example #25
0
 public Guid AddResource(DT.Resource dto) {
   using (var db = CreateContext()) {
     var entity = Convert.ToEntity(dto);
     db.Resources.InsertOnSubmit(entity);
     db.SubmitChanges();
     return entity.ResourceId;
   }
 }
Example #26
0
 public Guid AddJobData(DT.JobData dto) {
   using (var db = CreateContext(true)) {
     var entity = Convert.ToEntity(dto);
     db.JobDatas.InsertOnSubmit(entity);
     db.SubmitChanges();
     return entity.JobId;
   }
 }
Example #27
0
 public Guid AddDowntime(DT.Downtime dto) {
   using (var db = CreateContext()) {
     var entity = Convert.ToEntity(dto);
     db.Downtimes.InsertOnSubmit(entity);
     db.SubmitChanges();
     return entity.DowntimeId;
   }
 }
Example #28
0
 public Guid AddStateLog(DT.StateLog dto) {
   using (var db = CreateContext()) {
     var entity = Convert.ToEntity(dto);
     db.StateLogs.InsertOnSubmit(entity);
     db.SubmitChanges();
     return entity.StateLogId;
   }
 }
Example #29
0
 public Guid AddStatistics(DT.Statistics dto) {
   using (var db = CreateContext()) {
     var entity = Convert.ToEntity(dto);
     db.Statistics.InsertOnSubmit(entity);
     db.SubmitChanges();
     foreach (var slaveStat in dto.SlaveStatistics) {
       slaveStat.Id = entity.StatisticsId;
       db.SlaveStatistics.InsertOnSubmit(Convert.ToEntity(slaveStat));
     }
     foreach (var userStat in dto.UserStatistics) {
       userStat.Id = entity.StatisticsId;
       db.UserStatistics.InsertOnSubmit(Convert.ToEntity(userStat));
     }
     db.SubmitChanges();
     return entity.StatisticsId;
   }
 }
Example #30
0
 public static void ToEntity(DT.PluginData source, PluginData target) {
   if ((source != null) && (target != null)) {
     target.PluginDataId = source.Id; target.PluginId = source.PluginId; target.Data = new Binary(source.Data); target.FileName = source.FileName;
   }
 }