summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/vpn
diff options
context:
space:
mode:
authorRuben Pollan <meskio@sindominio.net>2017-03-28 13:35:56 +0200
committerKali Kaneko (leap communications) <kali@leap.se>2017-04-03 15:41:19 +0200
commitef804c1fd5a8ae307aca70853c9224b63d14a731 (patch)
tree97e69bc1ca54b3dbb43e7215a15b2f5415f5dedd /src/leap/bitmask/vpn
parentb71f8be2993c887130a00390e46615c882de6655 (diff)
[feat] add a check for the installation of the helpers to the API
- Resolves: #8786
Diffstat (limited to 'src/leap/bitmask/vpn')
-rw-r--r--src/leap/bitmask/vpn/helpers/__init__.py6
-rw-r--r--src/leap/bitmask/vpn/service.py9
2 files changed, 12 insertions, 3 deletions
diff --git a/src/leap/bitmask/vpn/helpers/__init__.py b/src/leap/bitmask/vpn/helpers/__init__.py
index 8905adfd..69a9a5fb 100644
--- a/src/leap/bitmask/vpn/helpers/__init__.py
+++ b/src/leap/bitmask/vpn/helpers/__init__.py
@@ -1,5 +1,6 @@
from os import remove, chmod
from shutil import copyfile
+import os.path
import sys
from leap.bitmask.vpn.constants import IS_LINUX
@@ -21,6 +22,11 @@ if IS_LINUX:
remove(helper_to)
remove(polkit_to)
+ def check():
+ helper = os.path.exists(helper_to)
+ polkit = os.path.exists(polkit_to)
+ return helper and polkit
+
def main():
if sys.argv[-1] == 'install':
diff --git a/src/leap/bitmask/vpn/service.py b/src/leap/bitmask/vpn/service.py
index 17e20af6..a7dce3d2 100644
--- a/src/leap/bitmask/vpn/service.py
+++ b/src/leap/bitmask/vpn/service.py
@@ -27,7 +27,7 @@ from twisted.internet import defer
from leap.bitmask.hooks import HookableService
from leap.bitmask.vpn.vpn import VPNManager
from leap.bitmask.vpn._checks import is_service_ready, get_vpn_cert_path
-from leap.bitmask.vpn import privilege
+from leap.bitmask.vpn import privilege, helpers
from leap.common.config import get_path_prefix
from leap.common.files import check_and_fix_urw_only
@@ -97,10 +97,13 @@ class VPNService(HookableService):
return status
- def do_check(self, domain):
+ def do_check(self, domain=None):
"""Check whether the VPN Service is properly configured,
and can be started"""
- return {'vpn_ready': is_service_ready(domain)}
+ ret = {'installed': helpers.check()}
+ if domain:
+ ret['vpn_ready'] = is_service_ready(domain)
+ return ret
@defer.inlineCallbacks
def do_get_cert(self, username):