github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/cbr/v3/policies_test.go (about)

     1  package v3
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
     7  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/cbr/v3/policies"
     8  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
     9  )
    10  
    11  func TestPolicyLifecycle(t *testing.T) {
    12  	client, err := clients.NewCbrV3Client()
    13  	th.AssertNoErr(t, err)
    14  
    15  	iTrue := true
    16  	policy, err := policies.Create(client, policies.CreateOpts{
    17  		Name: "test-policy",
    18  		OperationDefinition: &policies.PolicyODCreate{
    19  			DailyBackups: 1,
    20  			WeekBackups:  2,
    21  			YearBackups:  3,
    22  			MonthBackups: 4,
    23  			MaxBackups:   10,
    24  			Timezone:     "UTC+03:00",
    25  		},
    26  		Trigger: &policies.Trigger{
    27  			Properties: policies.TriggerProperties{
    28  				Pattern: []string{"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00"},
    29  			},
    30  		},
    31  		Enabled:       &iTrue,
    32  		OperationType: "backup",
    33  	})
    34  	th.AssertNoErr(t, err)
    35  
    36  	t.Cleanup(func() {
    37  		err = policies.Delete(client, policy.ID)
    38  		th.AssertNoErr(t, err)
    39  	})
    40  
    41  	allPolicies, err := policies.List(client, policies.ListOpts{})
    42  	th.AssertNoErr(t, err)
    43  	found := false
    44  	for _, p := range allPolicies {
    45  		if p.ID == policy.ID {
    46  			found = true
    47  			break
    48  		}
    49  	}
    50  	th.CheckEquals(t, true, found)
    51  
    52  	iFalse := false
    53  	updateOpts := policies.UpdateOpts{
    54  		Enabled: &iFalse,
    55  		Name:    "name2",
    56  	}
    57  
    58  	updated, err := policies.Update(client, policy.ID, updateOpts)
    59  	th.AssertNoErr(t, err)
    60  	th.CheckEquals(t, *updateOpts.Enabled, updated.Enabled)
    61  	th.CheckEquals(t, updateOpts.Name, updated.Name)
    62  
    63  	current, err := policies.Get(client, policy.ID)
    64  	th.AssertNoErr(t, err)
    65  	th.CheckEquals(t, *updateOpts.Enabled, current.Enabled)
    66  	th.CheckEquals(t, updateOpts.Name, current.Name)
    67  
    68  }