Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/cmd/projectDelete.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ func projectDeleteCmd() *cmdBuilder.Cmd {
ctx,
cmdData.UxBlocks,
[]uxHelpers.Process{{
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: i18n.T(i18n.ProjectDeleting),
ErrorMessageMessage: i18n.T(i18n.ProjectDeleteFailed),
SuccessMessage: i18n.T(i18n.ProjectDeleted),
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/projectImport.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func projectImportCmd() *cmdBuilder.Cmd {
for _, service := range responseOutput.ServiceStacks {
for _, process := range service.Processes {
processes = append(processes, uxHelpers.Process{
F: uxHelpers.CheckZeropsProcess(process.Id, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(process.Id, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: service.Name.String() + ": " + process.ActionName.String(),
ErrorMessageMessage: service.Name.String() + ": " + process.ActionName.String(),
SuccessMessage: service.Name.String() + ": " + process.ActionName.String(),
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/projectServiceImport.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func projectServiceImportCmd() *cmdBuilder.Cmd {
for _, service := range responseOutput.ServiceStacks {
for _, process := range service.Processes {
processes = append(processes, uxHelpers.Process{
F: uxHelpers.CheckZeropsProcess(process.Id, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(process.Id, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: service.Name.String() + ": " + process.ActionName.String(),
ErrorMessageMessage: service.Name.String() + ": " + process.ActionName.String(),
SuccessMessage: service.Name.String() + ": " + process.ActionName.String(),
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/serviceCreate.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ func serviceCreateCmd() *cmdBuilder.Cmd {
cmdData.UxBlocks,
[]uxHelpers.Process{
{
F: uxHelpers.CheckZeropsProcess(process.Id, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(process.Id, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: "Creating service",
ErrorMessageMessage: "Service creation failed",
SuccessMessage: "Service created",
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/serviceDelete.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ func serviceDeleteCmd() *cmdBuilder.Cmd {
ctx,
cmdData.UxBlocks,
[]uxHelpers.Process{{
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: i18n.T(i18n.ServiceDeleting),
ErrorMessageMessage: i18n.T(i18n.ServiceDeleteFailed),
SuccessMessage: i18n.T(i18n.ServiceDeleted),
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/serviceDeploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ func serviceDeployCmd() *cmdBuilder.Cmd {
ctx,
cmdData.UxBlocks,
[]uxHelpers.Process{{
F: uxHelpers.CheckZeropsProcess(deployProcess.Id, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(deployProcess.Id, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: i18n.T(i18n.DeployRunning),
ErrorMessageMessage: i18n.T(i18n.DeployFailed),
SuccessMessage: i18n.T(i18n.DeployFinished),
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/serviceEnableSubdomain.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func serviceEnableSubdomainCmd() *cmdBuilder.Cmd {
ctx,
cmdData.UxBlocks,
[]uxHelpers.Process{{
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: i18n.T(i18n.ServiceEnablingSubdomain),
ErrorMessageMessage: i18n.T(i18n.ServiceEnableSubdomainFailed),
SuccessMessage: i18n.T(i18n.ServiceEnabledSubdomain),
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/servicePush.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ func servicePushCmd() *cmdBuilder.Cmd {
cmdData.UxBlocks,
[]uxHelpers.Process{
{
F: uxHelpers.CheckZeropsProcess(deployProcess.Id, cmdData.RestApiClient,
F: uxHelpers.CheckZeropsProcess(deployProcess.Id, cmdData.RestApiClient, cmdData.UxBlocks,
uxHelpers.CheckZeropsProcessWithProcessOutputCallback(
func(ctx context.Context, process *uxHelpers.Process, apiProcess output.Process) error {
if cmdData.Params.GetBool("disable-logs") {
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/serviceStart.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func serviceStartCmd() *cmdBuilder.Cmd {
ctx,
cmdData.UxBlocks,
[]uxHelpers.Process{{
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: i18n.T(i18n.ServiceStarting),
ErrorMessageMessage: i18n.T(i18n.ServiceStartFailed),
SuccessMessage: i18n.T(i18n.ServiceStarted),
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/serviceStop.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func serviceStopCmd() *cmdBuilder.Cmd {
ctx,
cmdData.UxBlocks,
[]uxHelpers.Process{{
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(processId, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: i18n.T(i18n.ServiceStopping),
ErrorMessageMessage: i18n.T(i18n.ServiceStopFailed),
SuccessMessage: i18n.T(i18n.ServiceStopped),
Expand Down
2 changes: 1 addition & 1 deletion src/cmdBuilder/scopeService.go
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ func createNewService(ctx context.Context, project entity.Project, cmdData *Logg
cmdData.UxBlocks,
[]uxHelpers.Process{
{
F: uxHelpers.CheckZeropsProcess(process.Id, cmdData.RestApiClient),
F: uxHelpers.CheckZeropsProcess(process.Id, cmdData.RestApiClient, cmdData.UxBlocks),
RunningMessage: "Creating service",
ErrorMessageMessage: "Service creation failed",
SuccessMessage: "Service created",
Expand Down
29 changes: 24 additions & 5 deletions src/uxHelpers/spinner.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,28 +102,49 @@ type checkZeropsProcessSetup struct {
func CheckZeropsProcess(
processId uuid.ProcessId,
restApiClient *zeropsRestApiClient.Handler,
uxBlocks *uxBlock.Blocks,
options ...gn.Option[checkZeropsProcessSetup],
) ProcessFunc {
setup := gn.ApplyOptions(options...)
return func(ctx context.Context, process *Process) error {
ticker := time.NewTicker(time.Second)
defer ticker.Stop()

var firstErrTime time.Time
handleTransientErr := func(err error) error {
if firstErrTime.IsZero() {
firstErrTime = time.Now()
}
if time.Since(firstErrTime) >= time.Minute {
return err
}
uxBlocks.PrintWarningTextf("failed to get process detail: %v", err)
return nil
}

for {
select {
case <-ctx.Done():
return nil
case <-ticker.C:
getProcessResponse, err := restApiClient.GetProcess(ctx, path.ProcessId{Id: processId})
if err != nil {
return err
if err := handleTransientErr(err); err != nil {
return err
}
continue
}

processOutput, err := getProcessResponse.Output()
if err != nil {
return err
if err := handleTransientErr(err); err != nil {
return err
}
continue
}

firstErrTime = time.Time{}

if callback, exists := setup.processOutputCallback.Get(); exists {
if err := callback(ctx, process, processOutput); err != nil {
return err
Expand All @@ -133,9 +154,7 @@ func CheckZeropsProcess(
processStatus := processOutput.Status

switch processStatus {
case enum.ProcessStatusEnumPending:
continue
case enum.ProcessStatusEnumRunning:
case enum.ProcessStatusEnumPending, enum.ProcessStatusEnumRunning:
continue
case enum.ProcessStatusEnumFinished:
return nil
Expand Down
Loading