Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/06/11 18:33:03 (13 years ago)
Author:
ascheibe
Message:

#1233

  • code cleanups for slave review
  • added switch between privileged and unprivileged sandbox
  • removed childjob management because it's not used
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs

    r6357 r6371  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2828using HeuristicLab.Common;
    2929using HeuristicLab.Core;
    30 using HeuristicLab.Hive;
    3130
    3231
     
    3433  /// <summary>
    3534  /// The core component of the Hive Slave.
    36   /// Handles commands sent from the Hive Server.
     35  /// Handles commands sent from the Hive Server and does all webservice calls for jobs.
    3736  /// </summary>
    3837  public class Core : MarshalByRefObject {
     
    4140      get { return heartbeatManager; }
    4241    }
     42
     43    public EventLog ServiceEventLog { get; set; }
    4344
    4445    private Semaphore waitShutdownSem = new Semaphore(0, 1);
     
    5152    private PluginManager pluginManager;
    5253
    53     public EventLog ServiceEventLog { get; set; }
    54 
    5554    public Core() {
    5655      var log = new ThreadSafeLog(new Log());
     
    6665
    6766    /// <summary>
    68     /// Main Method for the client
     67    /// Main method for the client
    6968    /// </summary>
    7069    public void Start() {
     
    7271
    7372      try {
    74         //manager.Core = this;
    75 
    7673        //start the client communication service (pipe between slave and slave gui)
    7774        slaveComm = new ServiceHost(typeof(SlaveCommunicationService));
     
    321318      this.jobManager.ExceptionOccured += new EventHandler<EventArgs<SlaveJob, Exception>>(jobManager_ExceptionOccured);
    322319      this.jobManager.JobAborted += new EventHandler<EventArgs<SlaveJob>>(jobManager_JobAborted);
    323       this.jobManager.NewChildJob += new EventHandler<EventArgs<SlaveJob, IJob>>(jobManager_NewChildJob);
    324       this.jobManager.WaitForChildJobs += new EventHandler<EventArgs<SlaveJob, JobData>>(jobManager_WaitForChildJobs);
    325       this.jobManager.DeleteChildJobs += new EventHandler<EventArgs<SlaveJob>>(jobManager_DeleteChildJobs);
    326320    }
    327321
     
    404398      SlaveStatusInfo.DecrementUsedCores(e.Value.CoresNeeded);
    405399    }
    406 
    407     private void jobManager_NewChildJob(object sender, EventArgs<SlaveJob, IJob> e) {
    408       var job = new Job() { CoresNeeded = 1, MemoryNeeded = 0 };
    409       WcfService.Instance.AddChildJob(e.Value.JobId, job, e.Value2);
    410     }
    411 
    412     private void jobManager_WaitForChildJobs(object sender, EventArgs<SlaveJob, JobData> e) {
    413       try {
    414         SlaveStatusInfo.DecrementUsedCores(e.Value.CoresNeeded);
    415         heartbeatManager.AwakeHeartBeatThread();
    416         Job job = wcfService.GetJob(e.Value.JobId);
    417         if (job == null) throw new JobNotFoundException(e.Value.JobId);
    418         job.ExecutionTime = e.Value.ExecutionTime;
    419         job.IsParentJob = true;
    420         job.FinishWhenChildJobsFinished = false;
    421         JobData jobData = e.Value.GetJobData();
    422         wcfService.UpdateJobData(job, jobData, configManager.GetClientInfo().Id, JobState.Waiting);
    423       }
    424       catch (JobNotFoundException ex) {
    425         clientCom.LogMessage(ex.ToString());
    426       }
    427       catch (Exception ex) {
    428         clientCom.LogMessage(ex.ToString());
    429       }
    430     }
    431 
    432     private void jobManager_DeleteChildJobs(object sender, EventArgs<SlaveJob> e) {
    433       try {
    434         WcfService.Instance.DeleteChildJobs(e.Value.JobId);
    435       }
    436       catch (Exception ex) {
    437         clientCom.LogMessage(ex.ToString());
    438       }
    439     }
    440400    #endregion
    441401
     
    491451    /// </summary>
    492452    private void ShutdownCore() {
    493       clientCom.LogMessage("Shutdown Signal received");
     453      clientCom.LogMessage("Shutdown signal received");
    494454      clientCom.LogMessage("Stopping heartbeat");
    495455      heartbeatManager.StopHeartBeat();
    496456      abortRequested = true;
     457
     458      DoAbortAll();
     459
    497460      clientCom.LogMessage("Logging out");
    498 
    499       DoAbortAll();
    500 
    501461      WcfService.Instance.Disconnect();
    502462      clientCom.Shutdown();
     
    514474      clientCom.LogMessage("Restart received");
    515475      configManager.Asleep = false;
    516       clientCom.LogMessage("Restart done");
    517476    }
    518477
     
    524483      clientCom.LogMessage("Sleep received - not accepting any new jobs");
    525484      configManager.Asleep = true;
    526       DoPauseAll();   
     485      DoPauseAll();
    527486    }
    528487    #endregion
Note: See TracChangeset for help on using the changeset viewer.