github.com/cloudfoundry-incubator/stembuild@v0.0.0-20211223202937-5b61d62226c6/iaas_cli/iaas_clients/iaas_clients_suite_test.go (about) 1 package iaas_clients 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 "time" 8 9 "github.com/google/uuid" 10 "github.com/vmware/govmomi/object" 11 12 "github.com/cloudfoundry-incubator/stembuild/iaas_cli/iaas_clients/factory" 13 14 . "github.com/onsi/ginkgo" 15 . "github.com/onsi/gomega" 16 ) 17 18 func TestIaasClients(t *testing.T) { 19 RegisterFailHandler(Fail) 20 RunSpecs(t, "IaasClients Suite") 21 } 22 23 const ( 24 VcenterUrl = "VCENTER_BASE_URL" 25 VcenterUsername = "VCENTER_USERNAME" 26 VcenterPassword = "VCENTER_PASSWORD" 27 VcenterCACert = "VCENTER_CA_CERT" 28 VmFolder = "VM_FOLDER" 29 TestVmName = "CONTRACT_TEST_VM_NAME" 30 TestVmPassword = "CONTRACT_TEST_VM_PASSWORD" 31 TestVmUsername = "CONTRACT_TEST_VM_USERNAME" 32 ) 33 34 var TestVmPath string 35 var VM *object.VirtualMachine 36 var CTX context.Context 37 var _ = BeforeSuite(func() { 38 39 managerFactory := &vcenter_client_factory.ManagerFactory{Config: vcenter_client_factory.FactoryConfig{ 40 VCenterServer: envMustExist(VcenterUrl), 41 Username: envMustExist(VcenterUsername), 42 Password: envMustExist(VcenterPassword), 43 ClientCreator: &vcenter_client_factory.ClientCreator{}, 44 FinderCreator: &vcenter_client_factory.GovmomiFinderCreator{}, 45 }, 46 } 47 48 CTX = context.TODO() 49 50 vCenterManager, err := managerFactory.VCenterManager(CTX) 51 Expect(err).ToNot(HaveOccurred()) 52 53 err = vCenterManager.Login(CTX) 54 Expect(err).ToNot(HaveOccurred()) 55 56 vmFolder := envMustExist(VmFolder) 57 testVmName := envMustExist(TestVmName) 58 testVmPath := fmt.Sprintf("%s/%s", vmFolder, testVmName) 59 60 vmToClone, err := vCenterManager.FindVM(CTX, testVmPath) 61 Expect(err).ToNot(HaveOccurred()) 62 63 TestVmPath = testVmPath + fmt.Sprintf("%s", uuid.New())[0:8] 64 65 err = vCenterManager.CloneVM(CTX, vmToClone, TestVmPath) 66 Expect(err).ToNot(HaveOccurred()) 67 68 time.Sleep(30 * time.Second) 69 70 VM, err = vCenterManager.FindVM(CTX, TestVmPath) 71 Expect(err).ToNot(HaveOccurred()) 72 73 }) 74 75 var _ = AfterSuite(func() { 76 77 if VM != nil { 78 task, err := VM.PowerOff(CTX) 79 Expect(err).ToNot(HaveOccurred()) 80 err = task.Wait(CTX) 81 Expect(err).ToNot(HaveOccurred()) 82 83 task, err = VM.Destroy(CTX) 84 Expect(err).ToNot(HaveOccurred()) 85 err = task.Wait(CTX) 86 Expect(err).ToNot(HaveOccurred()) 87 } 88 })