'Validate and parse the volumes portion of an application
configuration.
:param unicode application: The name of the application this config
is mapped to.
:param list volumes: A list of ``str`` values giving absolute
paths where a volume should be mounted inside the application.
:raises ConfigurationError: if the volumes config does not validate.
:returns: A ``AttachedVolume`` instance.'

def _parse_app_volumes(self, application, volumes):

    _check_type(volumes, list, u"'volumes'    must    be    a    list", application)
    for volume in volumes:
        if (not isinstance(volume, (str, unicode))):
            raise ConfigurationError(u"Application    '{application}'    has    a    config    error.    'volumes'    values    must    be    string;    got    type    '{type}'.".format(application=application, type=type(volume).__name__))
    if (len(volumes) > 1):
        raise ConfigurationError(u"Application    '{application}'    has    a    config    error.    Only    one    volume    per    application    is    supported    at    this    time.".format(application=application))
    volume = AttachedVolume(manifestation=Manifestation(dataset=Dataset(dataset_id=dataset_id_from_name(application), metadata=pmap({u'name': application})), primary=True), mountpoint=FilePath(volumes[0]))
    return volume
