547
ctx context.Context,
548
request *operatorservice.DeleteNamespaceRequest,
550
>
defer log.CapturePanic(h.logger, &retError)
551
>
552
>
if request == nil {
553
>
return nil, errRequestNotSet
554
>
}
555
556
// If NamespaceDeleteDelay is not provided, the default delay configured in the cluster should be used.
558
>
if request.NamespaceDeleteDelay == nil {
559
>
namespaceDeleteDelay = h.config.DeleteNamespaceNamespaceDeleteDelay()
560
>
} else {
561
namespaceDeleteDelay = request.NamespaceDeleteDelay.AsDuration()
562
}
563
564
// Execute workflow.
566
>
Namespace: namespace.Name(request.GetNamespace()),
567
>
NamespaceID: namespace.ID(request.GetNamespaceId()),
568
>
DeleteExecutionsConfig: deleteexecutions.DeleteExecutionsConfig{
569
>
DeleteActivityRPS: h.config.DeleteNamespaceDeleteActivityRPS(),
570
>
PageSize: h.config.DeleteNamespacePageSize(),
571
>
PagesPerExecution: h.config.DeleteNamespacePagesPerExecution(),
572
>
ConcurrentDeleteExecutionsActivities: h.config.DeleteNamespaceConcurrentDeleteExecutionsActivities(),
573
>
},
574
>
NamespaceDeleteDelay: namespaceDeleteDelay,
575
>
}
576
>
577
>
sdkClient := h.sdkClientFactory.GetSystemClient()
578
>
run, err := sdkClient.ExecuteWorkflow(
579
>
ctx,
580
>
sdkclient.StartWorkflowOptions{
581
>
TaskQueue: primitives.DefaultWorkerTaskQueue,
582
>
ID: fmt.Sprintf("%s/%s", deletenamespace.WorkflowName, request.GetNamespace()),
583
>
},
584
>
deletenamespace.WorkflowName,
585
>
wfParams,
586
>
)
587
>
if err != nil {
588
>
return nil, serviceerror.NewUnavailablef(errUnableToStartWorkflowMessage, deletenamespace.WorkflowName, err)
589
>
}
590
591
// Wait for the workflow to complete.
593
>
err = run.Get(ctx, &wfResult)
594
>
if err != nil {
595
>
return nil, delnserrors.ToServiceError(err, run.GetID(), run.GetRunID())
596
>
}
597
599
>
DeletedNamespace: wfResult.DeletedNamespace.String(),
600
>
}, nil
601
}
602