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 })