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  }