Example #1
0
    def get(self):
        try:
            # Get the db.User that represents the user on whose behalf the
            # consumer is making this request.
            user = users.get_current_user()
        except e:
            # The request was not a valid OAuth request.
            # ...
            #self.response.headers['Content-Type'] = 'text/plain; charset=UTF-8'
            #self.response.out.write('Auth error: The request was not a valid OAuth request.')
            user = None
        
        is_admin = False
        if user:
            greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" %
                        (user.nickname(), users.create_logout_url("/")))
            is_admin = users.is_current_user_admin()
        else:
            greeting = ("<a href=\"%s\">Sign in or register</a>" %
                        users.create_login_url("/admin"))
        
        branch = qs_branch(self)
        device = qs_device(self)

        path = os.path.join(os.path.dirname(__file__), 'admin.html')
        self.response.out.write(template.render(path, {"device": device, "branch": branch,
                                "greeting": greeting, "user": user, "is_admin": is_admin,
                                "custom_rom": custom_rom, "gerrit_url": gerrit_url}))
Example #2
0
 def get(self):
     if KangExtension().check(self) == False: return
     branch = qs_branch(self)
     device = qs_device(self)
     kang = qs_kang_name(self)
     kangId = qs_kang_id(self)
     
     kangs = Change.gql("WHERE branch = :branch AND project = 'KANG'", branch=branch)
     
     cmd_done = 0
     self.response.headers['Content-Type'] = 'text/html; charset=UTF-8'
     self.response.out.write("<h2>New KANG name '"+kang+"'</h2>\n")
     self.response.out.write("<table>")
     self.response.out.write("<thead><tr><td>id (click to rename)</td><td>info</td><td>branch</td><td>subject</td><td>project</td><td>last_updated</td></tr></thead><tbody>")
     for k in kangs:
         self.response.out.write('<tr><td><a href="/rename_kang-off/?branch='+k.branch+'&kang='+kang+'--NewName&kangId='+str(k.id)+'">'+str(k.id)+'</a></td><td>Checking KANG</td><td>'+k.branch+'</td><td>'+k.subject+'</td><td>'+k.project+'</td><td>'+str(k.last_updated)+'</td></tr>\n')
         if (str(k.id) == kangId):
             old_name = k.subject
             k.subject = kang+"#dev:"+device
             k.put()
             memcache_delete_multi(['last_changes', 'filtered'])
             self.response.out.write('<tr><td><a href="">'+str(k.id)+'</a></td><td>Renamed KANG (old: '+old_name+'; new: '+kang+')</td><td>'+k.branch+'</td><td>'+k.subject+'</td><td>'+k.project+'</td><td>'+str(k.last_updated)+'</td></tr>\n')
             cmd_done = 1
             break
     self.response.out.write("</tbody></table>")
     
     if cmd_done == 0:
         self.response.out.write("<h2>KANG not found: "+kangId+"</h2>\n")
Example #3
0
 def get(self, device=None, branch=None):
     if device is None: device = qs_device(self)
     if branch is None: branch = qs_branch(self)
     
     path = os.path.join(os.path.dirname(__file__), 'rss.xml')
     self.response.headers['Content-Type'] = 'application/rss+xml'
     self.response.out.write(template.render(path, 
          {"url": self.request.host, "custom_rom": custom_rom, "now": datetime.now(), 
           "device": device, "branch": branch, "builds": self.merge_build(device, branch)}))
Example #4
0
 def get(self):
     branch = qs_branch(self)
     
     p_list = Projects().get(branch, 'common', True)
     self.response.headers['Content-Type'] = 'text/plain; charset=UTF-8'
     for p in p_list:
         self.response.out.write("%s; %s; %s\n" %(p.branch, p.type, p.project))
     
     return
Example #5
0
 def get(self, device=None, branch=None):
     if device is None: device = qs_device(self)
     if branch is None: branch = qs_branch(self)
     
     device_config = CustomRomDevices().getDevices()
     manufacturer = ''
     dev_title = ''
     if device in device_config['dev']: 
         manufacturer = device_config['dev'][device]['manufacturer']
         dev_title    = device_config['dev'][device]['title']
     
     path = os.path.join(os.path.dirname(__file__), 'index.html')
     self.response.out.write(template.render(path,
         {"ga_tracking_id": ga_tracking_id, "custom_rom": custom_rom, "build_url": build_url, "gerrit_url": gerrit_url, "types": types,
          "url": self.request.host, "branch": branch, "device": device, "dev_title": dev_title, "manufacturer": manufacturer, "keywords": keywords,
          'devices': device_config, 'branches': branches, "changelog_server": changelog_server}))
Example #6
0
 def get(self):
     if KangExtension().check(self) == False: return
     kang = qs_kang_name(self)
     branch = qs_branch(self)
     device = qs_device(self)
     
     change = Change(id=int(time.time() * -1),
             branch = branch,
             project = 'KANG',
             subject = kang+'#dev:'+device,
             last_updated = time.strftime('%Y-%m-%d %H:%M:%S.000000000', time.gmtime(time.time()))
             )
     change.put()
     memcache_delete_multi(['last_changes', 'filtered'])
     self.response.headers['Content-Type'] = 'text/plain; charset=UTF-8'
     self.response.out.write("KEY: '"+str(change.key().id())+"'\n")
     self.response.out.write("Added KANG: '"+kang+"'\n")
Example #7
0
 def get(self):
     branch = qs_branch(self)
     type = '--all--'
     
     qs_type = self.request.get('type')
     if qs_type:
         type = qs_type
     
     if self.request.get('flush'):
         memcache_delete_multi(['project']);
     
     p_list = Projects().get(branch, type)
     self.response.headers['Content-Type'] = 'text/plain; charset=UTF-8'
     for p in p_list:
         self.response.out.write("%s; %s; %s\n" %(p.branch, p.type, p.project))
     
     return
Example #8
0
 def get(self):
     branch = qs_branch(self)
     delete = qa = self.request.get('delete')
     cache_ns = "flush-test-"+branch
     
     self.response.headers['Content-Type'] = 'text/plain; charset=UTF-8'
     if delete:
         self.response.out.write("Flush cached values (start: '%s')\n" % cache_ns)
         memcache_delete_multi(['flush-test-ics', 'flush-test-gingerbread', cache_ns])
     
     f_test = memcache.get(cache_ns, branch)
     
     if f_test is not None:
         self.response.out.write("Using cached list '%s'...\n" % cache_ns)
         for t in f_test:
             self.response.out.write("Cached: %s\n" % t)
     else:
         self.response.out.write("Cache '%s' is empty...\n" % cache_ns)
         f_test = ['one', 'two']
         
     memcache_set(cache_ns, f_test, namespace=branch)
Example #9
0
    def get(self):
        branch = qs_branch(self)
        
        if self.request.get('update_memcache'):
            return self._update_changes()

        amount = 60
        qa = self.request.get('amount')
        if qa:
            amount = int(qa)
            if amount > query_max: amount = query_max

        change_proxy = proxy.ServerProxy(gerrit_url+'gerrit/rpc/ChangeListService')
        retry_fetch = 10
        while retry_fetch > 0:
            try:
                changes = change_proxy.allQueryNext("status:merged","z",amount)['changes']
                #changes = change_proxy.allQueryNext("status:merged branch:ics","z",amount)['changes']
                #self.response.out.write(json.dumps(changes))
                retry_fetch = 0
            except DownloadError:
                retry_fetch -= 1
                
            except:
                self.response.headers['Content-Type'] = 'text/plain; charset=UTF-8'
                self.response.out.write("ERROR: cannot fetch changes, error occurred\n")
                self.response.out.write(sys.exc_info())
                return

        known_ids = self._known_ids()
        received_ids = [c['id']['id'] for c in changes]

        if is_subset(received_ids, known_ids):
            self.response.headers['Content-Type'] = 'text/plain; charset=UTF-8'
            self.response.out.write("Skipped all %d changes" % len(changes) + "\n")
            return

        return self._update_changes(changes, known_ids)
Example #10
0
 def get(self):
     kang = qs_kang_name(self)
     branch = qs_branch(self)
     device = qs_device(self)
     lc = LastChanges().get(branch)
     
     self.response.headers['Content-Type'] = 'text/plain; charset=UTF-8'
     status = 200
     for c in lc:
         if c.project == 'KANG' and re.search("^"+kang+"(#dev:"+device+")?$", c.subject):
             status = 201
             break
         elif c.project != 'KANG':
             break
     self.response.out.write("Changes available ("+str(status)+"): ")
     if status == 200:
         self.response.out.write("yes")
     else:
         self.response.out.write("no")
     self.response.out.write("\n")
     
     self.response.set_status(status)
     return status
Example #11
0
 def get(self):
     if KangExtension().check(self) == False: return
     kang = qs_kang_name(self)
     kangId = qs_kang_id(self)
     branch = qs_branch(self)
     
     kangs = Change.gql("WHERE project = 'KANG' AND branch=:branch", branch=branch)
     
     cmd_done = 0;
     self.response.headers['Content-Type'] = 'text/html; charset=UTF-8'
     self.response.out.write("<table>")
     self.response.out.write("<thead><tr><td>id (click to rename)</td><td>info</td><td>branch</td><td>subject</td><td>project</td><td>last_updated</td></tr></thead><tbody>")
     for k in kangs:
         self.response.out.write('<tr><td><a href="/remove_kang-off/?branch='+k.branch+'&kang='+kang+'&kangId='+str(k.id)+'">'+str(k.id)+'</a></td><td>Checking KANG</td><td>'+k.branch+'</td><td>'+k.subject+'</td><td>'+k.project+'</td><td>'+str(k.last_updated)+'</td></tr>\n')
         if (k.subject == kang) or (str(k.id) == kangId):
             db.delete(k)
             memcache_delete_multi(['last_changes', 'filtered'])
             self.response.out.write('<tr><td>'+str(k.id)+'</td><td>Removed KANG</td><td>'+k.branch+'</td><td>'+k.subject+'</td><td>'+k.project+'</td><td>'+str(k.last_updated)+'</td></tr>\n')
             cmd_done = 1;
             break
     self.response.out.write("</tbody></table>")
     
     if cmd_done == 0:
         self.response.out.write("<h2>KANG not found: "+kangId+" - '"+kang+"'</h2>\n")
Example #12
0
 def get(self):
     branch = qs_branch(self)
     device = qs_device(self)
     self.response.headers['Content-Type'] = 'text/html; charset=UTF-8'
     
     logging.debug("######> DS: read for DB dump")
     if self.request.get('filter') and self.request.get('filter') == "1":
          q = Change.gql("WHERE branch = :branch ORDER BY last_updated DESC", branch=branch)
     else:
          q = db.GqlQuery("SELECT * FROM Change ORDER BY last_updated DESC, id")
     ch = q.fetch(2000)
     
     self.response.out.write("<table>")
     self.response.out.write("<thead><tr><td>branch</td><td>id</td><td>subject</td><td>project</td><td>last_updated</td></tr></thead><tbody>")
     for r in ch:
         #r.subject = time.strftime('%Y-%m-%d %H:%M')+' - '
         self.response.out.write("<tr><td>"+r.branch+"</td>\n")
         self.response.out.write("<td>"+str(r.id)+"</td>\n")
         self.response.out.write("<td>"+r.subject+"</td>\n")
         self.response.out.write("<td>"+r.project+"</td>\n")
         self.response.out.write("<td>"+str(r.last_updated)+"</td></tr>\n")
     self.response.out.write("</tbody></table>")
     
     return
Example #13
0
 def get(self):
     branch = qs_branch(self)
     device = qs_device(self)
     
     self.response.headers['Content-Type'] = 'application/json'
     self.response.out.write(json.dumps(self.filter(device, branch), default=json_datetime_handler))