code: func (vs *VSphere) GetVolumeLabels(volumePath string) (map[string]string, error) {
  	// Create context
  	ctx, cancel := context.WithCancel(context.Background())
  	defer cancel()
  
  	// if zones is not enabled return no labels
  	if !vs.isZoneEnabled() {
  		klog.V(4).Infof("Volume zone labels is not enabled in vsphere.conf")
  		return nil, nil
  	}
  
  	datastorePathObj, err := vclib.GetDatastorePathObjFromVMDiskPath(volumePath)
  	if err != nil {
  		klog.Errorf("Failed to get datastore for volume: %v: %+v", volumePath, err)
  		return nil, err
  	}
  	dsZones, err := vs.GetZonesForDatastore(ctx, datastorePathObj.Datastore)
  	if err != nil {
  		klog.Errorf("Failed to get zones for datastore %v: %+v", datastorePathObj.Datastore, err)
  		return nil, err
  	}
  	dsZones, err = vs.collapseZonesInRegion(ctx, dsZones)
  	// FIXME: For now, pick the first zone of datastore as the zone of volume
  	labels := make(map[string]string)
  	if len(dsZones) > 0 {
  		labels[v1.LabelZoneRegion] = dsZones[0].Region
  		labels[v1.LabelZoneFailureDomain] = dsZones[0].FailureDomain
  	}
  	return labels, nil
  }
docs: // GetVolumeLabels returns the well known zone and region labels for given volume