code: func diskLabelOrName(data map[string]interface{}) (string, error) {
  	var label, name string
  	if v, ok := data["label"]; ok && v != nil {
  		label = v.(string)
  	}
  	if v, ok := data["name"]; ok && v != nil {
  		name = v.(string)
  	}
  	if name != "" {
  		name = path.Base(name)
  	}
  
  	log.Printf("[DEBUG] diskLabelOrName: label: %q name: %q", label, name)
  	switch {
  	case label == "" && name == "":
  		return "", errors.New("disk label or name must be defined and cannot be computed")
  	case label != "" && name != "":
  		return "", errors.New("disk label and name cannot be defined at the same time")
  	case label != "":
  		log.Printf("[DEBUG] diskLabelOrName: Using defined label value %q", label)
  		return label, nil
  	}
  	log.Printf("[DEBUG] diskLabelOrName: Using defined name value as fallback %q", name)
  	return name, nil
  }
docs: // diskLabelOrName is a helper method that returns the unique label for a disk
  // - either its label or name. An error is returned if both are defined.
  //
  // TODO: This method will be removed in future releases.