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; } }
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(); } }
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; } }
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; } }
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(); } }
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; } }
public Guid AddPluginData(DT.PluginData dto) { using (var db = CreateContext()) { var entity = Convert.ToEntity(dto); db.PluginDatas.InsertOnSubmit(entity); db.SubmitChanges(); return entity.PluginDataId; } }
public void AddHiveExperimentPermission(DT.HiveExperimentPermission dto) { using (var db = CreateContext()) { var entity = Convert.ToEntity(dto); db.HiveExperimentPermissions.InsertOnSubmit(entity); db.SubmitChanges(); } }
public static UserStatistics ToEntity(DT.UserStatistics source) { if (source == null) return null; var entity = new UserStatistics(); ToEntity(source, entity); return entity; }
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; } }
public static SlaveStatistics ToEntity(DT.SlaveStatistics source) { if (source == null) return null; var entity = new SlaveStatistics(); ToEntity(source, entity); return entity; }
public static void ToEntity(DT.Statistics source, Statistics target) { if ((source != null) && (target != null)) { target.StatisticsId = source.Id; target.Timestamp = source.TimeStamp; } }
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; } }
public static Resource ToEntity(DT.Resource source) { if (source == null) return null; var entity = new Resource(); ToEntity(source, entity); return entity; }
public static SlaveGroup ToEntity(DT.SlaveGroup source) { if (source == null) return null; var entity = new SlaveGroup(); ToEntity(source, entity); return entity; }
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; }
public Guid AddHiveExperiment(DT.HiveExperiment dto) { using (var db = CreateContext()) { var entity = Convert.ToEntity(dto); db.HiveExperiments.InsertOnSubmit(entity); db.SubmitChanges(); return entity.HiveExperimentId; } }
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; } }
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(); } }
public static JobData ToEntity(DT.JobData source) { if (source == null) return null; var entity = new JobData(); ToEntity(source, entity); return entity; }
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(); } }
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; } }
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(); } }
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); } }
public Guid AddResource(DT.Resource dto) { using (var db = CreateContext()) { var entity = Convert.ToEntity(dto); db.Resources.InsertOnSubmit(entity); db.SubmitChanges(); return entity.ResourceId; } }
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; } }
public Guid AddDowntime(DT.Downtime dto) { using (var db = CreateContext()) { var entity = Convert.ToEntity(dto); db.Downtimes.InsertOnSubmit(entity); db.SubmitChanges(); return entity.DowntimeId; } }
public Guid AddStateLog(DT.StateLog dto) { using (var db = CreateContext()) { var entity = Convert.ToEntity(dto); db.StateLogs.InsertOnSubmit(entity); db.SubmitChanges(); return entity.StateLogId; } }
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; } }
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; } }