github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/networking/v2/extensions/vpnaas/ikepolicies_test.go (about) 1 package vpnaas 2 3 import ( 4 "testing" 5 6 "github.com/opentelekomcloud/gophertelekomcloud" 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 8 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools" 9 "github.com/opentelekomcloud/gophertelekomcloud/openstack/networking/v2/extensions/vpnaas/ikepolicies" 10 ) 11 12 func TestIkePolicyList(t *testing.T) { 13 client, err := clients.NewNetworkV2Client() 14 if err != nil { 15 t.Fatalf("Unable to create a NetworkingV2 client: %s", err) 16 } 17 18 listOpts := ikepolicies.ListOpts{} 19 allPages, err := ikepolicies.List(client, listOpts).AllPages() 20 if err != nil { 21 t.Fatalf("Unable to fetch Ike Policy pages: %s", err) 22 } 23 ikePolicies, err := ikepolicies.ExtractPolicies(allPages) 24 if err != nil { 25 t.Fatalf("Unable to extract Ike Policy pages: %s", err) 26 } 27 for _, policy := range ikePolicies { 28 tools.PrintResource(t, policy) 29 } 30 } 31 32 func TestIkePolicyLifeCycle(t *testing.T) { 33 client, err := clients.NewNetworkV2Client() 34 if err != nil { 35 t.Fatalf("Unable to create a NetworkingV2 client: %s", err) 36 } 37 38 // Create Ike Policy 39 ikePolicy, err := createIkePolicy(t, client) 40 if err != nil { 41 t.Fatalf("Unable to create Ike Policy: %s", err) 42 } 43 defer deleteIkePolicy(t, client, ikePolicy.ID) 44 45 tools.PrintResource(t, ikePolicy) 46 47 err = updateIkePolicy(t, client, ikePolicy.ID) 48 if err != nil { 49 t.Fatalf("Unable to update Ike Policy: %s", err) 50 } 51 tools.PrintResource(t, ikePolicy) 52 53 newIkePolicy, err := ikepolicies.Get(client, ikePolicy.ID).Extract() 54 if err != nil { 55 t.Fatalf("Unable to get Ike Policy: %s", err) 56 } 57 tools.PrintResource(t, newIkePolicy) 58 } 59 60 func createIkePolicy(t *testing.T, client *golangsdk.ServiceClient) (*ikepolicies.Policy, error) { 61 policyName := tools.RandomString("create-ike-", 8) 62 63 createIkePolicyOpts := ikepolicies.CreateOpts{ 64 Description: "some ike policy description", 65 Name: policyName, 66 AuthAlgorithm: ikepolicies.AuthAlgorithm("md5"), 67 EncryptionAlgorithm: ikepolicies.EncryptionAlgorithm("3des"), 68 PFS: ikepolicies.PFS("group1"), 69 Phase1NegotiationMode: ikepolicies.Phase1NegotiationMode("main"), 70 IKEVersion: ikepolicies.IKEVersion("v1"), 71 Lifetime: &ikepolicies.LifetimeCreateOpts{ 72 Units: ikepolicies.Unit("seconds"), 73 Value: 1800, 74 }, 75 } 76 ikePolicy, err := ikepolicies.Create(client, createIkePolicyOpts).Extract() 77 if err != nil { 78 return nil, err 79 } 80 t.Logf("Created Ike Policy: %s", ikePolicy.ID) 81 82 return ikePolicy, nil 83 } 84 85 func deleteIkePolicy(t *testing.T, client *golangsdk.ServiceClient, ikePolicyId string) { 86 t.Logf("Attempting to delete Ike Policy: %s", ikePolicyId) 87 88 if err := ikepolicies.Delete(client, ikePolicyId).Err; err != nil { 89 t.Fatalf("Unable to delete Ike Policy: %s", err) 90 } 91 92 t.Logf("Ike Policy is deleted: %s", ikePolicyId) 93 } 94 95 func updateIkePolicy(t *testing.T, client *golangsdk.ServiceClient, ikePolicy string) error { 96 t.Logf("Attempting to update Ike policy") 97 98 policyNewName := tools.RandomString("update-ike-", 8) 99 100 updateOpts := ikepolicies.UpdateOpts{ 101 Name: policyNewName, 102 AuthAlgorithm: ikepolicies.AuthAlgorithm("sha1"), 103 } 104 105 if err := ikepolicies.Update(client, ikePolicy, updateOpts).Err; err != nil { 106 return err 107 } 108 t.Logf("Ike Policy successfully updated: %s", ikePolicy) 109 return nil 110 }