@base.remotable_classmethod
def get_minimum_version_multi(cls, context, binaries, use_slave=False):
    if (not all((binary.startswith('nova-') for binary in binaries))):
        LOG.warning("get_minimum_version called with likely-incorrect binaries `%s'", ','.join(binaries))
        raise exception.ObjectActionError(action='get_minimum_version', reason='Invalid binary prefix')
    if ((not cls._SERVICE_VERSION_CACHING) or any(((binary not in cls._MIN_VERSION_CACHE) for binary in binaries))):
        min_versions = cls._db_service_get_minimum_version(context, binaries, use_slave=use_slave)
        if min_versions:
            min_versions = {binary: (version or 0) for (binary, version) in min_versions.items()}
            cls._MIN_VERSION_CACHE.update(min_versions)
    else:
        min_versions = {binary: cls._MIN_VERSION_CACHE[binary] for binary in binaries}
    if min_versions:
        version = min(min_versions.values())
    else:
        version = 0
    version = int(version)
    return version
@base.remotable_classmethod
def get_minimum_version_multi(cls, context, binaries, use_slave=False):
    if (not all((binary.startswith('nova-') for binary in binaries))):
        LOG.warning("get_minimum_version called with likely-incorrect binaries `%s'", ','.join(binaries))
        raise exception.ObjectActionError(action='get_minimum_version', reason='Invalid binary prefix')
    if ((not cls._SERVICE_VERSION_CACHING) or any(((binary not in cls._MIN_VERSION_CACHE) for binary in binaries))):
        min_versions = cls._db_service_get_minimum_version(context, binaries, use_slave=use_slave)
        if min_versions:
            min_versions = {binary: (version or 0) for (binary, version) in min_versions.items()}
            cls._MIN_VERSION_CACHE.update(min_versions)
    else:
        min_versions = {binary: cls._MIN_VERSION_CACHE[binary] for binary in binaries}
    if min_versions:
        version = min(min_versions.values())
    else:
        version = 0
    version = int(version)
    return version