public void updateOperationTask(int id, Update operationTask) { try { if (operationTask.TaskContent != null) { JObject tmp = JObject.Parse(operationTask.TaskContent); } } catch { throw new Exception("TaskContent must be in Json fromat"); } DBHelper._OperationTask dbhelp = new DBHelper._OperationTask(); OperationTask existingOperationTask = dbhelp.GetByid(id); DateTime invaildDatetime = new DateTime(1, 1, 1); existingOperationTask.Name = operationTask.Name; existingOperationTask.TaskStatus = operationTask.TaskStatus; existingOperationTask.CompletedAt = (operationTask.CompletedAt.Equals(invaildDatetime)) ? null : operationTask.CompletedAt; existingOperationTask.RetryCounter = operationTask.RetryCounter; existingOperationTask.Entity = operationTask.Entity; existingOperationTask.EntityId = operationTask.EntityId; existingOperationTask.TaskContent = operationTask.TaskContent; existingOperationTask.TaskLog = operationTask.TaskLog; dbhelp.Update(existingOperationTask); }
public static void UpdateTaskByFail(int taskId, string failLog, int status = TaskStatus.FAILED) { try { DBHelper._OperationTask opsTaskHelper = new DBHelper._OperationTask(); OperationTask opsTask = opsTaskHelper.GetByid(taskId); opsTask.RetryCounter = opsTask.RetryCounter + 1; opsTask.TaskLog = DateTime.UtcNow + ": " + failLog; switch (status) { case TaskStatus.FAILED: opsTask.TaskStatus = "Fail"; break; case TaskStatus.WARNING: opsTask.TaskStatus = "Warning"; break; case TaskStatus.COMPLETED: opsTask.TaskStatus = "Completed"; opsTask.TaskLog = DateTime.UtcNow + ": Done. " + failLog; opsTask.CompletedAt = DateTime.UtcNow; break; } opsTaskHelper.Update(opsTask); } catch (Exception) { } }
public void deleteOperationTask(int id) { DBHelper._OperationTask dbhelp = new DBHelper._OperationTask(); OperationTask existingOperationTask = dbhelp.GetByid(id); dbhelp.Delete(existingOperationTask); }
public async Task Monitor_NoTimeout() { var connection = new TestConnection(); var task = new OperationTask(); var flow = new OperationTaskflow(task); List <OperationEvent> received = new List <OperationEvent>(); void callback(OperationEvent operationEvent) { received.Add(operationEvent); } var monitor = new OperationMonitor( flow, TimeSpan.FromMilliseconds(200), TimeSpan.FromMilliseconds(200), connection, callback); // Time to start monitoring await Task.Delay(100); monitor.Update(TaskProgress.Acknowledged); await Task.Delay(100); flow.Update(TaskProgress.Confirmed); await Task.Delay(300); Assert.AreEqual(0, received.Count); Assert.IsTrue(monitor.IsComplete); }
public int Create(int companyId, Format_Create parseData) { try { JObject.Parse(parseData.TaskContent); } catch { throw new CDSException(11501); } using (CDStudioEntities dbEntity = new CDStudioEntities()) { OperationTask newData = new OperationTask(); newData.CompanyId = companyId; newData.Name = parseData.Name; newData.TaskStatus = "Submit"; newData.Entity = parseData.Entity; newData.EntityId = parseData.EntityId; newData.TaskContent = parseData.TaskContent ?? "{}"; newData.RetryCounter = 0; newData.CreatedAt = DateTime.UtcNow; newData.DeletedFlag = false; dbEntity.OperationTask.Add(newData); dbEntity.SaveChanges(); return(newData.Id); } }
public Format_Detail GetById(int id) { using (CDStudioEntities dbEntity = new CDStudioEntities()) { OperationTask existingData = (from c in dbEntity.OperationTask.AsNoTracking() where c.Id == id && c.DeletedFlag == false select c).SingleOrDefault <OperationTask>(); if (existingData == null) { throw new CDSException(10701); } return(new Format_Detail() { Id = existingData.Id, Name = existingData.Name, TaskStatus = existingData.TaskStatus, CompletedAt = existingData.CompletedAt.ToString() ?? "", RetryCounter = existingData.RetryCounter, Entity = existingData.Entity, EntityId = existingData.EntityId, TaskContent = JObject.Parse(existingData.TaskContent), TaskLog = existingData.TaskLog, CreatedAt = existingData.CreatedAt }); } }
public int addOperationTask(Add operationTask) { try { if (operationTask.TaskContent != null) { JObject tmp = JObject.Parse(operationTask.TaskContent); } } catch { throw new Exception("TaskContent must be in Json fromat"); } DBHelper._OperationTask dbhelp = new DBHelper._OperationTask(); DateTime invaildDatetime = new DateTime(1, 1, 1); var newOperationTask = new OperationTask() { Name = operationTask.Name, TaskStatus = operationTask.TaskStatus, CompanyId = operationTask.CompanyId, CompletedAt = (operationTask.CompletedAt.Equals(invaildDatetime)) ? null : operationTask.CompletedAt, RetryCounter = operationTask.RetryCounter, Entity = operationTask.Entity, EntityId = operationTask.EntityId, TaskContent = operationTask.TaskContent, TaskLog = operationTask.TaskLog }; int operationTaskId = dbhelp.Add(newOperationTask); return(operationTaskId); }
public static void RestartIoTHubRecevicer(int companyId, string ioTHubAlias, string requester, string requesterEmail) { string command = "restart iothub receiver"; ProcessorCommandMessage processorCommandMessage = new ProcessorCommandMessage( command, ioTHubAlias, requester, requesterEmail); OpsTaskModel opsTask = new OpsTaskModel(command, companyId, "IoTHubAlias", ioTHubAlias, processorCommandMessage.GetJsonContent()); OperationTask task = new OperationTask(); task.Name = opsTask.Name; task.TaskStatus = opsTask.TaskStatus; task.RetryCounter = opsTask.RetryCounter; task.CompanyId = opsTask.CompanyId; task.Entity = opsTask.Entity; task.EntityId = opsTask.EntityId; task.TaskContent = opsTask.TaskContent; int newOperationTaskId = addOperationTask(task); if (newOperationTaskId > 0) { processorCommandMessage.taskId = newOperationTaskId; processorCommandMessage.PublishProcessorCommandMessage(); } }
internal void Add(OperationTask task) { lock (pendingTasks) { task.Progress = TaskProgress.Submitted; pendingTasks.Add(task); } }
internal void Update(OperationTask task, TaskProgress progress, OperationEvent sourceEvent, OperationEvent destinationEvent) { operations[task.OperationID] = new OperationInfo { Progress = progress, LastSourceEvent = sourceEvent, LastDestinationEvent = destinationEvent, }; }
internal void Store(OperationTask task, OperationEvent sourceEvent, OperationEvent destinationEvent) { operations[task.OperationID] = new OperationInfo { Progress = TaskProgress.Acknowledged, LastSourceEvent = sourceEvent, LastDestinationEvent = destinationEvent, }; }
public void Update(OperationTask operationTask) { CDS20AzureSQL dbEntity = new CDS20AzureSQL(); operationTask.UpdatedAt = DateTime.Parse(DateTime.UtcNow.ToString()); dbEntity.OperationTask.Attach(operationTask); dbEntity.Entry(operationTask).State = System.Data.Entity.EntityState.Modified; dbEntity.SaveChanges(); }
public static void UpdateTaskBySuccess(int taskId) { DBHelper._OperationTask opsTaskHelper = new DBHelper._OperationTask(); OperationTask opsTask = opsTaskHelper.GetByid(taskId); opsTask.CompletedAt = DateTime.UtcNow; opsTask.TaskLog = DateTime.UtcNow + ": Done."; opsTask.TaskStatus = "Completed"; opsTaskHelper.Update(opsTask); }
public void DeleteById(int id) { using (CDStudioEntities dbEntity = new CDStudioEntities()) { OperationTask existingData = dbEntity.OperationTask.Find(id); if (existingData == null) { throw new CDSException(10701); } existingData.DeletedFlag = true; existingData.UpdatedAt = DateTime.UtcNow; dbEntity.SaveChanges(); } }
static void UpdateTaskByFail(int taskId, string failLog) { try { DBHelper._OperationTask opsTaskHelper = new DBHelper._OperationTask(); OperationTask opsTask = opsTaskHelper.GetByid(taskId); opsTask.RetryCounter = opsTask.RetryCounter + 1; opsTask.TaskStatus = "Fail"; opsTask.TaskLog = DateTime.UtcNow + ": " + failLog; opsTaskHelper.Update(opsTask); } catch (Exception ex) { ConsoleLog.WriteBlobLogError("Exception on UpdateTaskByFail: {0}", ex.Message); } }
public void UpdateTaskByFail(int Id, string failLog) { try { OperationTask operationTask = GetByid(Id); if (operationTask == null) { return; } operationTask.TaskLog = operationTask.TaskLog + Environment.NewLine + DateTime.UtcNow + ": " + failLog; operationTask.TaskStatus = "Fail"; Update(operationTask); } catch (Exception) { throw; } }
public void UpdateTaskBySuccess(int Id) { try { OperationTask operationTask = GetByid(Id); if (operationTask == null) { return; } operationTask.CompletedAt = DateTime.UtcNow; operationTask.TaskLog = operationTask.TaskLog + Environment.NewLine + DateTime.UtcNow + ": Done."; operationTask.TaskStatus = "Completed"; Update(operationTask); } catch (Exception) { throw; } }
public override void OnEndTest(TestResult testResult) { _server.TaskOutput(null, "bla", TaskOutputType.STDOUT); var task = TryGetTask(testResult); if (task == null) { return; } ReportResult(task, testResult.State, testResult.Exception, testResult.Name); foreach (var operation in testResult.Operations) { var operationTask = new OperationTask(operation.GetAbsoluteId(), operation.Id, task.AbsoluteId, operation.Name, operation.Type); _server.CreateDynamicElement(operationTask); ReportResult(operationTask, operation.State, operation.Exception, operation.Name); } }
private static int addOperationTask(OperationTask operationTask) { DBHelper._OperationTask dbhelp = new DBHelper._OperationTask(); DateTime invaildDatetime = new DateTime(1, 1, 1); var newOperationTask = new OperationTask() { Name = operationTask.Name, TaskStatus = operationTask.TaskStatus, CompanyId = operationTask.CompanyId, CompletedAt = (operationTask.CompletedAt.Equals(invaildDatetime)) ? null : operationTask.CompletedAt, RetryCounter = operationTask.RetryCounter, Entity = operationTask.Entity, EntityId = operationTask.EntityId, TaskContent = operationTask.TaskContent, TaskLog = operationTask.TaskLog }; int operationTaskId = dbhelp.Add(newOperationTask); return(operationTaskId); }
public Detail getOperationTaskById(int id) { DBHelper._OperationTask dbhelp = new DBHelper._OperationTask(); DBHelper._Company dbhelp_company = new DBHelper._Company(); OperationTask operationTask = dbhelp.GetByid(id); Company company = dbhelp_company.GetByid((int)operationTask.CompanyId); return(new Detail() { Id = operationTask.Id, Name = operationTask.Name, TaskStatus = operationTask.TaskStatus, CompanyId = (int)operationTask.CompanyId, CompanyName = company == null ? "" : company.Name, CompletedAt = operationTask.CompletedAt, RetryCounter = (operationTask.RetryCounter == null) ? "" : operationTask.RetryCounter.ToString(), Entity = operationTask.Entity, EntityId = operationTask.EntityId, TaskContent = (operationTask.TaskContent == null) ? null : JObject.Parse(operationTask.TaskContent), TaskLog = operationTask.TaskLog }); }
public void Monitor_AcknowledgeLost() { var connection = new TestConnection(); var task = new OperationTask(); var flow = new OperationTaskflow(task); AutoResetEvent signal = new AutoResetEvent(false); void callback(OperationEvent operationEvent) { signal.Set(); } connection.NextStatus = new OperationStatus { Events = new[] { new OperationEvent() }, RetryAfter = TimeSpan.FromMilliseconds(100) }; var monitor = new OperationMonitor( flow, TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(2000), connection, callback); Assert.IsTrue(signal.WaitOne(200)); Assert.IsTrue(signal.WaitOne(200)); Assert.IsTrue(signal.WaitOne(200)); monitor.Update(TaskProgress.Confirmed); Assert.IsFalse(signal.WaitOne(200)); Assert.IsTrue(monitor.IsComplete); }
public async Task Handle(CreateNewOperationTaskCommand message) { var command = JsonConvert.DeserializeObject(message.CommandData, Type.GetType(message.CommandType)); var op = await _dbContext.Operations.FindAsync(message.OperationId).ConfigureAwait(false); if (op == null) { MarkAsComplete(); return; } var task = await _dbContext.OperationTasks.FindAsync(message.TaskId).ConfigureAwait(false); if (task == null) { task = new OperationTask { Id = message.TaskId, Operation = op, }; _dbContext.Add(task); } task.Name = command.GetType().Name; Data.Tasks.Add(message.TaskId, command.GetType().AssemblyQualifiedName); await _dbContext.SaveChangesAsync().ConfigureAwait(false); var sendCommandAttribute = command.GetType().GetCustomAttribute <SendMessageToAttribute>(); switch (sendCommandAttribute.Recipient) { case MessageRecipient.VMHostAgent: { switch (command) { case IMachineCommand machineCommand: { var machine = await _dbContext.Machines.FindAsync(machineCommand.MachineId).ConfigureAwait(false); if (machine == null) { if (command.GetType().GetCustomAttribute(typeof(MachineMayNotExistsAttribute)) != null) { await Handle(OperationTaskStatusEvent.Completed(message.OperationId, message.TaskId)); } else { await Handle(OperationTaskStatusEvent.Failed(message.OperationId, message.TaskId, new ErrorData { ErrorMessage = "Machine not found" })); } return; } await _bus.Advanced.Routing.Send($"{QueueNames.VMHostAgent}.{machine.AgentName}", command) .ConfigureAwait(false); return; } case IHostAgentCommand agentCommand: await _bus.Advanced.Routing.Send($"{QueueNames.VMHostAgent}.{agentCommand.AgentName}", command) .ConfigureAwait(false); return; default: throw new InvalidDataException($"Don't know how to route operation task command of type {command.GetType()}"); } } case MessageRecipient.Controllers: await _bus.Send(command); return; default: throw new ArgumentOutOfRangeException(); } }
public async Task <OperationStatus> GetOperationStatus(OperationTask task) { await CallService(); return(simulation.GetOperationStatus(task)); }
public Task <OperationStatus> GetOperationStatus(OperationTask task) { NumCalled++; return(Task.FromResult(NextStatus)); }