# -*- coding: utf-8 -*-""" rhodecode.lib.paster_commands.cache_keys ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cleanup-keys paster command for RhodeCode :created_on: mar 27, 2013 :author: marcink :copyright: (C) 2010-2013 Marcin Kuzminski <marcin@python-works.com> :license: GPLv3, see COPYING for more details."""# This program is free software: you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation, either version 3 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program. If not, see <http://www.gnu.org/licenses/>.from__future__importwith_statementimportosimportsysimportloggingfromos.pathimportdirnameasdn,joinasjnfromrhodecode.model.metaimportSession#to get the rhodecode importrc_path=dn(dn(dn(os.path.realpath(__file__))))sys.path.append(rc_path)fromrhodecode.lib.utilsimportBasePasterCommandfromrhodecode.model.dbimportCacheInvalidationlog=logging.getLogger(__name__)classCommand(BasePasterCommand):max_args=1min_args=1usage="CONFIG_FILE"group_name="RhodeCode"takes_config_file=-1parser=BasePasterCommand.standard_parser(verbose=True)summary="Cache keys utils"defcommand(self):#get SqlAlchemy sessionself._init_session()_caches=CacheInvalidation.query().order_by(CacheInvalidation.cache_key).all()ifself.options.show:forc_objin_caches:print'key:%s active:%s'%(c_obj.cache_key,c_obj.cache_active)elifself.options.cleanup:forc_objin_caches:Session().delete(c_obj)print'removing key:%s'%(c_obj.cache_key)Session().commit()else:print'nothing done exiting...'sys.exit(0)defupdate_parser(self):self.parser.add_option('--show',action='store_true',dest='show',help=("show existing cache keys with together with status"))self.parser.add_option('--cleanup',action="store_true",dest="cleanup",help="cleanup existing cache keys")