private void CreateRunningJob(JobInfo jobInfo) { if (jobInfo == null) { return; } Tracer.Info("Starting workers for a new job. PipelineId = {0}, JobId = {1}, JobTypeId = {2}", jobInfo.PipelineId, jobInfo.JobId, jobInfo.JobTypeId); RunningJob runningJob = new RunningJob(jobInfo); foreach (WorkRequest workRequest in jobInfo.WorkRequests) { workRequest.BootParameters = jobInfo.BootParameters; workRequest.JobParameters = jobInfo.JobParameters; WorkerCard workerCard = WorkersInventory.Instance.FindWorkerForRole(workRequest.RoleType); if (null == workerCard) { Tracer.Info("This worker manager does not have workers suitable for the role {0}", workRequest.RoleType); continue; } JobSection jobSection = new JobSection(workRequest, workerCard); runningJob.Sections.Add(jobSection); } RunningJobs.Add(runningJob); if (jobInfo.Command == Command.Run) { EmployWorkersForJob(runningJob); } }