def __init__(self, domain, autoconf=False, basedir=None, cert_path=None): if not basedir: basedir = os.path.join(_preffix, 'leap') self._basedir = os.path.expanduser(basedir) self._domain = domain self._disco = Discovery('https://%s' % domain) self._provider_config = None self.first_bootstrap = defer.Deferred() self.stuck_bootstrap = None is_configured = self.is_configured() if not cert_path and is_configured: cert_path = self._get_ca_cert_path() self._http = HTTPClient(cert_path) self._load_provider_json() if not is_configured: if autoconf: self.log.debug('BOOTSTRAP: provider %s not initialized, ' 'downloading files...' % domain) self.bootstrap() else: raise NotConfiguredError("Provider %s is not configured" % (domain, )) else: self.log.debug( 'BOOTSTRAP: Provider is already initialized, checking if ' 'there are newest config files...') self.bootstrap(replace_if_newer=True)
def delete_provider(domain): path = os.path.join(_preffix, "leap", "providers", domain) path = os.path.expanduser(path) if not os.path.exists(path): raise NotConfiguredError("Provider %s is not configured, can't be " "deleted" % (domain, )) shutil.rmtree(path) Provider.providers[domain] = None
def delete_provider(domain): path = os.path.join(_preffix, "leap", "providers", domain) path = os.path.expanduser(path) if not os.path.exists(path): raise NotConfiguredError("Provider %s is not configured, can't be " "deleted" % (domain, )) shutil.rmtree(path) # FIXME: this feels hacky, can we find a better way?? if domain in Provider.first_bootstrap: del Provider.first_bootstrap[domain] if domain in Provider.ongoing_bootstrap: del Provider.ongoing_bootstrap[domain]
def __init__(self, domain, autoconf=False, basedir=None, check_certificate=True): # TODO: I need a way to know if it was already configured if not basedir: basedir = os.path.join(_preffix, 'leap') self._basedir = os.path.expanduser(basedir) self._domain = domain self._disco = Discovery('https://%s' % domain) self._provider_config = None self.first_bootstrap = defaultdict(None) self.ongoing_bootstrap = defaultdict(None) self.stuck_bootstrap = defaultdict(None) is_configured = self.is_configured() if not is_configured: check_certificate = False if check_certificate: self.contextFactory = None else: # XXX we should do this only for the FIRST provider download. # For the rest, we should pass the ca cert to the agent. # That means that RIGHT AFTER DOWNLOADING provider_info, # we should instantiate a new Agent... self.contextFactory = WebClientContextFactory() self._agent = Agent(reactor, self.contextFactory) self._load_provider_json() if not is_configured: if autoconf: self.log.debug( 'provider %s not configured: downloading files...' % domain) self.bootstrap() else: raise NotConfiguredError("Provider %s is not configured" % (domain, )) else: self.log.debug('Provider already initialized') self.first_bootstrap[self._domain] = defer.succeed( 'already_initialized') self.ongoing_bootstrap[self._domain] = defer.succeed( 'already_initialized')