Source code for pulsar.mesos
""" This module and submodules contain code for interfacing the Apache Mesos framework.
"""
try:
from mesos.interface import (
Executor,
Scheduler,
)
from mesos.native import (
MesosExecutorDriver,
MesosSchedulerDriver,
)
except ImportError:
Scheduler = object
Executor = object
MesosSchedulerDriver = None
MesosExecutorDriver = None
try:
from mesos.interface import mesos_pb2
except ImportError:
mesos_pb2 = None
NO_MESOS_EXCEPTION = "Failed to import mesos module, please install mesos properly."
NO_MESOS_PROTO_EXCEPTION = "Failed to import mesos_pbs module, please install mesos properly."
[docs]
def ensure_mesos_libs():
""" Raise import error if mesos is not actually available. Original
import errors above supressed because mesos is meant as an optional
dependency for the Pulsar.
"""
if MesosSchedulerDriver is None:
raise Exception(NO_MESOS_EXCEPTION)
if mesos_pb2 is None:
raise Exception(NO_MESOS_PROTO_EXCEPTION)