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 }