summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/leap/config/providerconfig.py5
-rw-r--r--src/leap/gui/mainwindow.py4
-rw-r--r--src/leap/gui/wizard.py8
-rw-r--r--src/leap/services/__init__.py33
4 files changed, 46 insertions, 4 deletions
diff --git a/src/leap/config/providerconfig.py b/src/leap/config/providerconfig.py
index 6bbd7422..94568c27 100644
--- a/src/leap/config/providerconfig.py
+++ b/src/leap/config/providerconfig.py
@@ -24,6 +24,7 @@ import os
from leap.common.check import leap_assert
from leap.common.config.baseconfig import BaseConfig, LocalizedKey
from leap.config.provider_spec import leap_provider_spec
+from leap.services import get_available
logger = logging.getLogger(__name__)
@@ -32,7 +33,6 @@ class ProviderConfig(BaseConfig):
"""
Provider configuration abstraction class
"""
-
def __init__(self):
BaseConfig.__init__(self)
@@ -86,7 +86,8 @@ class ProviderConfig(BaseConfig):
:rtype: list
"""
- return self._safe_get_value("services")
+ services = get_available(self._safe_get_value("services"))
+ return services
def get_services_string(self):
"""
diff --git a/src/leap/gui/mainwindow.py b/src/leap/gui/mainwindow.py
index a3c601c5..2ed01917 100644
--- a/src/leap/gui/mainwindow.py
+++ b/src/leap/gui/mainwindow.py
@@ -110,10 +110,14 @@ class MainWindow(QtGui.QMainWindow):
QtGui.QMainWindow.__init__(self)
# register leap events
+
+ # XXX ------- this is blocking -----------
register(signal=proto.UPDATER_NEW_UPDATES,
callback=self._new_updates_available)
register(signal=proto.RAISE_WINDOW,
callback=self._on_raise_window_event)
+ # XXX ------- this is blocking -----------
+
self._quit_callback = quit_callback
self._updates_content = ""
diff --git a/src/leap/gui/wizard.py b/src/leap/gui/wizard.py
index 897bf94f..066a7db3 100644
--- a/src/leap/gui/wizard.py
+++ b/src/leap/gui/wizard.py
@@ -32,6 +32,7 @@ from leap.crypto.srpregister import SRPRegister
from leap.util.privilege_policies import is_missing_policy_permissions
from leap.util.request_helpers import get_content
from leap.services.eip.providerbootstrapper import ProviderBootstrapper
+from leap.services import get_available
logger = logging.getLogger(__name__)
@@ -514,13 +515,16 @@ class Wizard(QtGui.QWizard):
def _populate_services(self):
"""
Loads the services that the provider provides into the UI for
- the user to enable or disable
+ the user to enable or disable.
"""
self.ui.grpServices.setTitle(
self.tr("Services by %s") %
(self._provider_config.get_name(),))
- for service in self._provider_config.get_services():
+ services = get_available(
+ self._provider_config.get_services())
+
+ for service in services:
try:
if service not in self._shown_services:
checkbox = QtGui.QCheckBox(self)
diff --git a/src/leap/services/__init__.py b/src/leap/services/__init__.py
index e69de29b..70a5dcf2 100644
--- a/src/leap/services/__init__.py
+++ b/src/leap/services/__init__.py
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+# __init__.py
+# Copyright (C) 2013 LEAP
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+Services module.
+"""
+NOT_YET_DEPLOYED = ["mx"] # for 0.2.2 release
+
+
+def get_available(services):
+ """
+ Returns a list of the available services.
+
+ :param services: a list containing the services to be filtered.
+ :type services: list of str
+
+ :returns: a list of the available services
+ :rtype: list of str
+ """
+ return filter(lambda s: s not in NOT_YET_DEPLOYED, services)