code: func hostVSwitchFromName(client *govmomi.Client, ns *object.HostNetworkSystem, name string) (*types.HostVirtualSwitch, error) {
  	var mns mo.HostNetworkSystem
  	pc := client.PropertyCollector()
  	ctx, cancel := context.WithTimeout(context.Background(), defaultAPITimeout)
  	defer cancel()
  	if err := pc.RetrieveOne(ctx, ns.Reference(), []string{"networkInfo.vswitch"}, &mns); err != nil {
  		return nil, fmt.Errorf("error fetching host network properties: %s", err)
  	}
  
  	for _, sw := range mns.NetworkInfo.Vswitch {
  		if sw.Name == name {
  			// Spec.Mtu is not set for vSwitches created directly
  			// in ESXi. TODO: Use sw.Mtu instead of sw.Spec.Mtu in
  			// flattenHostVirtualSwitchSpec.
  			sw.Spec.Mtu = sw.Mtu
  			return &sw, nil
  		}
  	}
  
  	return nil, fmt.Errorf("could not find virtual switch %s", name)
  }
docs: // hostVSwitchFromName locates a virtual switch on the supplied
  // HostNetworkSystem by name.