def __init__(self, repo): self.repo = repo # We fetch all the config entries at once here, so that we don't have to # make many Datastore queries for each individual entry later. db_entries = model.filter_by_prefix(ConfigEntry.all(), self.repo + ':') self.entries = { entry.key().name().split(':', 1)[1]: simplejson.loads(entry.value) for entry in db_entries } self.global_config = None if repo == '*' else Configuration('*')
def __init__(self, repo): self.repo = repo # We fetch all the config entries at once here, so that we don't have to # make many Datastore queries for each individual entry later. db_entries = model.filter_by_prefix( ConfigEntry.all(), self.repo + ':') self.entries = { entry.key().name().split(':', 1)[1]: simplejson.loads(entry.value) for entry in db_entries } self.global_config = None if repo == '*' else Configuration('*')
def get_config(self, repo, name, default=None): """Looks for data in cache. If not present, retrieves from database, stores it in cache and returns the required value.""" config_dict = self.read(repo, None) if config_dict is None: # Cache miss entries = model.filter_by_prefix(ConfigEntry.all(), repo + ':') if entries is None: return default logging.debug("Adding repository %r to config_cache" % repo) config_dict = dict([(e.key().name().split(':', 1)[1], simplejson.loads(e.value)) for e in entries]) self.add(repo, config_dict, self.expiry_time) if name in config_dict: return config_dict[name] return default
def keys(self): entries = model.filter_by_prefix(ConfigEntry.all(), self.repo + ':') return [entry.key().name().split(':', 1)[1] for entry in entries]
def keys(self): entries = model.filter_by_prefix( ConfigEntry.all(), self.subdomain + ':') return [entry.key().name().split(':', 1)[1] for entry in entries]