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

     1  package govcd
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/vmware/go-vcloud-director/v2/types/v56"
     6  	"net/url"
     7  )
     8  
     9  func (vcdClient *VCDClient) GetAllVcenterDistributedSwitches(vCenterId string, queryParameters url.Values) ([]*types.VcenterDistributedSwitch, error) {
    10  	if vCenterId == "" {
    11  		return nil, fmt.Errorf("empty vCenter ID")
    12  	}
    13  
    14  	if !isUrn(vCenterId) {
    15  		return nil, fmt.Errorf("vCenter ID is not URN (e.g. 'urn:vcloud:vimserver:09722307-aee0-4623-af95-7f8e577c9ebc)', got: %s", vCenterId)
    16  	}
    17  
    18  	client := vcdClient.Client
    19  	endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVCenterDistributedSwitch
    20  	apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint)
    21  	if err != nil {
    22  		return nil, err
    23  	}
    24  	queryParams := copyOrNewUrlValues(queryParameters)
    25  	queryParams = queryParameterFilterAnd("virtualCenter.id=="+vCenterId, queryParams)
    26  
    27  	urlRef, err := client.OpenApiBuildEndpoint(endpoint)
    28  	if err != nil {
    29  		return nil, err
    30  	}
    31  
    32  	var typeResponses []*types.VcenterDistributedSwitch
    33  	err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParams, &typeResponses, nil)
    34  	if err != nil {
    35  		return nil, err
    36  	}
    37  
    38  	return typeResponses, nil
    39  }