Skip to content

Commit

Permalink
Implement EventDrivenScriptExecutor
Browse files Browse the repository at this point in the history
  • Loading branch information
samdanaei committed Jun 21, 2024
1 parent 4796b05 commit 33bb1b4
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 22 deletions.
61 changes: 40 additions & 21 deletions source/Octopus.Tentacle.Client/EventDrivenScriptExecutor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,44 +63,63 @@ internal EventDrivenScriptExecutor(ITentacleClientTaskLog logger,
return (new ScriptStatus(ProcessState.Complete, ScriptExitCodes.UnknownScriptExitCode, new List<ProcessOutput>()), new DefaultTicketForNextStatus(new ScriptTicket(Guid.NewGuid().ToString()), 0, ScriptServiceVersion.ScriptServiceVersion1));
}

var scriptOrchestratorFactory = new ScriptOrchestratorFactory(clientsHolder,
new DefaultScriptObserverBackoffStrategy(),
rpcCallExecutor,
operationMetricsBuilder,
status => { },
token => Task.CompletedTask,
onCancellationAbandonCompleteScriptAfter,
clientOptions,
logger);
var scriptOrchestratorFactory = GetNewScriptOrchestratorFactory(operationMetricsBuilder);

var orchestrator = scriptOrchestratorFactory.CreateOrchestrator(scriptServiceToUse);

// and return stuff.
throw new System.NotImplementedException();
return await orchestrator.StartScript(executeScriptCommand, cancellationToken);
}

public Task<(ScriptStatus, ITicketForNextStatus)> GetStatus(ITicketForNextStatus ticketForNextNextStatus, CancellationToken cancellationToken)
public async Task<(ScriptStatus, ITicketForNextStatus)> GetStatus(ITicketForNextStatus ticketForNextNextStatus, CancellationToken cancellationToken)
{

ScriptOrchestratorFactory scriptOrchestratorFactory = null!;
var orch = scriptOrchestratorFactory.CreateOrchestrator(ticketForNextNextStatus.WhichService);
var operationMetricsBuilder = ClientOperationMetricsBuilder.Start();

throw new System.NotImplementedException();
var scriptOrchestratorFactory = GetNewScriptOrchestratorFactory(operationMetricsBuilder);

var orchestrator = scriptOrchestratorFactory.CreateOrchestrator(ticketForNextNextStatus.WhichService);

return await orchestrator.GetStatus(ticketForNextNextStatus, cancellationToken);
}

public Task<(ScriptStatus, ITicketForNextStatus)> CancelScript(ITicketForNextStatus ticketForNextNextStatus, CancellationToken cancellationToken)
public async Task<(ScriptStatus, ITicketForNextStatus)> CancelScript(ITicketForNextStatus ticketForNextNextStatus, CancellationToken cancellationToken)
{
throw new System.NotImplementedException();
var operationMetricsBuilder = ClientOperationMetricsBuilder.Start();

var scriptOrchestratorFactory = GetNewScriptOrchestratorFactory(operationMetricsBuilder);

var orchestrator = scriptOrchestratorFactory.CreateOrchestrator(ticketForNextNextStatus.WhichService);

return await orchestrator.Cancel(ticketForNextNextStatus, cancellationToken);
}

public Task<(ScriptStatus, ITicketForNextStatus)> CancelScript(ScriptTicket scriptTicket, CancellationToken cancellationToken)
{
var operationMetricsBuilder = ClientOperationMetricsBuilder.Start();
throw new System.NotImplementedException();
}

public Task CleanUpScript(ScriptTicket scriptTicket, CancellationToken cancellationToken)
public async Task CleanUpScript(ITicketForNextStatus ticketForNextNextStatus, CancellationToken cancellationToken)
{
throw new System.NotImplementedException();
var operationMetricsBuilder = ClientOperationMetricsBuilder.Start();

var scriptOrchestratorFactory = GetNewScriptOrchestratorFactory(operationMetricsBuilder);

var orchestrator = scriptOrchestratorFactory.CreateOrchestrator(ticketForNextNextStatus.WhichService);

await orchestrator.Finish(ticketForNextNextStatus, cancellationToken);
}

ScriptOrchestratorFactory GetNewScriptOrchestratorFactory(ClientOperationMetricsBuilder operationMetricsBuilder)
{
return new ScriptOrchestratorFactory(clientsHolder,
new DefaultScriptObserverBackoffStrategy(),
rpcCallExecutor,
operationMetricsBuilder,
status => { },
token => Task.CompletedTask,
onCancellationAbandonCompleteScriptAfter,
clientOptions,
logger);
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public interface IEventDrivenScriptExecutor
/// <returns></returns>
Task<(ScriptStatus, ITicketForNextStatus)> CancelScript(ScriptTicket scriptTicket, CancellationToken cancellationToken);

Task CleanUpScript(ScriptTicket scriptTicket, CancellationToken cancellationToken);
Task CleanUpScript(ITicketForNextStatus ticketForNextNextStatus, CancellationToken cancellationToken);
}

public enum HasStartScriptBeenCalledBefore
Expand Down

0 comments on commit 33bb1b4

Please sign in to comment.