def post(self): model_kind = self.request.get('model_kind') frequency = self.request.get('frequency') date = str_to_date(self.request.get('date_string')) store_key_name = self.request.get('store_key_name') logging.info('Cleanupworker model kind: %s frequency: \ %s store: %s' % (model_kind, frequency, store_key_name)) recursion_flag = False if model_kind == 'ProductRenderer': store_key = Key.from_path('Store', store_key_name) query = get_renderer_query_for_frequency(frequency, date, store_key) keys = query.fetch(200, TEMPLATE_PRODUCT_COUNT) elif model_kind == 'ProductCounter': store_key = Key.from_path('Store', store_key_name) query = get_counter_query_for_frequency(frequency, date, store_key) keys = query.fetch(200) elif model_kind == 'UserCounter': query = USER_COUNTER_CLEANUP_TARGETS keys = query.fetch(200) else: logging.error('No type found for CleanupWorker :%s' % model_kind) if len(keys): recursion_flag = True pdb.delete(keys) if recursion_flag: logging.info('Enqueing cleanup for model %s' % model_kind) enqueue_cleanup(model_kind, frequency, str(date), store_key_name)
def post(self): model_kind = self.request.get('model_kind') frequency = self.request.get('frequency') date = str_to_date(self.request.get('date_string')) store_key_name = self.request.get('store_key_name') logging.info('Cleanupworker model kind: %s frequency: \ %s store: %s' %(model_kind,frequency,store_key_name)) recursion_flag = False if model_kind == 'ProductRenderer': store_key = Key.from_path('Store',store_key_name) query = get_renderer_query_for_frequency(frequency, date, store_key) keys = query.fetch(200, TEMPLATE_PRODUCT_COUNT) elif model_kind == 'ProductCounter': store_key = Key.from_path('Store',store_key_name) query = get_counter_query_for_frequency(frequency, date, store_key) keys = query.fetch(200) elif model_kind == 'UserCounter': query = USER_COUNTER_CLEANUP_TARGETS keys = query.fetch(200) else: logging.error('No type found for CleanupWorker :%s' %model_kind) if len(keys): recursion_flag = True pdb.delete(keys) if recursion_flag: logging.info('Enqueing cleanup for model %s' %model_kind) enqueue_cleanup(model_kind,frequency,str(date),store_key_name)
def get(self,model_name): if model_name == 'memcache': if memcache.flush_all(): self.response.out.write('MEMCACHE FLUSHED') elif model_name == 'template': pythonloader.mydata = {} self.response.out.write('LOCAL TEMPLATE CACHE FLUSHED') else: query = db.GqlQuery(QUERY_STRING+model_name) keys = [] for key in query: keys.append(key) pdb.delete(keys) self.response.out.write("Deleted all models of kind: %s" % model_name)
def test_delete_local(self): pdb.delete(self.setup_key,_storage='local') entity = cachepy.get(self.cache_key) self.assertEqual(entity , None)
def test_delete_memcache(self): pdb.delete(self.setup_key,_storage='memcache') entity = _deserialize(memcache.get(self.cache_key)) self.assertEqual(entity , None)
def test_delete_db(self): pdb.delete(self.setup_key,_storage='datastore') entity = db.get(self.setup_key) self.assertEqual(entity , None)
def test_delete_local(self): pdb.delete(self.setup_key, _storage='local') entity = cachepy.get(self.cache_key) self.assertEqual(entity, None)
def test_delete_memcache(self): pdb.delete(self.setup_key, _storage='memcache') entity = _deserialize(memcache.get(self.cache_key)) self.assertEqual(entity, None)
def test_delete_db(self): pdb.delete(self.setup_key, _storage='datastore') entity = db.get(self.setup_key) self.assertEqual(entity, None)