Example #1
0
 def post(self):
     av = self.request.get('av')
     data = AvData.get_or_insert(key_name="Data:" + av)
     query = AvTokenValue.gql("WHERE av = :1", av)
     if query.count(1) > 0:
         for record in query:
             if record.value != "leasher,00000000-0000-0000-0000-000000000000":
                 setattr(data, record.token, record.value)
         data.put()
         for record in query:
             record.delete()
     name = Av.get_by_key_name("Av:" + av)
     if name is None:
         namequery = Av.gql("WHERE id = :1", av)
         count = namequery.count()
         if count == 0:  #doesn't exist. save
             logging.error("key %s has no record in Av. While converting",
                           av)
         elif count == 1:  #already exists.  just update the name
             avname = namequery.get()
             if avname:
                 Av(key_name="Av:" + av, id=av, name=avname.name).put()
                 avname.delete()
         else:  #there's more than one record.  delete them all and just save one
             #this should never happen
             logging.error("key %s had more than one record in Av.", av)
             avname = ""
             for record in namequery:
                 avname = record.name
                 record.delete()
             Av(key_name="Av:" + av, id=av, name=avname)
Example #2
0
def update_av(id, name):
    """update's av's name if key found, else creates entity.  only use request header data.  POST and PUT data are not trustworthy."""
    av = Av.get_by_key_name("Av:" + id)  #optimize
    if av is None:
        #Av(key_name="Av:"+id,id = id, name = name).put()
        query = Av.gql("WHERE id = :1", id)
        count = query.count()
        if count == 0:  #doesn't exist. save
            Av(key_name="Av:" + id, id=id, name=name).put()
        elif count == 1:  #already exists.  just update the name
            av = query.get()
            if (av.name != name):
                av.name = name
                av.put()
        else:  #there's more than one record.  delete them all and just save one
            #this should never happen
            logging.error("%s key %s had more than one record in Av.", name,
                          id)
            for record in query:
                record.delete()
            av = Av(key_name="Av:" + id, id=id, name=name)
            av.put()
    elif (av.name != name):
        av.name = name
        av.put()