def get(self): device = qs_device(self) path = os.path.join(os.path.dirname(__file__), "index.html") self.response.out.write( template.render(path, {"devices": sorted(device_specific.keys()), "for_device": device}) )
def filter(self, device, branch): filter_ns = device+'-'+branch filtered = memcache.get('filtered', filter_ns) if filtered is not None: logging.debug("------> DS: Filtered cache hit") return filtered logging.debug("######> DS: Build list of filtered changes for '%s'" % filter_ns) filtered = [] common = Projects().list(branch, 'common') lc = LastChanges().get(branch) for c in lc: if ( c.project in common or (re.search ("vendor_", c.project) and re.search(r'\b%s\b' % device, c.subject, re.IGNORECASE)) or (c.project == "vendor_aokp" and is_not_device_specific(c.subject)) or (device in device_specific.keys() and c.project in device_specific[device]) or (c.project == 'KANG' and re.search("^.*#dev:"+ device +"$", c.subject)) ): c_time = parse_timestamp(c.last_updated) c_time_offset = c_time + timedelta(hours=gerrit_time_offset) filtered.append({"id": c.id, "branch": c.branch, "project": c.project, "subject": c.subject, "last_updated_offset": c_time_offset, "last_updated": c.last_updated, "last_updated_utc": c_time}) memcache_set('filtered', filtered, namespace=filter_ns) return filtered
def get(self): device = qs_device(self) path = os.path.join(os.path.dirname(__file__), 'index.html') self.response.out.write( template.render(path, { 'devices': sorted(device_specific.keys()), "for_device": device }))
def get(self): self.response.headers['Content-Type'] = 'application/json' self.response.out.write(json.dumps(device_specific.keys()))
def getDevices(self, force=False): cr_devices = memcache.get('cr-devices') if force == False and cr_devices is not None: return cr_devices dev_list = []; cache_cr_dev_timeout = cache_device_timeout try: html = urlopen(build_url).read() html = re.sub(r"[\n\r\t]", r'', html) html = re.sub(build_dev_list_regex, r'\1', html) for r in re.finditer(build_dev_regex, html): dev_list.append(r.group(1)) except: dev_list = device_specific.keys() cache_cr_dev_timeout = 10 cr_devices = {"projects": {}, "dev": {}, "dev_sort": [], "man": {}, "man_sort": [], "nav_list": [], "-unknown-": {}, "-unknown-_sort": []} for c_dev in dev_list: if c_dev == "all": continue if c_dev in device_specific: c_branch = self.getBranch(c_dev) c_manufacturer = self.getManufacturer(device_specific[c_dev]) if c_manufacturer in cr_devices['man']: cr_devices['man'][c_manufacturer].append(c_dev) else: cr_devices['man'][c_manufacturer] = [c_dev] c_title = '' if c_dev in device_title: c_title = device_title[c_dev] cr_devices['dev'][c_dev] = { "name": c_dev, "title": c_title, "projects": ["android_device_"+c_manufacturer+"_"+c_dev, "device_"+c_manufacturer+"_"+c_dev] + device_specific[c_dev], "manufacturer": c_manufacturer, "alias": self.getAliasName(c_dev, c_branch), "branch": c_branch } for p in cr_devices['dev'][c_dev]['projects']: cr_devices['projects'][p] = 1 else: guess_manufacturer = self.guessManufacturer(c_dev) if guess_manufacturer: c_manufacturer = guess_manufacturer if c_manufacturer in cr_devices['man']: cr_devices['man'][c_manufacturer].append(c_dev) else: cr_devices['man'][c_manufacturer] = [c_dev] cr_devices['dev'][c_dev] = { "name": c_dev, "title": '', "projects": ["android_device_"+c_manufacturer+"_"+c_dev, "device_"+c_manufacturer+"_"+c_dev], "manufacturer": c_manufacturer, "alias": '', "branch": 'ics' } for p in cr_devices['dev'][c_dev]['projects']: cr_devices['projects'][p] = 1 else: cr_devices['-unknown-'][c_dev] = { "name": c_dev, "branch": 'ics' } # sort by key cr_devices['dev_sort'] = sorted(cr_devices['dev']) cr_devices['man_sort'] = sorted(cr_devices['man']) cr_devices['-unknown-_sort'] = sorted(cr_devices['-unknown-']) # build nav list for m in cr_devices['man_sort']: nl_dev = [] for d in sorted(cr_devices['man'][m]): nl_dev.append(cr_devices['dev'][d]) cr_devices['nav_list'].append({"name": m, "dev_list": nl_dev}) nl_dev = [] for d in cr_devices['-unknown-_sort']: nl_dev.append(cr_devices['-unknown-'][d]) if nl_dev: cr_devices['nav_list'].append({"name": 'unknown', "dev_list": nl_dev}) memcache.set('cr-devices', cr_devices, cache_cr_dev_timeout) return cr_devices