diff options
author | Kali Kaneko <kali@leap.se> | 2013-08-12 13:25:44 +0200 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2013-08-12 13:25:44 +0200 |
commit | 6da8d09846db4d2eed01e488bc6a6f5ba48b959f (patch) | |
tree | 3b82e8c4e14b1730ff292b6eb632c145dafb332a /src/leap/config/providerconfig.py | |
parent | 00d98a47c60764475d97df1c2eb847e20a77cae5 (diff) |
move everything into bitmask namespace
Diffstat (limited to 'src/leap/config/providerconfig.py')
-rw-r--r-- | src/leap/config/providerconfig.py | 218 |
1 files changed, 0 insertions, 218 deletions
diff --git a/src/leap/config/providerconfig.py b/src/leap/config/providerconfig.py deleted file mode 100644 index f899b17c..00000000 --- a/src/leap/config/providerconfig.py +++ /dev/null @@ -1,218 +0,0 @@ -# -*- coding: utf-8 -*- -# providerconfig.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/>. - -""" -Provider configuration -""" -import logging -import os - -from leap.common.check import leap_check -from leap.common.config.baseconfig import BaseConfig, LocalizedKey -from leap.config.provider_spec import leap_provider_spec - -logger = logging.getLogger(__name__) - - -class MissingCACert(Exception): - """ - Raised when a CA certificate is needed but not found. - """ - pass - - -class ProviderConfig(BaseConfig): - """ - Provider configuration abstraction class - """ - def __init__(self): - BaseConfig.__init__(self) - - def _get_schema(self): - """ - Returns the schema corresponding to the version given. - - :rtype: dict or None if the version is not supported. - """ - return leap_provider_spec - - def _get_spec(self): - """ - Returns the spec object for the specific configuration. - - Override the BaseConfig one because we do not support multiple schemas - for the provider yet. - - :rtype: dict or None if the version is not supported. - """ - return self._get_schema() - - def get_api_uri(self): - return self._safe_get_value("api_uri") - - def get_api_version(self): - return self._safe_get_value("api_version") - - def get_ca_cert_fingerprint(self): - return self._safe_get_value("ca_cert_fingerprint") - - def get_ca_cert_uri(self): - return self._safe_get_value("ca_cert_uri") - - def get_default_language(self): - return self._safe_get_value("default_language") - - @LocalizedKey - def get_description(self): - return self._safe_get_value("description") - - @classmethod - def sanitize_path_component(cls, component): - """ - If the provider tries to instrument the component of a path - that is controlled by them, this will take care of - removing/escaping all the necessary elements. - - :param component: Path component to process - :type component: unicode or str - - :returns: The path component properly escaped - :rtype: unicode or str - """ - # TODO: Fix for windows, names like "aux" or "con" aren't - # allowed. - return component.replace(os.path.sep, "") - - def get_domain(self): - return ProviderConfig.sanitize_path_component( - self._safe_get_value("domain")) - - def get_enrollment_policy(self): - """ - Returns the enrollment policy - - :rtype: string - """ - return self._safe_get_value("enrollment_policy") - - def get_languages(self): - return self._safe_get_value("languages") - - @LocalizedKey - def get_name(self): - return self._safe_get_value("name") - - def get_services(self): - """ - Returns a list with the available services in the current provider. - - :rtype: list - """ - services = self._safe_get_value("services") - return services - - def get_services_string(self): - """ - Returns a string with the available services in the current - provider, ready to be shown to the user. - """ - services_str = ", ".join(self.get_services()) - services_str = services_str.replace( - "openvpn", "Encrypted Internet") - return services_str - - def get_ca_cert_path(self, about_to_download=False): - """ - Returns the path to the certificate for the current provider. - It may raise MissingCACert if - the certificate does not exists and not about_to_download - - :param about_to_download: defines wether we want the path to - download the cert or not. This helps avoid - checking if the cert exists because we - are about to write it. - :type about_to_download: bool - """ - - cert_path = os.path.join(self.get_path_prefix(), - "leap", - "providers", - self.get_domain(), - "keys", - "ca", - "cacert.pem") - - if not about_to_download: - cert_exists = os.path.exists(cert_path) - error_msg = "You need to download the certificate first" - leap_check(cert_exists, error_msg, MissingCACert) - logger.debug("Going to verify SSL against %s" % (cert_path,)) - - return cert_path - - def provides_eip(self): - """ - Returns True if this particular provider has the EIP service, - False otherwise. - - :rtype: bool - """ - return "openvpn" in self.get_services() - - def provides_mx(self): - """ - Returns True if this particular provider has the MX service, - False otherwise. - - :rtype: bool - """ - return "mx" in self.get_services() - - -if __name__ == "__main__": - logger = logging.getLogger(name='leap') - logger.setLevel(logging.DEBUG) - console = logging.StreamHandler() - console.setLevel(logging.DEBUG) - formatter = logging.Formatter( - '%(asctime)s ' - '- %(name)s - %(levelname)s - %(message)s') - console.setFormatter(formatter) - logger.addHandler(console) - - provider = ProviderConfig() - - try: - provider.get_api_version() - except Exception as e: - assert isinstance(e, AssertionError), "Expected an assert" - print "Safe value getting is working" - - # standalone minitest - #if provider.load("provider_bad.json"): - if provider.load("leap/providers/bitmask.net/provider.json"): - print provider.get_api_version() - print provider.get_ca_cert_fingerprint() - print provider.get_ca_cert_uri() - print provider.get_default_language() - print provider.get_description() - print provider.get_description(lang="asd") - print provider.get_domain() - print provider.get_enrollment_policy() - print provider.get_languages() - print provider.get_name() - print provider.get_services() |