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