summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/core/service.py
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2017-08-10 12:55:26 -0400
committerKali Kaneko <kali@leap.se>2017-08-10 15:24:24 -0400
commitc3ee473837be32cd01f222e0609af36f919a90d3 (patch)
tree342064902b8d220898ec20044bb82cd44c8ec64e /src/leap/bitmask/core/service.py
parent63b3413ced33d7b63cf1a9a5d37070ec81f627c8 (diff)
[refactor] fail gracefully if some modules not present
this allows for better modularization in, for instance, the debian package. we should be able to install just the submodules for the vpn service, or the mail service. a better modularization needs the mail_services under core to be moved to bitmask.mail, and do the switch in the main service module for bitmask daemon.
Diffstat (limited to 'src/leap/bitmask/core/service.py')
-rw-r--r--src/leap/bitmask/core/service.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/leap/bitmask/core/service.py b/src/leap/bitmask/core/service.py
index 6244b17e..ec3536f2 100644
--- a/src/leap/bitmask/core/service.py
+++ b/src/leap/bitmask/core/service.py
@@ -35,8 +35,13 @@ from leap.bitmask.core import flags
from leap.bitmask.core import _zmq
from leap.bitmask.core import _session
from leap.bitmask.core.web.service import HTTPDispatcherService
-from leap.bitmask.vpn.service import VPNService
from leap.common.events import server as event_server
+try:
+ from leap.bitmask.vpn.service import VPNService
+ HAS_VPN = True
+except ImportError:
+ HAS_VPN = False
+
backend = flags.BACKEND
@@ -201,7 +206,8 @@ class BitmaskBackend(configurable.ConfigurableService):
self._maybe_init_service('mail', service, self.basedir)
def _init_vpn(self):
- self._maybe_init_service('vpn', VPNService)
+ if HAS_VPN:
+ self._maybe_init_service('vpn', VPNService)
def _init_zmq(self):
zs = _zmq.ZMQServerService(self)