github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/cts/helpers.go (about)

     1  package cts
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
     8  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools"
     9  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/obs"
    10  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    11  )
    12  
    13  func CreateOBSBucket(t *testing.T) string {
    14  	t.Logf("Attempting to create OBS bucket")
    15  	client, err := clients.NewOBSClientWithoutHeader()
    16  	th.AssertNoErr(t, err)
    17  	bucketName := strings.ToLower(tools.RandomString("obs-cts-test", 5))
    18  
    19  	createOpts := &obs.CreateBucketInput{
    20  		Bucket: bucketName,
    21  		ACL:    "public-read",
    22  	}
    23  
    24  	_, err = client.CreateBucket(createOpts)
    25  	th.AssertNoErr(t, err)
    26  
    27  	t.Logf("Created OBS Bucket: %s", bucketName)
    28  
    29  	return bucketName
    30  }
    31  
    32  func DeleteOBSBucket(t *testing.T, bucketName string) {
    33  	t.Logf("Attempting to delete OBS bucket: %s", bucketName)
    34  	client, err := clients.NewOBSClientWithoutHeader()
    35  	th.AssertNoErr(t, err)
    36  
    37  	input := &obs.ListObjectsInput{}
    38  	input.Bucket = bucketName
    39  
    40  	objectsList, err := client.ListObjects(input)
    41  	th.AssertNoErr(t, err)
    42  
    43  	if len(objectsList.Contents) > 0 {
    44  		objects := make([]obs.ObjectToDelete, len(objectsList.Contents))
    45  		for i, content := range objectsList.Contents {
    46  			objects[i].Key = content.Key
    47  		}
    48  		deleteOpts := &obs.DeleteObjectsInput{
    49  			Bucket:  bucketName,
    50  			Objects: objects,
    51  		}
    52  		_, err = client.DeleteObjects(deleteOpts)
    53  		th.AssertNoErr(t, err)
    54  		t.Logf("Deleted OBS Bucket objects: %s", objects)
    55  	}
    56  
    57  	_, err = client.DeleteBucket(bucketName)
    58  	th.AssertNoErr(t, err)
    59  	t.Logf("Deleted OBS Bucket: %s", bucketName)
    60  }