github.com/aiven/aiven-go-client@v1.36.0/service_task_acc_test.go (about)

     1  package aiven
     2  
     3  import (
     4  	"math/rand"
     5  	"os"
     6  	"strconv"
     7  	"time"
     8  
     9  	. "github.com/onsi/ginkgo"
    10  	. "github.com/onsi/gomega"
    11  )
    12  
    13  var _ = Describe("Service Task", func() {
    14  	var (
    15  		projectName string
    16  	)
    17  
    18  	Context("PG Service Task", func() {
    19  		It("should not error", func() {
    20  			projectName = os.Getenv("AIVEN_PROJECT_NAME")
    21  			_, err := client.Projects.Get(projectName)
    22  
    23  			Expect(err).NotTo(HaveOccurred())
    24  		})
    25  
    26  		// PG service
    27  		var (
    28  			serviceName string
    29  			service     *Service
    30  			errS        error
    31  		)
    32  
    33  		It("creating service", func() {
    34  			serviceName = "test-acc-pg-sr-" + strconv.Itoa(rand.Int())
    35  			service, errS = client.Services.Create(projectName, CreateServiceRequest{
    36  				Cloud:        "google-europe-west1",
    37  				Plan:         "business-4",
    38  				ProjectVPCID: nil,
    39  				ServiceName:  serviceName,
    40  				ServiceType:  "pg",
    41  				UserConfig: map[string]interface{}{
    42  					"pg_version": "11",
    43  				},
    44  			})
    45  		})
    46  
    47  		It("should not error", func() {
    48  			Expect(errS).NotTo(HaveOccurred())
    49  		})
    50  
    51  		It("should populate fields properly", func() {
    52  			Expect(service).NotTo(BeNil())
    53  
    54  			if service != nil {
    55  				Expect(service.Name).NotTo(BeEmpty())
    56  				Expect(service.Plan).NotTo(BeEmpty())
    57  				Expect(service.Type).Should(Equal("pg"))
    58  
    59  				Eventually(func() string {
    60  					service, _ = client.Services.Get(projectName, serviceName)
    61  					return service.State
    62  				}, 25*time.Minute, 1*time.Minute).Should(Equal("RUNNING"))
    63  			}
    64  		})
    65  
    66  		// service task
    67  		It("create pg service task", func() {
    68  			t, errT := client.ServiceTask.Create(projectName, serviceName, ServiceTaskRequest{
    69  				TargetVersion: "12",
    70  				TaskType:      "upgrade_check",
    71  			})
    72  
    73  			Expect(errT).NotTo(HaveOccurred())
    74  			Expect(t.Task.CreateTime).NotTo(BeEmpty())
    75  			Expect(t.Task.Id).NotTo(BeEmpty())
    76  			Expect(t.Task.Result).NotTo(BeEmpty())
    77  			Expect(t.Task.SourcePgVersion).NotTo(BeEmpty())
    78  			Expect(t.Task.TargetPgVersion).NotTo(BeEmpty())
    79  			Expect(t.Task.TaskType).NotTo(BeEmpty())
    80  
    81  			Eventually(func() *bool {
    82  				t, errT = client.ServiceTask.Get(projectName, serviceName, t.Task.Id)
    83  				return t.Task.Success
    84  			}, 5*time.Minute, 15*time.Second).Should(Not(BeNil()))
    85  
    86  			t, errT = client.ServiceTask.Get(projectName, serviceName, t.Task.Id)
    87  			Expect(errT).NotTo(HaveOccurred())
    88  			Expect(*t.Task.Success).To(BeTrue())
    89  		})
    90  
    91  		It("delete PG service", func() {
    92  			if errD := client.Services.Delete(projectName, serviceName); errD != nil {
    93  				Fail("cannot delete service:" + errD.Error())
    94  			}
    95  		})
    96  	})
    97  })