|
@@ -243,3 +243,109 @@ func TestRetryWorkflow(t *testing.T) {
|
|
|
t.Fatalf("%+v\n", err)
|
|
t.Fatalf("%+v\n", err)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+func TestStopWorkflow(t *testing.T) {
|
|
|
|
|
+ argo.Init(baseUrl, token, client.WithTimeoutSec(10))
|
|
|
|
|
+ defer argo.Destroy()
|
|
|
|
|
+
|
|
|
|
|
+ workflowDefinition := make(map[string]any)
|
|
|
|
|
+ err := yaml.Unmarshal(workflowYamlStr, &workflowDefinition)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ panic(err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ workflowName, err := argo.GetInstance().CreateWorkflow(client.CreateWorkflowParams{
|
|
|
|
|
+ Namespace: namespace,
|
|
|
|
|
+ WorkflowDefinition: workflowDefinition,
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatalf("%+v\n", err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ defer func() {
|
|
|
|
|
+ err := argo.GetInstance().DeleteWorkflow(client.DeleteWorkflowParams{
|
|
|
|
|
+ Namespace: namespace,
|
|
|
|
|
+ Name: workflowName,
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatalf("%+v\n", err)
|
|
|
|
|
+ }
|
|
|
|
|
+ }()
|
|
|
|
|
+
|
|
|
|
|
+ err = argo.GetInstance().StopWorkflow(client.StopWorkflowParams{
|
|
|
|
|
+ Namespace: namespace,
|
|
|
|
|
+ Name: workflowName,
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatalf("%+v\n", err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for {
|
|
|
|
|
+ currentWorkflowDefinitions, err := argo.GetInstance().GetWorkflow(client.GetWorkflowParams{
|
|
|
|
|
+ Namespace: namespace,
|
|
|
|
|
+ Name: workflowName,
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatalf("%+v\n", err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if currentWorkflowDefinitions["status"].(map[string]any)["phase"] != "Running" {
|
|
|
|
|
+ break
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ time.Sleep(1 * time.Second)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func TestTerminateWorkflow(t *testing.T) {
|
|
|
|
|
+ argo.Init(baseUrl, token, client.WithTimeoutSec(10))
|
|
|
|
|
+ defer argo.Destroy()
|
|
|
|
|
+
|
|
|
|
|
+ workflowDefinition := make(map[string]any)
|
|
|
|
|
+ err := yaml.Unmarshal(workflowYamlStr, &workflowDefinition)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ panic(err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ workflowName, err := argo.GetInstance().CreateWorkflow(client.CreateWorkflowParams{
|
|
|
|
|
+ Namespace: namespace,
|
|
|
|
|
+ WorkflowDefinition: workflowDefinition,
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatalf("%+v\n", err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ defer func() {
|
|
|
|
|
+ err := argo.GetInstance().DeleteWorkflow(client.DeleteWorkflowParams{
|
|
|
|
|
+ Namespace: namespace,
|
|
|
|
|
+ Name: workflowName,
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatalf("%+v\n", err)
|
|
|
|
|
+ }
|
|
|
|
|
+ }()
|
|
|
|
|
+
|
|
|
|
|
+ err = argo.GetInstance().TerminateWorkflow(client.TerminateWorkflowParams{
|
|
|
|
|
+ Namespace: namespace,
|
|
|
|
|
+ Name: workflowName,
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatalf("%+v\n", err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for {
|
|
|
|
|
+ currentWorkflowDefinitions, err := argo.GetInstance().GetWorkflow(client.GetWorkflowParams{
|
|
|
|
|
+ Namespace: namespace,
|
|
|
|
|
+ Name: workflowName,
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatalf("%+v\n", err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if currentWorkflowDefinitions["status"].(map[string]any)["phase"] != "Running" {
|
|
|
|
|
+ break
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ time.Sleep(1 * time.Second)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|