Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/26/15 18:02:03 (9 years ago)
Author:
dglaser
Message:

#2388:

HeuristicLab.Services.WebApp.Statistics-3.3:

  • added groups page
  • improved jobs, clients and users pages

HeuristicLab.Services.WebApp-3.3:

  • merged from trunk
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Status/3.3/WebApi/DataController.cs

    r12515 r12525  
    2727using HeuristicLab.Services.Hive;
    2828using HeuristicLab.Services.Hive.DataAccess;
    29 using HeuristicLab.Services.Hive.DataAccess.Interfaces;
    30 using DA = HeuristicLab.Services.Hive.DataAccess;
    31 using DT = HeuristicLab.Services.WebApp.Status.WebApi.DataTransfer;
     29using DAL = HeuristicLab.Services.Hive.DataAccess;
     30using DTO = HeuristicLab.Services.WebApp.Status.WebApi.DataTransfer;
    3231
    3332namespace HeuristicLab.Services.WebApp.Status.WebApi {
    3433  public class DataController : ApiController {
    35     private IPersistenceManager PersistenceManager {
    36       get { return ServiceLocator.Instance.PersistenceManager; }
    37     }
    3834
    3935    // start temporary quickfix
     
    5753    }
    5854
    59     public IEnumerable<DT.TaskStatus> GetTaskStatus(HiveDataContext db) {
     55    public IEnumerable<DTO.TaskStatus> GetTaskStatus(HiveDataContext db) {
    6056      var query = db.ExecuteQuery<UserTaskStatus>(SQL_USER_TASK_STATUS).ToList();
    61       return query.Select(uts => new DT.TaskStatus {
    62         User = new DT.User {
     57      return query.Select(uts => new DTO.TaskStatus {
     58        User = new DTO.User {
    6359          Id = uts.UserId.ToString(),
    6460          Name = ServiceLocator.Instance.UserManager.GetUserById(uts.UserId).UserName
     
    7066    // end temporary quickfix
    7167
    72     public DT.Status GetStatus() {
    73       DT.TimeStatus timeStatus = null;
    74       using (var pm = PersistenceManager) {
    75 
    76         // TODO:
    77         //          new DT.TimeStatus {
    78         //  AvgCalculatingTime = 0,
    79         //  AvgWaitingTime = 0,
    80         //  MaxCalculatingTime = 0,
    81         //  MinCalculatingTime = 0,
    82         //  TotalCpuTime = 0,
    83         //  BeginDate = DateTime.Now
    84         //}
    85       }
    86 
     68    public DTO.Status GetStatus() {
    8769      using (var db = new HiveDataContext()) {
    88         var onlineSlaves = (from slave in db.Resources.OfType<DA.Slave>()
     70        var onlineSlaves = (from slave in db.Resources.OfType<DAL.Slave>()
    8971                            where slave.SlaveState == SlaveState.Calculating || slave.SlaveState == SlaveState.Idle
    9072                            select slave).ToList();
    9173        var activeSlaves = onlineSlaves.Where(s => s.IsAllowedToCalculate).ToList();
    9274        var calculatingSlaves = activeSlaves.Where(s => s.SlaveState == SlaveState.Calculating).ToList();
    93         int calculatingMemory = calculatingSlaves.Any() ? (int)calculatingSlaves.Sum(s => s.Memory) / 1024 : 0;
    94         int freeCalculatingMemory = calculatingSlaves.Any() ? (int)calculatingSlaves.Sum(s => s.FreeMemory) / 1024 : 0;
     75        int calculatingMemory = calculatingSlaves.Any() ? (int)calculatingSlaves.Sum(s => s.Memory) : 0;
     76        int freeCalculatingMemory = calculatingSlaves.Any() ? (int)calculatingSlaves.Sum(s => s.FreeMemory) : 0;
    9577
    96         return new DT.Status {
    97           CoreStatus = new DT.CoreStatus {
     78        return new DTO.Status {
     79          CoreStatus = new DTO.CoreStatus {
    9880            TotalCores = onlineSlaves.Sum(s => s.Cores ?? 0),
    9981            FreeCores = onlineSlaves.Sum(s => s.FreeCores ?? 0), // temporary for old chart data
     
    10183            CalculatingCores = calculatingSlaves.Sum(s => s.Cores ?? 0) - calculatingSlaves.Sum(s => s.FreeCores ?? 0)
    10284          },
    103           CpuUtilizationStatus = new DT.CpuUtilizationStatus {
     85          CpuUtilizationStatus = new DTO.CpuUtilizationStatus {
    10486            TotalCpuUtilization = onlineSlaves.Any()
    10587                                  ? Math.Round(onlineSlaves.Average(s => s.CpuUtilization), 2)
     
    11294                                        : 0.0
    11395          },
    114           MemoryStatus = new DT.MemoryStatus {
    115             TotalMemory = onlineSlaves.Any() ? (int)onlineSlaves.Sum(s => s.Memory) / 1024 : 0,
    116             FreeMemory = onlineSlaves.Any() ? (int)onlineSlaves.Sum(s => s.FreeMemory) / 1024 : 0,
    117             ActiveMemory = activeSlaves.Any() ? (int)activeSlaves.Sum(s => s.Memory) / 1024 : 0,
     96          MemoryStatus = new DTO.MemoryStatus {
     97            TotalMemory = onlineSlaves.Any() ? (int)onlineSlaves.Sum(s => s.Memory) : 0,
     98            FreeMemory = onlineSlaves.Any() ? (int)onlineSlaves.Sum(s => s.FreeMemory) : 0,
     99            ActiveMemory = activeSlaves.Any() ? (int)activeSlaves.Sum(s => s.Memory) : 0,
    118100            UsedMemory = calculatingMemory - freeCalculatingMemory
    119101          },
    120           TimeStatus = timeStatus,
    121102          TasksStatus = GetTaskStatus(db),
    122           SlavesStatus = onlineSlaves.Select(x => new DT.SlaveStatus {
    123             Slave = new DT.Slave {
     103          SlavesStatus = onlineSlaves.Select(x => new DTO.SlaveStatus {
     104            Slave = new DTO.Slave {
    124105              Id = x.ResourceId.ToString(),
    125106              Name = x.Name
     
    128109            Cores = x.Cores ?? 0,
    129110            FreeCores = x.FreeCores ?? 0,
    130             Memory = (x.Memory ?? 0) / 1024,
    131             FreeMemory = (x.FreeMemory ?? 0) / 1024,
     111            Memory = x.Memory ?? 0,
     112            FreeMemory = x.FreeMemory ?? 0,
    132113            IsAllowedToCalculate = x.IsAllowedToCalculate,
    133114            State = x.SlaveState.ToString()
     
    138119    }
    139120
    140     public IEnumerable<DT.Status> GetStatusHistory(DateTime start, DateTime end) {
     121    public IEnumerable<DTO.Status> GetStatusHistory(DateTime start, DateTime end) {
    141122      TimeSpan ts = end - start;
    142123      int increment = 1;
     
    154135                                      .OrderBy(s => s.Timestamp)
    155136                                      .ToList();
    156         var status = new DT.Status {
    157           CoreStatus = new DT.CoreStatus(),
    158           CpuUtilizationStatus = new DT.CpuUtilizationStatus(),
    159           MemoryStatus = new DT.MemoryStatus()
     137        var status = new DTO.Status {
     138          CoreStatus = new DTO.CoreStatus(),
     139          CpuUtilizationStatus = new DTO.CpuUtilizationStatus(),
     140          MemoryStatus = new DTO.MemoryStatus()
    160141        };
    161142        int freeCores = 0;
     
    168149                                                             ? statistic.SlaveStatistics.Average(x => x.CpuUtilization)
    169150                                                             : 0.0;
    170           status.MemoryStatus.TotalMemory += statistic.SlaveStatistics.Sum(x => x.Memory) / 1024;
    171           freeMemory += statistic.SlaveStatistics.Sum(x => x.FreeMemory) / 1024;
     151          status.MemoryStatus.TotalMemory += statistic.SlaveStatistics.Sum(x => x.Memory);
     152          freeMemory += statistic.SlaveStatistics.Sum(x => x.FreeMemory);
    172153          if (i >= increment) {
    173154            status.Timestamp = JavascriptUtils.ToTimestamp(statistic.Timestamp);
     
    184165            status.MemoryStatus.UsedMemory = status.MemoryStatus.TotalMemory - freeMemory;
    185166            yield return status;
    186             status = new DT.Status {
    187               CoreStatus = new DT.CoreStatus(),
    188               CpuUtilizationStatus = new DT.CpuUtilizationStatus(),
    189               MemoryStatus = new DT.MemoryStatus()
     167            status = new DTO.Status {
     168              CoreStatus = new DTO.CoreStatus(),
     169              CpuUtilizationStatus = new DTO.CpuUtilizationStatus(),
     170              MemoryStatus = new DTO.MemoryStatus()
    190171            };
    191172            freeCores = 0;
Note: See TracChangeset for help on using the changeset viewer.