def get(self, branch, type, force=False): p_list = self._get_mem(branch, type) if not force and p_list is not None: logging.debug("---> DS: Projects cache hit") return p_list logging.debug("###> DS: Read project: branch '%s', type '%s'" % (branch, type)) if type == '--all--': p_list = Project.gql("WHERE branch = :1 ORDER BY type, project", branch) else: p_list = Project.gql("WHERE branch = :1 AND type = :2 ORDER BY project", branch, type) return self._set_mem(p_list, branch, type)
def device_projects(): projects = memcache.get('device-projects') if projects is not None: logging.debug("---> DS: Device project cache hit") return projects logging.debug("###> DS: read device projects") all_projects = Project.gql("WHERE type = 'device'") projects = [] for p in all_projects: if not re.search(r'^(android_)?device_', p.project): continue projects.append(p.project) memcache.set('device-projects', projects) return projects