github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/lts/v2/lts_test.go (about)

     1  package v2
     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/lts/v2/groups"
    10  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/lts/v2/streams"
    11  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/lts/v2/transfers"
    12  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/obs"
    13  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    14  )
    15  
    16  func TestLtsLifecycle(t *testing.T) {
    17  	client, err := clients.NewLtsV2Client()
    18  	th.AssertNoErr(t, err)
    19  
    20  	name := tools.RandomString("test-group-", 3)
    21  	createOpts := groups.CreateOpts{
    22  		LogGroupName: name,
    23  		TTLInDays:    7,
    24  	}
    25  
    26  	created, err := groups.CreateLogGroup(client, createOpts)
    27  	th.AssertNoErr(t, err)
    28  
    29  	t.Cleanup(func() {
    30  		err = groups.DeleteLogGroup(client, created)
    31  		th.AssertNoErr(t, err)
    32  	})
    33  
    34  	group, err := groups.UpdateLogGroup(client, groups.UpdateLogGroupOpts{
    35  		LogGroupId: created,
    36  		TTLInDays:  3,
    37  	})
    38  	th.AssertNoErr(t, err)
    39  	th.AssertEquals(t, 3, group.TTLInDays)
    40  
    41  	got, err := groups.ListLogGroups(client)
    42  	th.AssertNoErr(t, err)
    43  	th.AssertEquals(t, true, len(got) > 0)
    44  	tools.PrintResource(t, got)
    45  
    46  	sname := tools.RandomString("test-stream-", 3)
    47  	stream, err := streams.CreateLogStream(client, streams.CreateOpts{
    48  		GroupId:       created,
    49  		LogStreamName: sname,
    50  	})
    51  	th.AssertNoErr(t, err)
    52  
    53  	t.Cleanup(func() {
    54  		err = streams.DeleteLogStream(client, streams.DeleteOpts{
    55  			GroupId:  created,
    56  			StreamId: stream,
    57  		})
    58  		th.AssertNoErr(t, err)
    59  	})
    60  
    61  	slist, err := streams.ListLogStream(client, created)
    62  	th.AssertNoErr(t, err)
    63  	th.AssertEquals(t, true, len(slist) > 0)
    64  	tools.PrintResource(t, slist)
    65  }
    66  
    67  func TestLtsTransferLifecycle(t *testing.T) {
    68  	client, err := clients.NewLtsV2Client()
    69  	th.AssertNoErr(t, err)
    70  
    71  	name := tools.RandomString("test-group-", 3)
    72  	createOpts := groups.CreateOpts{
    73  		LogGroupName: name,
    74  		TTLInDays:    7,
    75  	}
    76  
    77  	logId, err := groups.CreateLogGroup(client, createOpts)
    78  	th.AssertNoErr(t, err)
    79  
    80  	t.Cleanup(func() {
    81  		err = groups.DeleteLogGroup(client, logId)
    82  		th.AssertNoErr(t, err)
    83  	})
    84  
    85  	sname := tools.RandomString("test-stream-", 3)
    86  	streamId, err := streams.CreateLogStream(client, streams.CreateOpts{
    87  		GroupId:       logId,
    88  		LogStreamName: sname,
    89  	})
    90  	th.AssertNoErr(t, err)
    91  
    92  	t.Cleanup(func() {
    93  		err = streams.DeleteLogStream(client, streams.DeleteOpts{
    94  			GroupId:  logId,
    95  			StreamId: streamId,
    96  		})
    97  		th.AssertNoErr(t, err)
    98  	})
    99  
   100  	obsClient, err := clients.NewOBSClient()
   101  	th.AssertNoErr(t, err)
   102  
   103  	bucketName := strings.ToLower(tools.RandomString("obs-test", 5))
   104  
   105  	_, err = obsClient.CreateBucket(&obs.CreateBucketInput{
   106  		Bucket: bucketName,
   107  	})
   108  	t.Cleanup(func() {
   109  		_, err = obsClient.DeleteBucket(bucketName)
   110  		th.AssertNoErr(t, err)
   111  	})
   112  	th.AssertNoErr(t, err)
   113  
   114  	switchOn := false
   115  	createTransferOpts := transfers.CreateLogDumpObsOpts{
   116  		LogGroupId: logId,
   117  		LogStreamIds: []string{
   118  			streamId,
   119  		},
   120  		ObsBucketName: bucketName,
   121  		Type:          "cycle",
   122  		StorageFormat: "RAW",
   123  		SwitchOn:      &switchOn,
   124  		PrefixName:    "test",
   125  		DirPrefixName: "dir-test",
   126  		Period:        3,
   127  		PeriodUnit:    "hour",
   128  	}
   129  	logDumpId, err := transfers.CreateLogDumpObs(client, createTransferOpts)
   130  	th.AssertNoErr(t, err)
   131  	t.Logf("Obs log dump created, id: %s", logDumpId)
   132  
   133  	// GET API is currently not working
   134  
   135  	listLogs, err := transfers.ListTransfers(client, transfers.ListTransfersOpts{})
   136  	th.AssertNoErr(t, err)
   137  	tools.PrintResource(t, listLogs)
   138  	if len(listLogs) < 1 {
   139  		t.Error("Log dump wasn't found")
   140  	}
   141  
   142  	err = transfers.DeleteTransfer(client, logDumpId)
   143  	th.AssertNoErr(t, err)
   144  }