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