def LoadVolumeMounts()

in container_agent/run_containers.py [0:0]


def LoadVolumeMounts(mounts_spec, all_volumes, ctr_name):
    """Process a "volumeMounts" block of config and return a list of mounts."""

    # TODO(thockin): Could be a dict of name -> Mount
    all_mounts = []
    for vol_index, vol_spec in enumerate(mounts_spec):
        if 'name' not in vol_spec:
            raise ConfigException(
                'containers[%s].volumeMounts[%d] has no name'
                % (ctr_name, vol_index))
        vol_name = vol_spec['name']
        if not IsRfc1035Name(vol_name):
            raise ConfigException(
                'containers[%s].volumeMounts[%d].name'
                'is invalid: %s'
                % (ctr_name, vol_index, vol_name))
        if vol_name not in all_volumes:
            raise ConfigException(
                'containers[%s].volumeMounts[%d].name'
                'is not a known volume: %s'
                % (ctr_name, vol_index, vol_name))

        if 'path' not in vol_spec:
            raise ConfigException(
                'containers[%s].volumeMounts[%s] has no path'
                % (ctr_name, vol_name))
        vol_path = vol_spec['path']
        if not IsValidPath(vol_path):
            raise ConfigException(
                'containers[%s].volumeMounts[%s].path is invalid: %s'
                % (ctr_name, vol_name, vol_path))

        read_mode = 'ro' if vol_spec.get('readOnly', False) else 'rw'

        all_mounts.append(
            '%s/%s:%s:%s' % (VOLUMES_ROOT_DIR, vol_name, vol_path, read_mode))

    return all_mounts