def directoryFromConfig(config, store): """ Return a directory service based on the config. If you want to go through AMP to talk to one of these as a client, instantiate txdav.dps.client.DirectoryService """ # Note: Currently the directory needs a store, and the store needs a # directory. Originally the directory's store was going to be different # from the calendar and contacts store, but we're not doing that, maybe # ever, since it brings more headaches (managing multiple schema upgrades, # etc.) You can pass store=None in here and the store will be created for # you, but don't pass store=None if you already have called storeFromConfig() # within this same process; pass that store in instead. # TODO: use proxyForInterface to ensure we're only using the DPS related # store API. Also define an IDirectoryProxyStore Interface assert store is not None serversDB = buildServersDB(config.Servers.MaxClients) if config.Servers.Enabled else None return buildDirectory( store, config.DataRoot, [config.DirectoryService, config.ResourceService], config.AugmentService, config.Authentication.Wiki, serversDB=serversDB, cachingSeconds=config.DirectoryProxy.InSidecarCachingSeconds, filterStartsWith=config.DirectoryFilterStartsWith )
def directoryFromConfig(config, store): """ Return a directory service based on the config. If you want to go through AMP to talk to one of these as a client, instantiate txdav.dps.client.DirectoryService """ # Note: Currently the directory needs a store, and the store needs a # directory. Originally the directory's store was going to be different # from the calendar and contacts store, but we're not doing that, maybe # ever, since it brings more headaches (managing multiple schema upgrades, # etc.) You can pass store=None in here and the store will be created for # you, but don't pass store=None if you already have called storeFromConfig() # within this same process; pass that store in instead. # TODO: use proxyForInterface to ensure we're only using the DPS related # store API. Also define an IDirectoryProxyStore Interface assert store is not None serversDB = buildServersDB( config.Servers.MaxClients) if config.Servers.Enabled else None return buildDirectory( store, config.DataRoot, [config.DirectoryService, config.ResourceService], config.AugmentService, config.Authentication.Wiki, serversDB=serversDB, cachingSeconds=config.DirectoryCaching.CachingSeconds, filterStartsWith=config.DirectoryFilterStartsWith, lookupsBetweenPurges=config.DirectoryCaching.LookupsBetweenPurges, negativeCaching=config.DirectoryCaching.NegativeCachingEnabled)