def _download_config_and_cert(self): """ Downloads the SMTP config and cert for the given provider. """ leap_assert(self._provider_config, "We need a provider configuration!") logger.debug("Downloading SMTP config for %s" % (self._provider_config.get_domain(),)) download_service_config( self._provider_config, self._smtp_config, self._session, self._download_if_needed) hosts = self._smtp_config.get_hosts() if len(hosts) == 0: raise NoSMTPHosts() # TODO handle more than one host and define how to choose hostname = hosts.keys()[0] logger.debug("Using hostname %s for SMTP" % (hostname,)) client_cert_path = self._smtp_config.get_client_cert_path( self._userid, self._provider_config, about_to_download=True) needs_download = leap_certs.should_redownload(client_cert_path) if needs_download: # For re-download if something is wrong with the cert # FIXME this doesn't read well. should reword the logic here. self._download_if_needed = ( self._download_if_needed and not needs_download) if self._download_if_needed and os.path.isfile(client_cert_path): check_and_fix_urw_only(client_cert_path) return try: download_client_cert(self._provider_config, client_cert_path, self._session, kind="smtp") except HTTPError as exc: if exc.message.startswith('403 Client Error'): logger.debug( 'Auth problem downloading smtp certificate... ' 'It might be a provider problem, will try ' 'fetching from vpn pool') warnings.warn( 'Compatibility hack for platform 0.7 not fully ' 'supporting smtp certificates. Will be deprecated in ' 'bitmask 0.10') download_client_cert(self._provider_config, client_cert_path, self._session, kind="vpn") else: raise
def _download_config(self): """ Download the Soledad config for the given provider """ leap_assert(self._provider_config, "We need a provider configuration!") logger.debug("Downloading Soledad config for %s" % (self._provider_config.get_domain(),)) self._soledad_config = SoledadConfig() download_service_config(self._provider_config, self._soledad_config, self._session, self._download_if_needed)
def _download_config_and_cert(self): """ Downloads the SMTP config and cert for the given provider. """ leap_assert(self._provider_config, "We need a provider configuration!") logger.debug("Downloading SMTP config for %s" % (self._provider_config.get_domain(), )) download_service_config(self._provider_config, self._smtp_config, self._session, self._download_if_needed) hosts = self._smtp_config.get_hosts() if len(hosts) == 0: raise NoSMTPHosts() # TODO handle more than one host and define how to choose hostname = hosts.keys()[0] logger.debug("Using hostname %s for SMTP" % (hostname, )) client_cert_path = self._smtp_config.get_client_cert_path( self._userid, self._provider_config, about_to_download=True) needs_download = leap_certs.should_redownload(client_cert_path) if needs_download: # For re-download if something is wrong with the cert # FIXME this doesn't read well. should reword the logic here. self._download_if_needed = (self._download_if_needed and not needs_download) if self._download_if_needed and os.path.isfile(client_cert_path): check_and_fix_urw_only(client_cert_path) return try: download_client_cert(self._provider_config, client_cert_path, self._session, kind="smtp") except HTTPError as exc: if exc.message.startswith('403 Client Error'): logger.debug( 'Auth problem downloading smtp certificate... ' 'It might be a provider problem, will try ' 'fetching from vpn pool') warnings.warn( 'Compatibility hack for platform 0.7 not fully ' 'supporting smtp certificates. Will be deprecated in ' 'bitmask 0.10') download_client_cert(self._provider_config, client_cert_path, self._session, kind="vpn") else: raise
def _download_config(self): """ Download the Soledad config for the given provider """ leap_assert(self._provider_config, "We need a provider configuration!") logger.debug("Downloading Soledad config for %s" % (self._provider_config.get_domain(), )) self._soledad_config = SoledadConfig() download_service_config(self._provider_config, self._soledad_config, self._session, self._download_if_needed)
def _download_config(self, *args): """ Downloads the EIP config for the given provider """ leap_assert(self._provider_config, "We need a provider configuration!") logger.debug("Downloading EIP config for %s" % (self._provider_config.get_domain(), )) self._eip_config = EIPConfig() download_service_config(self._provider_config, self._eip_config, self._session, self._download_if_needed)
def _download_config(self, *args): """ Downloads the EIP config for the given provider """ leap_assert(self._provider_config, "We need a provider configuration!") logger.debug("Downloading EIP config for %s" % (self._provider_config.get_domain(),)) self._eip_config = EIPConfig() download_service_config( self._provider_config, self._eip_config, self._session, self._download_if_needed)
def _download_config_and_cert(self): """ Downloads the SMTP config and cert for the given provider. """ leap_assert(self._provider_config, "We need a provider configuration!") logger.debug("Downloading SMTP config for %s" % (self._provider_config.get_domain(),)) download_service_config( self._provider_config, self._smtp_config, self._session, self._download_if_needed) hosts = self._smtp_config.get_hosts() if len(hosts) == 0: raise NoSMTPHosts() # TODO handle more than one host and define how to choose hostname = hosts.keys()[0] logger.debug("Using hostname %s for SMTP" % (hostname,)) client_cert_path = self._smtp_config.get_client_cert_path( self._provider_config, about_to_download=True) if not is_file(client_cert_path): # For re-download if something is wrong with the cert self._download_if_needed = ( self._download_if_needed and not leap_certs.should_redownload(client_cert_path)) if self._download_if_needed and os.path.isfile(client_cert_path): check_and_fix_urw_only(client_cert_path) return download_client_cert(self._provider_config, client_cert_path, self._session)
def _download_config(self): """ Downloads the Soledad config for the given provider """ leap_assert(self._provider_config, "We need a provider configuration!") logger.debug("Downloading Soledad config for %s" % (self._provider_config.get_domain(),)) self._soledad_config = SoledadConfig() download_service_config( self._provider_config, self._soledad_config, self._session, self._download_if_needed) # soledad config is ok, let's proceed to load and sync soledad # XXX but honestly, this is a pretty strange entry point for that. # it feels like it should be the other way around: # load_and_sync, and from there, if needed, call download_config self.load_and_sync_soledad()
def _download_config_and_cert(self): """ Downloads the SMTP config and cert for the given provider. """ leap_assert(self._provider_config, "We need a provider configuration!") logger.debug("Downloading SMTP config for %s" % (self._provider_config.get_domain(), )) download_service_config(self._provider_config, self._smtp_config, self._session, self._download_if_needed) hosts = self._smtp_config.get_hosts() if len(hosts) == 0: raise NoSMTPHosts() # TODO handle more than one host and define how to choose hostname = hosts.keys()[0] logger.debug("Using hostname %s for SMTP" % (hostname, )) client_cert_path = self._smtp_config.get_client_cert_path( self._provider_config, about_to_download=True) if not is_file(client_cert_path): # For re-download if something is wrong with the cert self._download_if_needed = ( self._download_if_needed and not leap_certs.should_redownload(client_cert_path)) if self._download_if_needed and os.path.isfile(client_cert_path): check_and_fix_urw_only(client_cert_path) return download_client_cert(self._provider_config, client_cert_path, self._session)