Example #1
0
 /// <summary>
 /// Construct a <see cref="RepositoryController"/>
 /// </summary>
 /// <param name="databaseContext">The <see cref="IDatabaseContext"/> for the <see cref="ApiController"/></param>
 /// <param name="authenticationContextFactory">The <see cref="IAuthenticationContextFactory"/> for the <see cref="ApiController"/></param>
 /// <param name="instanceManager">The value of <see cref="instanceManager"/></param>
 /// <param name="gitHubClientFactory">The value of <see cref="gitHubClientFactory"/></param>
 /// <param name="jobManager">The value of <see cref="jobManager"/></param>
 /// <param name="logger">The <see cref="ILogger"/> for the <see cref="ApiController"/></param>
 /// <param name="generalConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing value of <see cref="generalConfiguration"/></param>
 public RepositoryController(IDatabaseContext databaseContext, IAuthenticationContextFactory authenticationContextFactory, IInstanceManager instanceManager, IGitHubClientFactory gitHubClientFactory, IJobManager jobManager, ILogger <RepositoryController> logger, IOptions <GeneralConfiguration> generalConfigurationOptions) : base(databaseContext, authenticationContextFactory, logger, true, true)
 {
     this.instanceManager     = instanceManager ?? throw new ArgumentNullException(nameof(instanceManager));
     this.gitHubClientFactory = gitHubClientFactory ?? throw new ArgumentNullException(nameof(gitHubClientFactory));
     this.jobManager          = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
     generalConfiguration     = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
 }
Example #2
0
        /// <summary>Run the specified job.</summary>
        /// <param name="job">The job to run.</param>
        /// <param name="jobManager">The job manager owning the job.</param>
        private void RunActualJob(IRunnable job, IJobManager jobManager)
        {
            try
            {
                if (!(job is JobRunnerSleepJob))
                {
                    SimsRunning.Add(job);
                }

                var startTime = DateTime.Now;

                Exception error = null;
                try
                {
                    // Run job.
                    job.Run(cancelToken);
                }
                catch (Exception err)
                {
                    error = err;
                }

                // Signal to JobManager the job has finished.
                InvokeJobCompleted(job, jobManager, startTime, error);

                if (!(job is JobRunnerSleepJob))
                {
                    SimsRunning.Remove(job);
                }
            }
            finally
            {
                Interlocked.Decrement(ref numberJobsRunning);
            }
        }
Example #3
0
        private void InitManagers()
        {
            //try
            //{
            var storage = _objectFactory.GetStorage(Storages.Redis, Config);

            _minerManager = _objectFactory.GetMinerManager(Config, _daemonClient);

            var jobTracker = _objectFactory.GetJobTracker();

            var blockProcessor = _objectFactory.GetBlockProcessor(Config, _daemonClient);

            _shareManager = _objectFactory.GetShareManager(Config, _daemonClient, jobTracker, storage, blockProcessor);

            var vardiffManager = _objectFactory.GetVardiffManager(Config, _shareManager);

            _banningManager = _objectFactory.GetBanManager(Config, _shareManager);

            _jobManager = _objectFactory.GetJobManager(Config, _daemonClient, jobTracker, _shareManager, _minerManager, _hashAlgorithm);
            _jobManager.Initialize(InstanceId);

            var paymentProcessor = _objectFactory.GetPaymentProcessor(Config, _daemonClient, storage, blockProcessor);

            paymentProcessor.Initialize(Config.Payments);

            var latestBlocks = _objectFactory.GetLatestBlocks(storage);
            var blockStats   = _objectFactory.GetBlockStats(latestBlocks, storage);

            Statistics = _objectFactory.GetPerPoolStats(Config, _daemonClient, _minerManager, _hashAlgorithm, blockStats, storage);
            //}
            //catch (Exception e)
            //{
            //    _logger.Error("Pool initialization error: {0:l}", e.Message);
            //}
        }
Example #4
0
 public VanillaServer(IPool pool, IMinerManager minerManager, IJobManager jobManager, ICoinConfig coinConfig)
 {
     _pool = pool;
     _minerManager = minerManager;
     _jobManager = jobManager;
     _logger = Log.ForContext<VanillaServer>().ForContext("Component", coinConfig.Name);
 }
Example #5
0
        private void InitManagers()
        {
            try
            {
                AccountManager    = _objectFactory.GetAccountManager(_storage, Config);
                BlockRepository   = _objectFactory.GetBlockRepository(_storage);
                PaymentRepository = _objectFactory.GetPaymentRepository(_storage);
                MinerManager      = _objectFactory.GetMinerManager(Config, _storage, AccountManager);

                var jobTracker = _objectFactory.GetJobTracker(Config);
                _shareManager = _objectFactory.GetShareManager(Config, Daemon, jobTracker, _storage);
                _objectFactory.GetVardiffManager(Config, _shareManager);
                _banningManager = _objectFactory.GetBanManager(Config, _shareManager);
                _jobManager     = _objectFactory.GetJobManager(Config, Daemon, jobTracker, _shareManager, MinerManager, HashAlgorithm);
                _jobManager.Initialize(InstanceId);

                var blockProcessor   = _objectFactory.GetBlockProcessor(Config, Daemon, _storage);
                var blockAccounter   = _objectFactory.GetBlockAccounter(Config, _storage, AccountManager);
                var paymentProcessor = _objectFactory.GetPaymentProcessor(Config, _storage, Daemon, AccountManager);
                _objectFactory.GetPaymentManager(Config, blockProcessor, blockAccounter, paymentProcessor);

                ProfitInfo = _objectFactory.GetProfitInfo(NetworkInfo, Config);
            }
            catch (Exception e)
            {
                _logger.Error("Pool initialization error: {0:l}", e.Message);
            }
        }
        public async Task WaitInt_WasRunningTooLong_WaitsAndReturnsNull()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            job.IsEnabled = true;

            job.Routine = async(parameter, tracker, output, token) =>
            {
                await output.WriteAsync("Hello!");

                await Task.Delay(TimeSpan.FromHours(1), token);
            };

            job.ForceStart();

            // Act

            await timeMachine.WaitUntilSecondsElapse(start, 1.0);

            var gotSignal = job.Wait(1000);

            // Assert
            Assert.That(gotSignal, Is.Null);
        }
Example #7
0
        public override void Execute(
            Japi.Job job,
            Action<string> updateStatus,
            IRepository repositoryService,
            IJobManager jobManager)
        {
            var tasks = (from t in job.Tasks
                         select new { Task = t, Dependencies = t.Dependencies.Count }).ToList();

            while(tasks.Count() > 0)
            {
                var task = (from t in tasks
                            where t.Dependencies == 0
                            select t.Task).First();

                updateStatus(string.Format("Creating task \"{0}\"...", task.Name));

                tasks = (from t in tasks
                         where t.Task != task
                         let dependencyList = t.Task.Dependencies
                         let dependencyCount = t.Dependencies
                         select new
                         {
                             Task = t.Task,
                             Dependencies = dependencyList.Contains(task)
                                                ?
                                                   dependencyCount - 1
                                                :
                                                   dependencyCount
                         }).ToList();

                task.Id = jobManager.CreateTask(task.ToContract());
            }
        }
Example #8
0
 public override void Execute(
     Job job, 
     Action<string> updateStatus,
     IRepository repositoryService, 
     IJobManager jobManager)
 {
     foreach(var file in job.Files.OfType<CreateFile>())
     {
         updateStatus(string.Format("Downloading file: \"{0}\"...", file.Name));
         using(var stream = repositoryService.Download(file.Link.Id))
         {
             using(var fstream = new FileStream(
                 Path.Combine(Directory.GetCurrentDirectory(), string.Format("{0}.data", file.Name)),
                 FileMode.Create))
             {
                 var buff = new byte[256];
                 while(true)
                 {
                     var isCompleted = stream.Read(buff, 0, buff.Length) < buff.Length;
                     fstream.Write(buff, 0, buff.Length);
                     if(isCompleted)
                         break;
                 }
             }
         }
     }
 }
Example #9
0
        public void Initialize()
        {
            var actualToken = Environment.GetEnvironmentVariable("TGS4_TEST_DISCORD_TOKEN");

            if (!String.IsNullOrWhiteSpace(actualToken))
            {
                testToken1 = new ChatBot
                {
                    ConnectionString     = actualToken,
                    ReconnectionInterval = 1
                }
            }
            ;

            var mockSetup = new Mock <IJobManager>();

            mockSetup
            .Setup(x => x.RegisterOperation(It.IsNotNull <Job>(), It.IsNotNull <JobEntrypoint>(), It.IsAny <CancellationToken>()))
            .Callback <Job, JobEntrypoint, CancellationToken>((job, entrypoint, cancellationToken) => job.StartedBy ??= new User {
            })
            .Returns(Task.CompletedTask);
            mockSetup
            .Setup(x => x.WaitForJobCompletion(It.IsNotNull <Job>(), It.IsAny <User>(), It.IsAny <CancellationToken>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask);
            mockJobManager = mockSetup.Object;
        }
        public void WaitInt_NotRunning_ReturnsCompletedImmediately()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            job.Routine = async(parameter, tracker, output, token) =>
            {
                await output.WriteAsync("Hello!");

                await Task.Delay(TimeSpan.FromSeconds(0.5), token);
            };

            // Act
            var waitResult = job.Wait(10);

            // Assert
            Assert.That(waitResult, Is.EqualTo(JobRunStatus.Completed));
        }
        public void WaitInt_JobIsDisposed_ThrowsJobObjectDisposedException()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            job.Routine = async(parameter, tracker, output, token) =>
            {
                await output.WriteAsync("Hello!");

                await Task.Delay(TimeSpan.FromSeconds(0.5), token);
            };

            job.IsEnabled = true;

            job.Schedule = new SimpleSchedule(SimpleScheduleKind.Second, 1, start);

            job.Dispose();

            // Act
            var ex = Assert.Throws <JobObjectDisposedException>(() => job.Wait(10));

            // Assert
            Assert.That(ex, Has.Message.EqualTo("'my-job' is disposed."));
        }
 /// <summary>
 /// JobsController constructor
 /// </summary>
 /// <param name="repository"></param>
 /// <param name="membershipManager"></param>
 /// <param name="userManager"></param>
 /// <param name="jobManager"></param>
 /// <param name="hub"></param>
 /// <param name="configuration"></param>
 /// <param name="httpContextAccessor"></param>
 /// <param name="jobCheckpointRepository"></param>
 /// <param name="jobParameterRepository"></param>
 /// <param name="automationRepository"></param>
 /// <param name="automationVersionRepo"></param>
 /// <param name="webhookPublisher"></param>
 public JobsController(
     IJobRepository repository,
     IAutomationRepository automationRepository,
     IJobParameterRepository jobParameterRepository,
     IJobCheckpointRepository jobCheckpointRepository,
     IMembershipManager membershipManager,
     ApplicationIdentityUserManager userManager,
     IJobManager jobManager,
     IHubContext <NotificationHub> hub,
     IConfiguration configuration,
     IHttpContextAccessor httpContextAccessor,
     IAutomationVersionRepository automationVersionRepo,
     IWebhookPublisher webhookPublisher) : base(repository, userManager, httpContextAccessor,
                                                membershipManager, configuration)
 {
     this.jobManager        = jobManager;
     this.jobParameterRepo  = jobParameterRepository;
     this.automationRepo    = automationRepository;
     this.jobCheckpointRepo = jobCheckpointRepository;
     this.jobManager.SetContext(base.SecurityContext);
     this.repository            = repository;
     _hub                       = hub;
     this.automationVersionRepo = automationVersionRepo;
     this.webhookPublisher      = webhookPublisher;
 }
Example #13
0
 public HttpTransferManager(AndroidContext context,
                            IJobManager jobManager,
                            IMessageBus messageBus,
                            IRepository repository) : base(jobManager, messageBus, repository)
 {
     this.context = context;
 }
        public async Task WaitInt_WasRunningThenFaulted_WaitsAndReturnsFaulted()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            job.IsEnabled = true;

            job.Routine = async(parameter, tracker, output, token) =>
            {
                await Task.Delay(500, token);

                throw new AbandonedMutexException("Hello there!");
            };

            // Act
            job.ForceStart();

            var waitResult = job.Wait(1000);

            await Task.Delay(50); // let job run get written.

            // Assert
            Assert.That(waitResult, Is.EqualTo(JobRunStatus.Faulted));
            Assert.That(job.GetInfo(null).Runs.Single().Exception, Is.TypeOf <AbandonedMutexException>());
        }
Example #15
0
        /// <summary>
        /// Construct an <see cref="Instance"/>
        /// </summary>
        /// <param name="metadata">The value of <see cref="metadata"/></param>
        /// <param name="repositoryManager">The value of <see cref="RepositoryManager"/></param>
        /// <param name="byondManager">The value of <see cref="ByondManager"/></param>
        /// <param name="dreamMaker">The value of <see cref="DreamMaker"/></param>
        /// <param name="watchdog">The value of <see cref="Watchdog"/></param>
        /// <param name="chat">The value of <see cref="Chat"/></param>
        /// <param name="configuration">The value of <see cref="Configuration"/></param>
        /// <param name="dmbFactory">The value of <see cref="dmbFactory"/></param>
        /// <param name="jobManager">The value of <see cref="jobManager"/></param>
        /// <param name="eventConsumer">The value of <see cref="eventConsumer"/></param>
        /// <param name="remoteDeploymentManagerFactory">The value of <see cref="remoteDeploymentManagerFactory"/>.</param>
        /// <param name="logger">The value of <see cref="logger"/></param>
        public Instance(
            Api.Models.Instance metadata,
            IRepositoryManager repositoryManager,
            IByondManager byondManager,
            IDreamMaker dreamMaker,
            IWatchdog watchdog,
            IChatManager chat,
            StaticFiles.IConfiguration
            configuration,
            IDmbFactory dmbFactory,
            IJobManager jobManager,
            IEventConsumer eventConsumer,
            IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory,
            ILogger <Instance> logger)
        {
            this.metadata     = metadata ?? throw new ArgumentNullException(nameof(metadata));
            RepositoryManager = repositoryManager ?? throw new ArgumentNullException(nameof(repositoryManager));
            ByondManager      = byondManager ?? throw new ArgumentNullException(nameof(byondManager));
            DreamMaker        = dreamMaker ?? throw new ArgumentNullException(nameof(dreamMaker));
            Watchdog          = watchdog ?? throw new ArgumentNullException(nameof(watchdog));
            Chat               = chat ?? throw new ArgumentNullException(nameof(chat));
            Configuration      = configuration ?? throw new ArgumentNullException(nameof(configuration));
            this.dmbFactory    = dmbFactory ?? throw new ArgumentNullException(nameof(dmbFactory));
            this.jobManager    = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
            this.eventConsumer = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer));
            this.remoteDeploymentManagerFactory = remoteDeploymentManagerFactory ?? throw new ArgumentNullException(nameof(remoteDeploymentManagerFactory));
            this.logger = logger ?? throw new ArgumentNullException(nameof(logger));

            timerLock = new object();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="BasicWatchdog"/> <see langword="class"/>.
 /// </summary>
 /// <param name="chat">The <see cref="IChatManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="sessionControllerFactory">The <see cref="ISessionControllerFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="dmbFactory">The <see cref="IDmbFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="reattachInfoHandler">The <see cref="IReattachInfoHandler"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="databaseContextFactory">The <see cref="IDatabaseContextFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="jobManager">The <see cref="IJobManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="serverControl">The <see cref="IServerControl"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="asyncDelayer">The <see cref="IAsyncDelayer"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="logger">The <see cref="ILogger"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="initialLaunchParameters">The <see cref="DreamDaemonLaunchParameters"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="instance">The <see cref="Api.Models.Instance"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="autoStart">The autostart value for the <see cref="WatchdogBase"/>.</param>
 public BasicWatchdog(
     IChatManager chat,
     ISessionControllerFactory sessionControllerFactory,
     IDmbFactory dmbFactory,
     IReattachInfoHandler reattachInfoHandler,
     IDatabaseContextFactory databaseContextFactory,
     IJobManager jobManager,
     IServerControl serverControl,
     IAsyncDelayer asyncDelayer,
     ILogger <BasicWatchdog> logger,
     DreamDaemonLaunchParameters initialLaunchParameters,
     Api.Models.Instance instance,
     bool autoStart)
     : base(
         chat,
         sessionControllerFactory,
         dmbFactory,
         reattachInfoHandler,
         databaseContextFactory,
         jobManager,
         serverControl,
         asyncDelayer,
         logger,
         initialLaunchParameters,
         instance,
         autoStart)
 {
 }
        public void WaitInt_NegativeArgument_ThrowsArgumentOutOfRangeException()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            job.Routine = async(parameter, tracker, output, token) =>
            {
                await output.WriteAsync("Hello!");

                await Task.Delay(TimeSpan.FromSeconds(0.5), token);
            };

            job.IsEnabled = true;

            job.Schedule = new SimpleSchedule(SimpleScheduleKind.Second, 1, start);

            // Act
            var ex = Assert.Throws <ArgumentOutOfRangeException>(() => job.Wait(-1));

            // Assert
            Assert.That(ex.ParamName, Is.EqualTo("millisecondsTimeout"));
        }
        public override void InternalExecute(int maxThreads)
        {
            try
            {
                Logger.WriteToLog("Processing genome '{0}' with {1} threads", Genome.Directory, maxThreads);

                Initialize();

                // if throttling, clip max threads to number of work request so we don't have idle threads
                if (ShouldThrottle)
                {
                    maxThreads = Math.Min(maxThreads, WorkRequests.Count);
                }

                JobManager = new JobManager(maxThreads);
                var jobs = new List <IJob>();

                foreach (var workRequest in WorkRequests)
                {
                    _remainingChrByBam.Add(workRequest, new List <string>());
                }

                // break out work by chr and bam.  make sure to lump chr work together
                foreach (var chrName in Genome.ChromosomesToProcess)
                {
                    var chrWork = new List <BamWorkRequest>();

                    foreach (var workRequest in WorkRequests)
                    {
                        chrWork.Add(workRequest);
                        jobs.Add(new GenericJob(() => ProcessByBam(workRequest, chrName), workRequest.BamFileName + "_" + chrName));
                        _remainingChrByBam[workRequest].Add(chrName);
                    }

                    _remainingWorkByChr.Add(chrName, chrWork);
                }

                // set up throttle signals
                if (ShouldThrottle)
                {
                    InitThrottleSignals(WorkRequests);
                }

                if (maxThreads > 1)
                {
                    JobManager.Process(jobs); // process all jobs
                }
                else
                {
                    foreach (var job in jobs)
                    {
                        job.Execute();
                    }
                }
            }
            finally
            {
                Finish();
            }
        }
        protected internal override void UpdateSuspensionState(CommandContext commandContext, ISuspensionState suspensionState)
        {
            IJobDefinitionManager jobDefinitionManager = commandContext.JobDefinitionManager;
            IJobManager           jobManager           = commandContext.JobManager;

            if (!string.IsNullOrEmpty(JobDefinitionId))
            {
                jobDefinitionManager.UpdateJobDefinitionSuspensionStateById(JobDefinitionId, suspensionState);
            }
            else if (!string.IsNullOrEmpty(ProcessDefinitionId))
            {
                jobDefinitionManager.UpdateJobDefinitionSuspensionStateByProcessDefinitionId(ProcessDefinitionId, suspensionState);
                jobManager.UpdateStartTimerJobSuspensionStateByProcessDefinitionId(ProcessDefinitionId, suspensionState);
            }
            else if (!string.IsNullOrEmpty(ProcessDefinitionKey))
            {
                if (!IsProcessDefinitionTenantIdSet)
                {
                    jobDefinitionManager.UpdateJobDefinitionSuspensionStateByProcessDefinitionKey(ProcessDefinitionKey, suspensionState);
                    jobManager.UpdateStartTimerJobSuspensionStateByProcessDefinitionKey(ProcessDefinitionKey, suspensionState);
                }
                else
                {
                    jobDefinitionManager.UpdateJobDefinitionSuspensionStateByProcessDefinitionKeyAndTenantId(ProcessDefinitionKey, ProcessDefinitionTenantId, suspensionState);
                    jobManager.UpdateStartTimerJobSuspensionStateByProcessDefinitionKeyAndTenantId(ProcessDefinitionKey, ProcessDefinitionTenantId, suspensionState);
                }
            }
        }
 /// <summary>
 /// Construct an <see cref="Instance"/>
 /// </summary>
 /// <param name="metadata">The value of <see cref="metadata"/></param>
 /// <param name="repositoryManager">The value of <see cref="RepositoryManager"/></param>
 /// <param name="byondManager">The value of <see cref="ByondManager"/></param>
 /// <param name="dreamMaker">The value of <see cref="dreamMaker"/></param>
 /// <param name="watchdog">The value of <see cref="Watchdog"/></param>
 /// <param name="chat">The value of <see cref="Chat"/></param>
 /// <param name="configuration">The value of <see cref="Configuration"/></param>
 /// <param name="compileJobConsumer">The value of <see cref="compileJobConsumer"/></param>
 /// <param name="databaseContextFactory">The value of <see cref="databaseContextFactory"/></param>
 /// <param name="dmbFactory">The value of <see cref="dmbFactory"/></param>
 /// <param name="jobManager">The value of <see cref="jobManager"/></param>
 /// <param name="eventConsumer">The value of <see cref="eventConsumer"/></param>
 /// <param name="gitHubClientFactory">The value of <see cref="gitHubClientFactory"/></param>
 /// <param name="logger">The value of <see cref="logger"/></param>
 public Instance(
     Api.Models.Instance metadata,
     IRepositoryManager repositoryManager,
     IByondManager byondManager,
     IDreamMaker dreamMaker,
     IWatchdog watchdog,
     IChat chat,
     StaticFiles.IConfiguration
     configuration,
     ICompileJobConsumer compileJobConsumer,
     IDatabaseContextFactory databaseContextFactory,
     IDmbFactory dmbFactory,
     IJobManager jobManager,
     IEventConsumer eventConsumer,
     IGitHubClientFactory gitHubClientFactory,
     ILogger <Instance> logger)
 {
     this.metadata     = metadata ?? throw new ArgumentNullException(nameof(metadata));
     RepositoryManager = repositoryManager ?? throw new ArgumentNullException(nameof(repositoryManager));
     ByondManager      = byondManager ?? throw new ArgumentNullException(nameof(byondManager));
     this.dreamMaker   = dreamMaker ?? throw new ArgumentNullException(nameof(dreamMaker));
     Watchdog          = watchdog ?? throw new ArgumentNullException(nameof(watchdog));
     Chat                        = chat ?? throw new ArgumentNullException(nameof(chat));
     Configuration               = configuration ?? throw new ArgumentNullException(nameof(configuration));
     this.compileJobConsumer     = compileJobConsumer ?? throw new ArgumentNullException(nameof(compileJobConsumer));
     this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
     this.dmbFactory             = dmbFactory ?? throw new ArgumentNullException(nameof(dmbFactory));
     this.jobManager             = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
     this.eventConsumer          = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer));
     this.gitHubClientFactory    = gitHubClientFactory ?? throw new ArgumentNullException(nameof(gitHubClientFactory));
     this.logger                 = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Example #21
0
        public void Cancel_NotRunning_ReturnsFalse()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);
            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");
            job.IsEnabled = true;

            // Act
            var canceled = job.Cancel();

            // Assert
            Assert.That(canceled, Is.False);

            var info = job.GetInfo(null);

            Assert.That(info.CurrentRun, Is.Null);
            Assert.That(info.NextDueTime, Is.EqualTo(TestHelper.NeverCopy));
            Assert.That(info.NextDueTimeIsOverridden, Is.False);
            Assert.That(info.RunCount, Is.Zero);
            Assert.That(info.Runs, Is.Empty);
        }
Example #22
0
		public JobScheduler(IJobManager jobManager, IScheduler scheduler, IEventReporter eventReporter, ITypeLoader typeLoader)
		{
			this.JobManager = jobManager;
			this.Scheduler = scheduler;
			this.EventReporter = eventReporter;
			this.TypeLoader = typeLoader;
		}
Example #23
0
        /// <summary>
        /// Initializes a new instance of the <see cref="InstanceManager"/> class.
        /// </summary>
        /// <param name="instanceFactory">The value of <see cref="instanceFactory"/>.</param>
        /// <param name="ioManager">The value of <paramref name="ioManager"/>.</param>
        /// <param name="databaseContextFactory">The value of <paramref name="databaseContextFactory"/>.</param>
        /// <param name="assemblyInformationProvider">The value of <see cref="assemblyInformationProvider"/>.</param>
        /// <param name="jobManager">The value of <see cref="jobManager"/>.</param>
        /// <param name="serverControl">The value of <see cref="serverControl"/>.</param>
        /// <param name="systemIdentityFactory">The value of <see cref="systemIdentityFactory"/>.</param>
        /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/>.</param>
        /// <param name="serverPortProvider">The value of <see cref="serverPortProvider"/>.</param>
        /// <param name="swarmService">The value of <see cref="swarmService"/>.</param>
        /// <param name="generalConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="generalConfiguration"/>.</param>
        /// <param name="swarmConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="swarmConfiguration"/>.</param>
        /// <param name="logger">The value of <see cref="logger"/>.</param>
        public InstanceManager(
            IInstanceFactory instanceFactory,
            IIOManager ioManager,
            IDatabaseContextFactory databaseContextFactory,
            IAssemblyInformationProvider assemblyInformationProvider,
            IJobManager jobManager,
            IServerControl serverControl,
            ISystemIdentityFactory systemIdentityFactory,
            IAsyncDelayer asyncDelayer,
            IServerPortProvider serverPortProvider,
            ISwarmService swarmService,
            IOptions <GeneralConfiguration> generalConfigurationOptions,
            IOptions <SwarmConfiguration> swarmConfigurationOptions,
            ILogger <InstanceManager> logger)
        {
            this.instanceFactory             = instanceFactory ?? throw new ArgumentNullException(nameof(instanceFactory));
            this.ioManager                   = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
            this.databaseContextFactory      = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
            this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
            this.jobManager                  = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
            this.serverControl               = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
            this.systemIdentityFactory       = systemIdentityFactory ?? throw new ArgumentNullException(nameof(systemIdentityFactory));
            this.asyncDelayer                = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
            this.serverPortProvider          = serverPortProvider ?? throw new ArgumentNullException(nameof(serverPortProvider));
            this.swarmService                = swarmService ?? throw new ArgumentNullException(nameof(swarmService));
            generalConfiguration             = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
            swarmConfiguration               = swarmConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(swarmConfigurationOptions));
            this.logger = logger ?? throw new ArgumentNullException(nameof(logger));

            instances      = new Dictionary <long, InstanceContainer>();
            bridgeHandlers = new Dictionary <string, IBridgeHandler>();
            readyTcs       = new TaskCompletionSource <object>();
            instanceStateChangeSemaphore = new SemaphoreSlim(1);
        }
Example #24
0
        public TcpServer(IContainerManager containerManager, IJobManager jobManager, uint tcpPort, CancellationToken cancellationToken)
        {
            if (containerManager == null)
            {
                throw new ArgumentNullException("containerManager");
            }
            this.containerManager = containerManager;

            if (jobManager == null)
            {
                throw new ArgumentNullException("jobManager");
            }
            this.jobManager = jobManager;

            if (cancellationToken == null)
            {
                throw new ArgumentNullException("cancellationToken");
            }
            this.cancellationToken = cancellationToken;

            if (tcpPort < 1025 || tcpPort > 65535)
            {
                throw new ArgumentOutOfRangeException("tcpPort", tcpPort, "TCP port must be within IANA specifications of 1025 to 65535");
            }

            this.endpoint = new IPEndPoint(IPAddress.Loopback, (int)tcpPort);
            this.listener = new TcpListener(endpoint); // lib/dea/task.rb, 66
            this.listener.Server.NoDelay = true;
        }
Example #25
0
        public override void Execute(
            JobDefinition job,
            Action<int, int> notifyProgress,
            Action<string> updateStatus,
            IRepository repositoryService,
            IJobManager jobManager)
        {
            var allFiles = job.Files.ToDictionary(file => file, _ => false);

            var totalItems = job.Tasks.Count;
            var currentItem = 0;
            foreach (var task in job.Tasks)
            {
                updateStatus(string.Format("Processing files used by task \"{0}\"...", task.Name));
                allFiles[task.EntryPoint.Assembly] = true;

                foreach (var file in task.EntryPoint.References)
                    allFiles[file] = true;

                foreach (var file in task.InputFiles)
                    allFiles[file] = true;

                foreach (var file in task.OutputFiles)
                    allFiles[file] = true;

                currentItem++;
                notifyProgress(currentItem, totalItems);
            }

            updateStatus("Building file list...");

            job.Files = allFiles.Where(pair => pair.Value)
                .Select(pair => pair.Key)
                .ToList();
        }
Example #26
0
        public void ManagerScriptTest()
        {
            string  managerCode = "using System; using Models.Core; namespace Models { public class Script : Model, ITest { public void Run() { @action } } }";
            Manager testManager = new Manager();

            testManager.Name = "TestScript";

            Folder testFolder = new Folder();

            testFolder.Name = "TestFolder";

            testFolder.Children = new List <Model>()
            {
                testManager
            };
            testManager.Parent = testFolder;

            MockStorage storage = new MockStorage();

            Simulations simToRun = Simulations.Create(new List <IModel>()
            {
                testFolder, storage
            });
            IJobManager jobManager = Runner.ForSimulations(simToRun, simToRun, true);

            // Test should fail if it throws.
            testManager.Code = managerCode.Replace("@action", "throw new Exception(\"Test has failed.\");");
            TestWithAllJobRunners(jobManager, EnsureSimulationRanRed);

            // Test should pass if it doesn't throw.
            testManager.Code = managerCode.Replace("@action", "return;");
            TestWithAllJobRunners(jobManager, EnsureSimulationRanGreen);
        }
Example #27
0
        public ControllerEngine(bool startSynchronization, int syncFrequency)
        {
            _JobManager					= new JobManager();
            _Broker						= new Broker();
            _PluginThreadBlocker		= new AutoResetEvent(false);

            IsDisposed					= false;
            _ShouldRunPlugins			= startSynchronization;

            _PluginThread				= new Thread(CheckAllPluginsAndRunRunablesLoop);
            _PluginThread.Name			= "Controller Thread";

            JobManager.JobAddedToQueue	+= JobManager_JobAddedToQueue;
            Broker.ExecuteCompleted		+= Broker_PluginOperationEnded;
            Broker.ExecuteFailed		+= Broker_PluginOperationEnded;
            Broker.CommitCompleted		+= Broker_PluginOperationEnded;
            Broker.CommitFailed			+= Broker_PluginOperationEnded;
            Broker.RollbackCompleted	+= Broker_PluginOperationEnded;
            Broker.RollbackFailed		+= Broker_PluginOperationEnded;

            InitializeAgents();

            if (startSynchronization)
                _JobManager.BeginSynchronize(syncFrequency);
        }
Example #28
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="manager">JobManager</param>
        public JobManagerSettingPage(IJobManager manager)
        {
            InitializeComponent();
            m_manager = manager;

            string name = m_manager.GetCurrentEnvironment();
            List<string> envList = m_manager.GetEnvironmentList();
            foreach (string envname in envList)
            {
                int index = envComboBox.Items.Add(envname);
                if (name.Equals(envname))
                {
                    envComboBox.SelectedIndex = index;
                    Dictionary<string, object> propDic =
                        m_manager.GetEnvironmentProperty();
                    int conc = m_manager.GetDefaultConcurrency();
                    concTextBox.Text = conc.ToString();
                    envDataGridView.Rows.Clear();
                    foreach (string propName in propDic.Keys)
                    {
                        int i = envDataGridView.Rows.Add(
                            new object[] { propName, propDic[propName].ToString() });
                        envDataGridView.Rows[i].Tag = propDic[propName].GetType();
                    }
                }
            }
            this.Name = MessageResources.NameJobManage;
        }
Example #29
0
        private void Start()
        {
            _gem = _locator.GetService <IEntityManager>();
            _map = _locator.GetService <IHexMap>();

            _inputMachine = new InputStateMachine();
            _inputMachine.SetState(null);

            var input = _locator.GetService <IGameInputManager>();

            input.RegisterProcessor(_inputMachine);

            _jconverter = _locator.GetService <IJsonConverter>();
            _jobManager = _locator.GetService <IJobManager>();
            _networker  = _locator.GetService <INetworker>();

            var networkDataHandler = new Dictionary <EventCode, Action <string> >();

            _networker.DataReceived += (code, data) =>
            {
                if (networkDataHandler.ContainsKey(code))
                {
                    networkDataHandler[code].Invoke(data);
                }
                else
                {
                    Debug.Log($"[GameManager] unhandeled event code received: {code}\n{data}");
                }
            };

            networkDataHandler.Add(EventCode.GameStart, MakeHandlerBridge <GameConfiguration>(StartGame));
            networkDataHandler.Add(EventCode.GameAbort, MakeHandlerBridge <GameAbortData>(GameAborted));
            networkDataHandler.Add(EventCode.StartTurn, MakeHandlerBridge <StartTurnData>(StartNextTurn));
            networkDataHandler.Add(EventCode.DoJob, MakeHandlerBridge <IJob>(OnDoJob));
        }
        public void WaitInt_WasRunningThenCanceled_WaitsAndReturnsCanceled()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            job.IsEnabled = true;

            job.Routine = async(parameter, tracker, output, token) =>
            {
                await Task.Delay(500, token);
            };

            // Act
            job.ForceStart();

            ThreadPool.QueueUserWorkItem(state =>
            {
                Thread.Sleep(200);
                job.Cancel();
            });

            var waitResult = job.Wait(1000);

            // Assert
            Assert.That(waitResult, Is.EqualTo(JobRunStatus.Canceled));
        }
Example #31
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="asyncExecutor"></param>
        /// <param name="jobManager"></param>
        public AcquireTimerJobsRunnable(IAsyncExecutor asyncExecutor, IJobManager jobManager)
        {
            this.asyncExecutor = asyncExecutor;
            this.jobManager    = jobManager;

            this.Runable += new ThreadStart(Run);
        }
Example #32
0
        private static async Task StartJob(
            IJobManager jobManager,
            TwitterCredentialsOptions twitterCredentialsOptions,
            TwitterMetadata metadata
            )
        {
            // var query = "snakebite;snakebites;\"morsure de serpent\";\"morsures de serpents\";\"لدغات الأفاعي\";\"لدغة الأفعى\";\"لدغات أفاعي\";\"لدغة أفعى\"";
            // TODO add NOT cocktail NOT music
            // var query = "snake bite NOT cocktail NOT darts NOT piercing";

            var jobId     = Guid.Parse("a43e8bb4-9c15-48a8-a0a3-7479b75eb6d0");
            var jobConfig = new DataAcquirerJobConfig()
            {
                Attributes = new Dictionary <string, string>
                {
                    { "TopicQuery", metadata.Query },
                    { "AccessToken", twitterCredentialsOptions.AccessToken },
                    { "AccessTokenSecret", twitterCredentialsOptions.AccessTokenSecret },
                    { "ApiKey", twitterCredentialsOptions.ApiKey },
                    { "ApiSecretKey", twitterCredentialsOptions.ApiSecretKey },
                },
                JobId = jobId,
                OutputMessageBrokerChannels = new string[] { "job_management.component_data_input.DataAnalyser_sentiment" }
            };

            try
            {
                await jobManager.StartNewJobAsync(jobConfig);
            }
            catch
            {
            }
        }
        /// <summary>
        /// Construct an <see cref="InstanceManager"/>
        /// </summary>
        /// <param name="instanceFactory">The value of <see cref="instanceFactory"/></param>
        /// <param name="ioManager">The value of <paramref name="ioManager"/></param>
        /// <param name="databaseContextFactory">The value of <paramref name="databaseContextFactory"/></param>
        /// <param name="application">The value of <see cref="application"/></param>
        /// <param name="jobManager">The value of <see cref="jobManager"/></param>
        /// <param name="serverControl">The <see cref="IServerControl"/> for the <see cref="InstanceManager"/></param>
        /// <param name="logger">The value of <see cref="logger"/></param>
        public InstanceManager(IInstanceFactory instanceFactory, IIOManager ioManager, IDatabaseContextFactory databaseContextFactory, IApplication application, IJobManager jobManager, IServerControl serverControl, ILogger <InstanceManager> logger)
        {
            this.instanceFactory        = instanceFactory ?? throw new ArgumentNullException(nameof(instanceFactory));
            this.ioManager              = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
            this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
            this.application            = application ?? throw new ArgumentNullException(nameof(application));
            this.jobManager             = jobManager ?? throw new ArgumentNullException(nameof(jobManager));

            if (serverControl == null)
            {
                throw new ArgumentNullException(nameof(serverControl));
            }

            shutdownCancellationTokenSource = new CancellationTokenSource();
            var cancellationToken = shutdownCancellationTokenSource.Token;

            serverControl.RegisterForRestart(() =>
            {
                lock (this)
                    shutdownTasks.AddRange(instances.Select(x => x.Value.Chat.SendBroadcast("TGS: Restart requested...", cancellationToken)));
            });

            this.logger = logger ?? throw new ArgumentNullException(nameof(logger));

            instances     = new Dictionary <long, IInstance>();
            shutdownTasks = new List <Task>();
        }
Example #34
0
        public NotificationManager(AndroidContext context,
                                   IServiceProvider services,
                                   ISerializer serializer,
                                   IJobManager jobs,
                                   IRepository repository,
                                   ISettings settings)
        {
            this.context    = context;
            this.services   = services;
            this.serializer = serializer;
            this.jobs       = jobs;
            this.repository = repository;
            this.settings   = settings;

            // auto process intent?
            //this.context
            //    .WhenActivityStatusChanged()
            //    .Where(x => x.Status == ActivityState.Created)
            //    .Subscribe(x => TryProcessIntent(x.Activity.Intent));

            if (this.context.IsMinApiLevel(26))
            {
                this.newManager = Native.FromContext(context.AppContext);
            }
            else
            {
                this.compatManager = NotificationManagerCompat.From(context.AppContext);
            }
        }
Example #35
0
        /// <summary>Main DoWork method for the task thread.</summary>
        private void JobRunnerThread()
        {
            IJobManager nextJob = null;

            while (!cancel)
            {
                try
                {
                    nextJob = GetJobFromServer();

                    if (nextJob != null)
                    {
                        // Run the job.
                        IJobRunner runner = new JobRunnerAsync();
                        runner.Run(nextJob,
                                   wait: true,
                                   numberOfProcessors: Convert.ToInt32(appSettings["MaximumNumberOfCores"]));

                        // Tell the server we've finished the job.
                        UpdateServerForCompletedJob(nextJob);
                    }
                }
                catch (Exception err)
                {
                    WriteToLog(err.Message);
                }
            }
        }
Example #36
0
        /// <summary>Run the specified jobs</summary>
        /// <param name="jobs">An instance of a class that manages all jobs.</param>
        /// <param name="wait">Wait until all jobs finished before returning?</param>
        /// <param name="numberOfProcessors">The maximum number of cores to use.</param>
        public void Run(IJobManager jobs, bool wait = false, int numberOfProcessors = -1)
        {
            // Determine number of threads to use
            if (numberOfProcessors == -1)
            {
                string numOfProcessorsString = Environment.GetEnvironmentVariable("NUMBER_OF_PROCESSORS");
                if (numOfProcessorsString != null)
                {
                    numberOfProcessors = Convert.ToInt32(numOfProcessorsString);
                }
                numberOfProcessors = System.Math.Max(numberOfProcessors, 1);
            }

            cancelToken = new CancellationTokenSource();

            // Run all jobs on background thread
            Task t = Task.Run(() => JobRunnerThread(jobs, numberOfProcessors));

            if (wait)
            {
                while (!t.IsCompleted)
                {
                    Thread.Sleep(200);
                }
            }
        }
Example #37
0
 public override void Execute(
     Japi.Job job,
     Action<string> updateStatus,
     IRepository repositoryService,
     IJobManager jobManager)
 {
 }
Example #38
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BasicWatchdog"/> <see langword="class"/>.
 /// </summary>
 /// <param name="chat">The <see cref="IChatManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="sessionControllerFactory">The <see cref="ISessionControllerFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="dmbFactory">The <see cref="IDmbFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="sessionPersistor">The <see cref="ISessionPersistor"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="jobManager">The <see cref="IJobManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="serverControl">The <see cref="IServerControl"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="asyncDelayer">The <see cref="IAsyncDelayer"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="diagnosticsIOManager">The <see cref="IIOManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="eventConsumer">The <see cref="IEventConsumer"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="remoteDeploymentManagerFactory">The <see cref="IRemoteDeploymentManagerFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="logger">The <see cref="ILogger"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="initialLaunchParameters">The <see cref="DreamDaemonLaunchParameters"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="instance">The <see cref="Api.Models.Instance"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="autoStart">The autostart value for the <see cref="WatchdogBase"/>.</param>
 public BasicWatchdog(
     IChatManager chat,
     ISessionControllerFactory sessionControllerFactory,
     IDmbFactory dmbFactory,
     ISessionPersistor sessionPersistor,
     IJobManager jobManager,
     IServerControl serverControl,
     IAsyncDelayer asyncDelayer,
     IIOManager diagnosticsIOManager,
     IEventConsumer eventConsumer,
     IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory,
     ILogger <BasicWatchdog> logger,
     DreamDaemonLaunchParameters initialLaunchParameters,
     Api.Models.Instance instance,
     bool autoStart)
     : base(
         chat,
         sessionControllerFactory,
         dmbFactory,
         sessionPersistor,
         jobManager,
         serverControl,
         asyncDelayer,
         diagnosticsIOManager,
         eventConsumer,
         remoteDeploymentManagerFactory,
         logger,
         initialLaunchParameters,
         instance,
         autoStart)
 {
 }
Example #39
0
 public async Task <Result> TestJob([FromServices] IJobManager jobManager)
 {
     jobManager.Enqueue <Demo1, Demo1Args>(new Demo1Args {
         Name = "1"
     });
     return(Result.Ok());
 }
Example #40
0
 public DriftCorrector(Transform transform, Rigidbody rigidbody, string optionalClientName = "Unknown") {
     D.Assert(!rigidbody.useGravity);    // can be isKinematic until operations commence
     ClientName = optionalClientName;
     _transform = transform;
     _rigidbody = rigidbody;
     _gameMgr = References.GameManager;
     _jobMgr = References.JobManager;
 }
Example #41
0
 public override void Execute(
     Japi.Job job,
     Action<string> updateStatus,
     IRepository repositoryService,
     IJobManager jobManager)
 {
     job.Id = jobManager.CreateJob(job.Name).Id;
 }
Example #42
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StratumServer"/> class.
 /// </summary>
 /// <param name="pool"></param>
 /// <param name="minerManager">The miner manager.</param>
 /// <param name="jobManager"></param>
 /// <param name="banManager"></param>
 /// <param name="poolConfig"></param>
 public StratumServer(IPoolConfig poolConfig, IPool pool, IMinerManager minerManager, IJobManager jobManager, IBanManager banManager)
 {
     _pool = pool;
     _minerManager = minerManager;
     _jobManager = jobManager;
     _banManager = banManager;
     _logger = Log.ForContext<StratumServer>().ForContext("Component", poolConfig.Coin.Name);
 }
Example #43
0
 public override void Execute(
     JobDefinition job, 
     Action<int, int> notifyProgress, 
     Action<string> updateStatus,
     IRepository repositoryService, 
     IJobManager jobManager)
 {
     updateStatus("Linking files...");
 }
 public JobRequestHandler(IContainerManager containerManager, IJobManager jobManager, Request request)
     : base(containerManager, request)
 {
     if (jobManager == null)
     {
         throw new ArgumentNullException("jobManager");
     }
     this.jobManager = jobManager;
 }
Example #45
0
 public override void Execute(
     JobDefinition job, 
     Action<int, int> notifyProgress, 
     Action<string> updateStatus,
     IRepository repositoryService, 
     IJobManager jobManager)
 {
     updateStatus("Creating job...");
     job.Id = jobManager.CreateJob(job.Name).Id;
 }
Example #46
0
 public UploadJobView(StagesProvider stagesProvider, JobDefinition job, IRepositoryClientFactory repositoryClientFactory, IJobManager jobManager)
 {
     InitializeComponent();
     this.stagesProvider = stagesProvider;
     this.jobManager = jobManager;
     this.repositoryClientFactory = repositoryClientFactory;
     this.job = job;
     listStages.ItemsSource = stagesProvider.Stages;
     progressBar.Maximum = ProgressBarMaximum;
 }
Example #47
0
 /// <summary>
 /// Gets the specified service name.
 /// </summary>
 /// <param name="serverName">Name of the service.</param>
 /// <param name="pool"></param>
 /// <param name="minerManager">The miner manager.</param>
 /// <returns></returns>
 public IMiningServer Get(string serverName, IPool pool, IMinerManager minerManager, IJobManager jobManager)
 {
     var @params = new NamedParameterOverloads
     {
         {"pool", pool},
         {"minerManager", minerManager},
         {"jobManager", jobManager}
     };
     return _applicationContext.Container.Resolve<IMiningServer>(serverName, @params);
 }
Example #48
0
        public JobProcessor(
            IWamsClient wamsClient,
            IAssetManager assetManager,
            IJobManager jobManager,
            IOrchardServices orchardServices,
            IDistributedLockService distributedLockService) {

            _wamsClient = wamsClient;
            _assetManager = assetManager;
            _jobManager = jobManager;
            _orchardServices = orchardServices;
            _distributedLockService = distributedLockService;
        }
Example #49
0
 public AccountContext(
     IDbContext dbContext,
     IEmailService mailService,
     AccountManager accoutnManager,
     IBlobService blobService,
     IJobManager jobManager)
 {
     this.dbContext = dbContext;
     this.accountManager = accoutnManager;
     this.blobService = blobService;
     this.jobManager = jobManager;
     this.mailService = mailService;
 }
Example #50
0
 public override void Execute(
     Japi.Job job,
     Action<string> updateStatus,
     IRepository repositoryService,
     IJobManager jobManager)
 {
     updateStatus("Validating job's graph...");
     var index = 0;
     var count = job.Tasks.Count;
     if(!job.Tasks.All(task => RecoursiveCheckGraph(task, ImmutableList<Japi.Task>.Empty)))
     {
         throw new Exception("Job is invalid: graph contains cycles.");
     }
 }
        public CloudVideoPartHandler(
            IAssetManager assetManager,
            IJobManager jobManager,
            INotifier notifier) {

            _assetManager = assetManager;
            _jobManager = jobManager;
            _notifier = notifier;
            T = NullLocalizer.Instance;
            OnActivated<CloudVideoPart>(SetupFields);
            OnPublishing<CloudVideoPart>(DeferOrPublishAssets);
            OnUnpublished<CloudVideoPart>(CancelAndUnpublishAssets);
            OnRemoved<CloudVideoPart>(RemoveAssets);
        }
Example #52
0
        public DownloadsViewModel(IJobManager jobManager)
        {
            Jobs = jobManager.CurrentJobs.CreateDerivedCollection(
                job => new DownloadItemViewModel(job),
                x => true,
                (x, y) => x.Job.CompareTo(y.Job),
                jobManager.WhenStatusChanged
            );

            jobManager.CurrentJobs.CountChanged
                .StartWith(0)
                .Select(_ => Jobs.Count == 0)
                .ToProperty(this, x => x.IsEmpty, out _isEmpty);
        }
Example #53
0
 public override void Execute(
     Job job,
     Action<string> updateStatus,
     IRepository repositoryService,
     IJobManager jobManager)
 {
     Console.WriteLine("Press any key to begin deleting files...");
     Console.ReadKey();
     foreach(var file in job.Files)
     {
         updateStatus(string.Format("Deleting file: \"{0}\"...", file.Name));
         repositoryService.Delete(file.Link.Id);
     }
 }
        public JobProcessor(
            IWamsClient wamsClient,
            IClock clock,
            ITaskLeaseService taskLeaseService,
            IAssetManager assetManager,
            IJobManager jobManager,
            IOrchardServices orchardServices) {

            _wamsClient = wamsClient;
            _clock = clock;
            _taskLeaseService = taskLeaseService;
            _assetManager = assetManager;
            _jobManager = jobManager;
            _orchardServices = orchardServices;
        }
Example #55
0
 public override void Execute(
     Japi.Job job,
     Action<string> updateStatus,
     IRepository repositoryService,
     IJobManager jobManager)
 {
     foreach(var file in job.Files)
     {
         if(file is Japi.CreateFile)
             updateStatus(string.Format("Creating file: {0}...", file.Name));
         else
             updateStatus(string.Format("Uploading file: {0}...", file.Name));
         file.SaveFile(repositoryService);
     }
 }
 public BitbucketService(
     IBitbucketApiService apiService,
     IRepository<BitbucketRepositoryDataRecord> repository,
     IJobManager jobManager,
     IFileProcessor fileProcessor,
     IContentManager contentManager,
     IEncryptionService encryptionService)
 {
     _apiService = apiService;
     _jobManager = jobManager;
     _repository = repository;
     _fileProcessor = fileProcessor;
     _contentManager = contentManager;
     _encryptionService = encryptionService;
 }
Example #57
0
 public override void Execute(
     JobDefinition job,
     Action<int, int> notifyProgress,
     Action<string> updateStatus,
     IRepository repositoryService,
     IJobManager jobManager)
 {
     updateStatus("Validating job's graph...");
     var index = 0;
     var count = job.Tasks.Count;
     if (!job.Tasks.All(task =>
     {
         notifyProgress(++index, count);
         return RecoursiveCheckGraph(task, ImmutableList<Guid>.Empty);
     }))
         throw new Exception("Job is invalid: graph contains cycles.");
 }
 public InternalLinksExtractor(
     IGraphManager graphManager,
     IContentManager contentManager,
     ISiteService siteService,
     IJobManager jobManager,
     IAliasService aliasService,
     IScheduledTaskManager scheduledTaskManager,
     IClock clock,
     IGraphSettingsService settingsService)
 {
     _graphManager = graphManager;
     _contentManager = contentManager;
     _siteService = siteService;
     _jobManager = jobManager;
     _aliasService = aliasService;
     _scheduledTaskManager = scheduledTaskManager;
     _clock = clock;
     _settingsService = settingsService;
 }
Example #59
0
        public OrderRepository(
            IJobManager manager,
            SupportedOrderStore supportedOrderStore,
            AccountManager accountManager,
            IHRIDService hridService,
            IPaymentManager paymentManager,
            IVendorService vendorService
            )
        {
            this.manager = manager;
            this.supportedOrderStore = supportedOrderStore;
            this.accountManager = accountManager;
            this.hridService = hridService;
            this.vendorService = vendorService;

            orderCalculationService = new DefaultOrderCalculationService();
            serviceChargeCalculationService = new DefaultDeliveryServiceChargeCalculationService();
            paymentService = new PaymentService(paymentManager);
        }
Example #60
0
        public override void Execute(
            Japi.Job job,
            Action<string> updateStatus,
            IRepository repositoryService,
            IJobManager jobManager)
        {
            var timer = Stopwatch.StartNew();
            jobManager.OpenJob(job.Id);
            jobManager.StartJob();

            while(true)
            {
                var state = jobManager.QueryJobState(job.Id);

                if(state == JobState.Completed)
                {
                    timer.Stop();
                    updateStatus(string.Format("Job completed in {0} ms", timer.ElapsedMilliseconds));
                    return;
                }

                if(state == JobState.Failed)
                {
                    timer.Stop();
                    using (ConsoleMessage.Error())
                    {
                        updateStatus("Job failed. Loading error report...");
                        var summary = jobManager.GetErrorReport(job.Id);
                        updateStatus(string.Format("Error report for job {{{0}, \"{1}\"}}", summary.JobId,
                                                   summary.JobName));
                        foreach (var report in summary.Errors)
                        {
                            updateStatus(string.Format("Task {{{0}, \"{1}\"}}: {2}",
                                                       report.Task.Id, report.Task.Name, report.Error));
                        }
                    }
                    return;
                }

                Thread.Sleep(100);
            }
        }