diff --git a/requirements.txt b/requirements.txt --- a/requirements.txt +++ b/requirements.txt @@ -171,11 +171,6 @@ nbconvert==7.7.3 webencodings==0.5.1 traitlets==5.9.0 orjson==3.10.3 -pastescript==3.6.0 - paste==3.10.1 - six==1.16.0 - pastedeploy==3.1.0 - six==1.16.0 premailer==3.10.0 cachetools==5.3.2 cssselect==1.2.0 @@ -279,12 +274,6 @@ tzlocal==4.3 unidecode==1.3.6 urlobject==2.4.3 waitress==3.0.0 -weberror==0.13.1 - paste==3.10.1 - six==1.16.0 - pygments==2.15.1 - tempita==0.5.2 - webob==1.8.7 webhelpers2==2.1 markupsafe==2.1.2 six==1.16.0 diff --git a/rhodecode/lib/paster_commands/__init__.py b/rhodecode/lib/paster_commands/__init__.py deleted file mode 100644 --- a/rhodecode/lib/paster_commands/__init__.py +++ /dev/null @@ -1,89 +0,0 @@ - -# Copyright (C) 2010-2023 RhodeCode GmbH -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License, version 3 -# (only), as published by the Free Software Foundation. -# -# 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 Affero General Public License -# along with this program. If not, see . -# -# This program is dual-licensed. If you wish to learn more about the -# RhodeCode Enterprise Edition, including its added features, Support services, -# and proprietary license terms, please see https://rhodecode.com/licenses/ -import os -import logging - -from paste.script.command import Command, BadCommand - - -class BasePasterCommand(Command): - """ - Abstract Base Class for paster commands. - - The celery commands are somewhat aggressive about loading - celery.conf, and since our module sets the `CELERY_LOADER` - environment variable to our loader, we have to bootstrap a bit and - make sure we've had a chance to load the pylons config off of the - command line, otherwise everything fails. - """ - min_args = 1 - min_args_error = "Please provide a paster config file as an argument." - takes_config_file = 1 - requires_config_file = True - - def notify_msg(self, msg, log=False): - """Make a notification to user, additionally if logger is passed - it logs this action using given logger - - :param msg: message that will be printed to user - :param log: logging instance, to use to additionally log this message - - """ - if log and isinstance(log, logging): - log(msg) - - def run(self, args): - """ - Overrides Command.run - - Checks for a config file argument and loads it. - """ - if len(args) < self.min_args: - raise BadCommand( - self.min_args_error % {'min_args': self.min_args, - 'actual_args': len(args)}) - - # Decrement because we're going to lob off the first argument. - # @@ This is hacky - self.min_args -= 1 - self.bootstrap_config(args[0]) - self.update_parser() - return super(BasePasterCommand, self).run(args[1:]) - - def update_parser(self): - """ - Abstract method. Allows for the class' parser to be updated - before the superclass' `run` method is called. Necessary to - allow options/arguments to be passed through to the underlying - celery command. - """ - raise NotImplementedError("Abstract Method.") - - def bootstrap_config(self, conf): - """ - Loads the pylons configuration. - """ - self.path_to_ini_file = os.path.realpath(conf) - - def _init_session(self): - """ - Inits SqlAlchemy Session - """ - logging.config.fileConfig(self.path_to_ini_file) - diff --git a/rhodecode/lib/paster_commands/deprecated/__init__.py b/rhodecode/lib/paster_commands/deprecated/__init__.py deleted file mode 100644 diff --git a/rhodecode/lib/paster_commands/deprecated/celeryd.py b/rhodecode/lib/paster_commands/deprecated/celeryd.py deleted file mode 100644 --- a/rhodecode/lib/paster_commands/deprecated/celeryd.py +++ /dev/null @@ -1,44 +0,0 @@ - - -# Copyright (C) 2013-2023 RhodeCode GmbH -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License, version 3 -# (only), as published by the Free Software Foundation. -# -# 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 Affero General Public License -# along with this program. If not, see . -# -# This program is dual-licensed. If you wish to learn more about the -# RhodeCode Enterprise Edition, including its added features, Support services, -# and proprietary license terms, please see https://rhodecode.com/licenses/ - - -from rhodecode.lib.paster_commands import BasePasterCommand - - -class Command(BasePasterCommand): - """ - Start the celery worker - - Starts the celery worker that uses a paste.deploy configuration - file. - """ - usage = 'CONFIG_FILE' - summary = __doc__.splitlines()[0] - description = "".join(__doc__.splitlines()[2:]) - - parser = BasePasterCommand.standard_parser(quiet=True) - - def update_parser(self): - pass - - def command(self): - cmd = 'celery worker --task-events --beat --app rhodecode.lib.celerylib.loader --loglevel DEBUG --ini=%s' % self.path_to_ini_file - raise Exception('This Command is deprecated please run: %s' % cmd) - diff --git a/rhodecode/lib/paster_commands/deprecated/setup_rhodecode.py b/rhodecode/lib/paster_commands/deprecated/setup_rhodecode.py deleted file mode 100644 --- a/rhodecode/lib/paster_commands/deprecated/setup_rhodecode.py +++ /dev/null @@ -1,42 +0,0 @@ - -# Copyright (C) 2010-2023 RhodeCode GmbH -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License, version 3 -# (only), as published by the Free Software Foundation. -# -# 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 Affero General Public License -# along with this program. If not, see . -# -# This program is dual-licensed. If you wish to learn more about the -# RhodeCode Enterprise Edition, including its added features, Support services, -# and proprietary license terms, please see https://rhodecode.com/licenses/ - - -from rhodecode.lib.paster_commands import BasePasterCommand - - -class Command(BasePasterCommand): - """ - Start the celery worker - - Starts the celery worker that uses a paste.deploy configuration - file. - """ - usage = 'CONFIG_FILE [celeryd options...]' - summary = __doc__.splitlines()[0] - description = "".join(__doc__.splitlines()[2:]) - - parser = BasePasterCommand.standard_parser(quiet=True) - - def update_parser(self): - pass - - def command(self): - cmd = 'rc-setup-app %s' % self.path_to_ini_file - raise Exception('This Command is deprecated please run: %s' % cmd) diff --git a/rhodecode/lib/paster_commands/ishell.py b/rhodecode/lib/paster_commands/ishell.py deleted file mode 100644 --- a/rhodecode/lib/paster_commands/ishell.py +++ /dev/null @@ -1,85 +0,0 @@ - - -# Copyright (C) 2013-2023 RhodeCode GmbH -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License, version 3 -# (only), as published by the Free Software Foundation. -# -# 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 Affero General Public License -# along with this program. If not, see . -# -# This program is dual-licensed. If you wish to learn more about the -# RhodeCode Enterprise Edition, including its added features, Support services, -# and proprietary license terms, please see https://rhodecode.com/licenses/ - -""" -interactive shell paster command for RhodeCode -""" - -import os -import sys -import logging - -from rhodecode.lib.paster_commands import BasePasterCommand - -# fix rhodecode import -from os.path import dirname as dn -rc_path = dn(dn(dn(os.path.realpath(__file__)))) -sys.path.append(rc_path) - -log = logging.getLogger(__name__) - -welcome_banner = """Welcome to RhodeCode iShell. -Type `exit` to exit the shell. -iShell is interactive shell to interact directly with the -internal RhodeCode APIs. You can rescue your lost password, -or reset some user/system settings. -""" - - -class Command(BasePasterCommand): - - max_args = 1 - min_args = 1 - - usage = "CONFIG_FILE" - group_name = "RhodeCode" - takes_config_file = -1 - parser = BasePasterCommand.standard_parser(verbose=True) - summary = "Interactive shell" - - def import_all_from_module(self, module_name): - import importlib - module = importlib.import_module(module_name) - globals().update({k: v for k, v in module.__dict__.items() if not k.startswith('_')}) - - def command(self): - # get SqlAlchemy session - self._init_session() - - # imports, used in ipython shell - import os - import sys - import time - import shutil - import datetime - self.import_all_from_module('rhodecode.model.db') - - try: - from IPython import embed - from traitlets.config import Config - cfg = Config() - cfg.InteractiveShellEmbed.confirm_exit = False - embed(config=cfg, banner1=welcome_banner) - except ImportError: - print('ipython installation required for ishell') - sys.exit(-1) - - def update_parser(self): - pass diff --git a/rhodecode/lib/paster_commands/upgrade_db.py b/rhodecode/lib/paster_commands/upgrade_db.py deleted file mode 100644 --- a/rhodecode/lib/paster_commands/upgrade_db.py +++ /dev/null @@ -1,63 +0,0 @@ - -# Copyright (C) 2010-2023 RhodeCode GmbH -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License, version 3 -# (only), as published by the Free Software Foundation. -# -# 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 Affero General Public License -# along with this program. If not, see . -# -# This program is dual-licensed. If you wish to learn more about the -# RhodeCode Enterprise Edition, including its added features, Support services, -# and proprietary license terms, please see https://rhodecode.com/licenses/ - -import logging - -from rhodecode.lib.paster_commands import BasePasterCommand, Command - -log = logging.getLogger(__name__) - - -class UpgradeDb(BasePasterCommand): - """ - Command used for paster to upgrade our database to newer version - """ - - max_args = 1 - min_args = 1 - - usage = "CONFIG_FILE" - summary = "Upgrades current db to newer version" - group_name = "RhodeCode" - - parser = Command.standard_parser(verbose=True) - - def command(self): - from rhodecode.lib.rc_commands import upgrade_db - upgrade_db.command( - self.path_to_ini_file, self.options.__dict__.get('force_ask'), None) - - def update_parser(self): - self.parser.add_option('--sql', - action='store_true', - dest='just_sql', - help="Prints upgrade sql for further investigation", - default=False) - - self.parser.add_option('--force-yes', - action='store_true', - dest='force_ask', - default=None, - help='Force yes to every question') - self.parser.add_option('--force-no', - action='store_false', - dest='force_ask', - default=None, - help='Force no to every question') - diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -176,18 +176,11 @@ setup( ('public/**', 'ignore', None), ] }, - paster_plugins=['PasteScript'], + entry_points={ 'paste.app_factory': [ 'main=rhodecode.config.middleware:make_pyramid_app', ], - 'paste.global_paster_command': [ - 'ishell=rhodecode.lib.paster_commands.ishell:Command', - 'upgrade-db=rhodecode.lib.paster_commands.upgrade_db:UpgradeDb', - - 'setup-rhodecode=rhodecode.lib.paster_commands.deprecated.setup_rhodecode:Command', - 'celeryd=rhodecode.lib.paster_commands.deprecated.celeryd:Command', - ], 'pyramid.pshell_runner': [ 'ipython = rhodecode.lib.pyramid_shell:ipython_shell_runner', ],