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  }