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 }