github.com/vmware/go-vcloud-director/v2@v2.24.0/govcd/vm_groups_test.go (about)

     1  //go:build functional || openapi || ALL
     2  
     3  /*
     4   * Copyright 2022 VMware, Inc.  All rights reserved.  Licensed under the Apache v2 License.
     5   */
     6  
     7  package govcd
     8  
     9  import (
    10  	"fmt"
    11  	"github.com/vmware/go-vcloud-director/v2/types/v56"
    12  	. "gopkg.in/check.v1"
    13  )
    14  
    15  // This test checks the correct behaviour of the read, create and delete operations for VM Groups and Logical VM Groups.
    16  func (vcd *TestVCD) Test_VmGroupsCRUD(check *C) {
    17  	if vcd.skipAdminTests {
    18  		check.Skip(fmt.Sprintf(TestRequiresSysAdminPrivileges, check.TestName()))
    19  	}
    20  
    21  	if vcd.config.VCD.NsxtProviderVdc.PlacementPolicyVmGroup == "" {
    22  		check.Skip(fmt.Sprintf("%s test requires vcd.nsxt_provider_vdc.placementPolicyVmGroup configuration", check.TestName()))
    23  	}
    24  	if vcd.config.VCD.NsxtProviderVdc.Name == "" {
    25  		check.Skip(fmt.Sprintf("%s test requires vcd.nsxt_provider_vdc configuration", check.TestName()))
    26  	}
    27  
    28  	// We need the Provider VDC URN
    29  	pVdc, err := vcd.client.GetProviderVdcByName(vcd.config.VCD.NsxtProviderVdc.Name)
    30  	check.Assert(err, IsNil)
    31  
    32  	vmGroup, err := vcd.client.GetVmGroupByNameAndProviderVdcUrn(vcd.config.VCD.NsxtProviderVdc.PlacementPolicyVmGroup, pVdc.ProviderVdc.ID)
    33  	check.Assert(err, IsNil)
    34  	check.Assert(vmGroup.VmGroup.Name, Equals, vcd.config.VCD.NsxtProviderVdc.PlacementPolicyVmGroup)
    35  
    36  	vmGroup2, err := vcd.client.GetVmGroupById(vmGroup.VmGroup.ID)
    37  	check.Assert(err, IsNil)
    38  	check.Assert(vmGroup2, DeepEquals, vmGroup)
    39  
    40  	vmGroup3, err := vcd.client.GetVmGroupByNamedVmGroupIdAndProviderVdcUrn(vmGroup2.VmGroup.NamedVmGroupId, pVdc.ProviderVdc.ID)
    41  	check.Assert(err, IsNil)
    42  	check.Assert(vmGroup3, DeepEquals, vmGroup2)
    43  
    44  	logicalVmGroup, err := vcd.client.CreateLogicalVmGroup(types.LogicalVmGroup{
    45  		Name: check.TestName(),
    46  		NamedVmGroupReferences: types.OpenApiReferences{
    47  			types.OpenApiReference{
    48  				ID:   fmt.Sprintf("%s:%s", vmGroupUrnPrefix, vmGroup.VmGroup.NamedVmGroupId),
    49  				Name: vmGroup.VmGroup.Name},
    50  		},
    51  		PvdcID: pVdc.ProviderVdc.ID,
    52  	})
    53  	check.Assert(err, IsNil)
    54  	AddToCleanupList(logicalVmGroup.LogicalVmGroup.ID, "logicalVmGroup", "", check.TestName())
    55  
    56  	retrievedLogicalVmGroup, err := vcd.client.GetLogicalVmGroupById(logicalVmGroup.LogicalVmGroup.ID)
    57  	check.Assert(err, IsNil)
    58  	check.Assert(retrievedLogicalVmGroup.LogicalVmGroup, DeepEquals, logicalVmGroup.LogicalVmGroup)
    59  
    60  	err = logicalVmGroup.Delete()
    61  	check.Assert(err, IsNil)
    62  }