internal static List <string> GetPipelineQueueList(string toolName, string pipeline, string environment) { PipelineInfo pipelineInfo = new PipelineInfo(toolName, pipeline, environment); ExecutionManager exeManager = executionManagerDictionary[pipelineInfo.LockName]; return(exeManager.GetQueueList()); }
public string AddToQueue(PipelineInfo pipelineInfo) { logger.Info("Adding Pipeline Instance " + pipelineInfo.PipelineInstance + " into QueueList for lock name " + pipelineInfo.LockName); if (PipelineQueue.Any(x => x.ConfigKey.Equals(pipelineInfo.ConfigKey))) { return("AlreadyInQueue"); } PipelineQueue.Add(pipelineInfo); logger.Info("Added Pipeline Instance " + pipelineInfo.PipelineInstance + " into QueueList for lock name " + pipelineInfo.LockName); if (PipelineQueue.Where(x => x.Status == PipelineStatus.Running).Count() == 0) { logger.Info("Triggering Pipeline Instance " + PipelineQueue.FirstOrDefault().PipelineInstance); pipelineInfo.Status = PipelineStatus.Running; logger.Info("Setting Pipeline " + pipelineInfo.PipelineInstance + " status to Running for lock " + pipelineInfo.LockName); Thread triggerThread = new Thread(() => { TriggerPipeline(PipelineQueue.FirstOrDefault()); }); logger.Info("Trigger Thread Id: " + triggerThread.ManagedThreadId + " initiated pipeline " + PipelineQueue.FirstOrDefault().PipelineInstance); triggerThread.Start(); //triggerThread.Join(); //var task = Task.Run(() => { TriggerPipeline(PipelineQueue.FirstOrDefault()); }); return("Pipeline Triggered"); } return("AddedToQueue"); }
internal static string AbortPipeline(string toolName, string pipeline, string environment, string pipelineInstanceName) { PipelineInfo pipelineInfo = new PipelineInfo(toolName, pipeline, environment); ExecutionManager exeManager = executionManagerDictionary[pipelineInfo.LockName]; return(exeManager.AbortPipeline(pipelineInstanceName)); }
private static string RerunPipeline(string toolName, string pipeline, string environment, string pipelineInstanceName, List <string> testCaseIds = null) { PipelineInfo pipelineInfo = new PipelineInfo(toolName, pipeline, environment, pipelineInstanceName: pipelineInstanceName, testCasesIds: testCaseIds); CreateLogsDirectory(toolName, pipeline, environment, pipelineInstanceName); var rerunPipelineStatus = PipelineManager.AddToQueue(pipelineInfo); return(rerunPipelineStatus); }
private static string TriggerPipeline(string toolName, string pipeline, string environment, bool updatePlan) { PipelineInfo pipelineInfo = new PipelineInfo(toolName, pipeline, environment, updatePlan); CreateLogsDirectory(toolName, pipeline, environment, pipelineInfo.PipelineInstance); var triggerPipelineStatus = PipelineManager.AddToQueue(pipelineInfo); return(triggerPipelineStatus); }
public ExecutionManager(ILog logger, PipelineInfo pipelineInfo) { InitializeQueue(); //logger.InfoFormat("Execution Manager started for lockName:{0}", pipelineInfo.LockName); //logger.Info("Triggering Pipeline Instance " + pipelineInfo.PipelineInstance); //pipelineInfo.Status = PipelineStatus.Running; //logger.Info("Setting Pipeline " + pipelineInfo.PipelineInstance + " status to Running for lock " + pipelineInfo.LockName); //Thread triggerThread = new Thread(() => { TriggerPipeline(pipelineInfo); }); //logger.Info("Trigger Thread Id: " + triggerThread.ManagedThreadId + " initiated pipeline " + pipelineInfo.PipelineInstance); //triggerThread.Start(); }
public static string AddToQueue(PipelineInfo pipelineInfo) { logger.Info("Pipeline Lock Name:" + pipelineInfo.LockName); ExecutionManager exeManager = null; if (!executionManagerDictionary.ContainsKey(pipelineInfo.LockName)) { logger.Info("Initializing ExecutionManager for Pipeline " + pipelineInfo.LockName); exeManager = new ExecutionManager(logger, pipelineInfo); executionManagerDictionary[pipelineInfo.LockName] = exeManager; } logger.Info("Fetching ExecutionManager for Pipeline " + pipelineInfo.LockName); exeManager = executionManagerDictionary[pipelineInfo.LockName]; return(exeManager.AddToQueue(pipelineInfo)); }
private void TriggerPipeline(PipelineInfo pipelineInfo) { while (PipelineQueue.Count > 0) { var loggerName = string.Join("_", PipelineQueue.FirstOrDefault().ConfigKey, PipelineQueue.FirstOrDefault().LockName); pipelineLogger = LoggerBase.GetLogger(loggerName, PipelineQueue.FirstOrDefault().ConfigData.Environment, PipelineQueue.FirstOrDefault().ConfigData.ToolName, PipelineQueue.FirstOrDefault().ConfigData.Pipeline, PipelineQueue.FirstOrDefault().PipelineInstance); pipelineLogger.InfoFormat("Logger instance created for {0}_{1}_{2}_{3} with name: {4}", PipelineQueue.FirstOrDefault().ConfigData.Environment, PipelineQueue.FirstOrDefault().ConfigData.ToolName, PipelineQueue.FirstOrDefault().PipelineInstance, PipelineQueue.FirstOrDefault().ConfigData.Pipeline, loggerName); pipelineLogger.Info("Started Execution for " + PipelineQueue.FirstOrDefault().LockName + "=>" + PipelineQueue.FirstOrDefault().PipelineInstance); PipelineQueue.FirstOrDefault().Status = PipelineStatus.Running; StartExecution(); } }