docs: def get_config():
      '''Gather and sanity-check volume configuration data'''
      volume_config = {}
      config = hookenv.config()
  
      errors = False
  
      if config.get('volume-ephemeral') in (True, 'True', 'true', 'Yes', 'yes'):
          volume_config['ephemeral'] = True
      else:
          volume_config['ephemeral'] = False
  
      try:
          volume_map = yaml.safe_load(config.get('volume-map', '{}'))
      except yaml.YAMLError as e:
          hookenv.log("Error parsing YAML volume-map: {}".format(e),
                      hookenv.ERROR)
          errors = True
      if volume_map is None:
          # probably an empty string
          volume_map = {}
      elif not isinstance(volume_map, dict):
          hookenv.log("Volume-map should be a dictionary, not {}".format(
              type(volume_map)))
          errors = True
  
      volume_config['device'] = volume_map.get(os.environ['JUJU_UNIT_NAME'])
      if volume_config['device'] and volume_config['ephemeral']:
          # asked for ephemeral storage but also defined a volume ID
          hookenv.log('A volume is defined for this unit, but ephemeral '
                      'storage was requested', hookenv.ERROR)
          errors = True
      elif not volume_config['device'] and not volume_config['ephemeral']:
          # asked for permanent storage but did not define volume ID
          hookenv.log('Ephemeral storage was requested, but there is no volume '
                      'defined for this unit.', hookenv.ERROR)
          errors = True
  
      unit_mount_name = hookenv.local_unit().replace('/', '-')
      volume_config['mountpoint'] = os.path.join(MOUNT_BASE, unit_mount_name)
  
      if errors:
          return None
      return volume_config