github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/workflow/v2/crontrigger.go (about) 1 package v2 2 3 import ( 4 "context" 5 "testing" 6 "time" 7 8 "github.com/vnpaycloud-console/gophercloud/v2" 9 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/tools" 10 "github.com/vnpaycloud-console/gophercloud/v2/openstack/workflow/v2/crontriggers" 11 "github.com/vnpaycloud-console/gophercloud/v2/openstack/workflow/v2/workflows" 12 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 13 ) 14 15 // CreateCronTrigger creates a cron trigger for the given workflow. 16 func CreateCronTrigger(t *testing.T, client *gophercloud.ServiceClient, workflow *workflows.Workflow) (*crontriggers.CronTrigger, error) { 17 crontriggerName := tools.RandomString("crontrigger_", 5) 18 t.Logf("Attempting to create cron trigger: %s", crontriggerName) 19 20 firstExecution := time.Now().AddDate(1, 0, 0) 21 createOpts := crontriggers.CreateOpts{ 22 WorkflowID: workflow.ID, 23 Name: crontriggerName, 24 Pattern: "0 0 1 1 *", 25 WorkflowInput: map[string]any{ 26 "msg": "Hello World!", 27 }, 28 FirstExecutionTime: &firstExecution, 29 } 30 crontrigger, err := crontriggers.Create(context.TODO(), client, createOpts).Extract() 31 if err != nil { 32 return crontrigger, err 33 } 34 t.Logf("Cron trigger created: %s", crontriggerName) 35 th.AssertEquals(t, crontrigger.Name, crontriggerName) 36 return crontrigger, nil 37 } 38 39 // DeleteCronTrigger deletes a cron trigger. 40 func DeleteCronTrigger(t *testing.T, client *gophercloud.ServiceClient, crontrigger *crontriggers.CronTrigger) { 41 err := crontriggers.Delete(context.TODO(), client, crontrigger.ID).ExtractErr() 42 if err != nil { 43 t.Fatalf("Unable to delete cron trigger %s: %v", crontrigger.Name, err) 44 } 45 46 t.Logf("Deleted crontrigger: %s", crontrigger.Name) 47 } 48 49 // GetCronTrigger gets a cron trigger. 50 func GetCronTrigger(t *testing.T, client *gophercloud.ServiceClient, id string) (*crontriggers.CronTrigger, error) { 51 crontrigger, err := crontriggers.Get(context.TODO(), client, id).Extract() 52 if err != nil { 53 t.Fatalf("Unable to get cron trigger %s: %v", id, err) 54 } 55 t.Logf("Cron trigger %s get", id) 56 return crontrigger, err 57 } 58 59 // ListCronTriggers lists cron triggers. 60 func ListCronTriggers(t *testing.T, client *gophercloud.ServiceClient, opts crontriggers.ListOptsBuilder) ([]crontriggers.CronTrigger, error) { 61 allPages, err := crontriggers.List(client, opts).AllPages(context.TODO()) 62 if err != nil { 63 t.Fatalf("Unable to list cron triggers: %v", err) 64 } 65 crontriggersList, err := crontriggers.ExtractCronTriggers(allPages) 66 if err != nil { 67 t.Fatalf("Unable to extract cron triggers: %v", err) 68 } 69 t.Logf("Cron triggers list found, length: %d", len(crontriggersList)) 70 return crontriggersList, err 71 }