This is an automated email from the ASF dual-hosted git repository. brondsem pushed a commit to branch db/8500 in repository https://gitbox.apache.org/repos/asf/allura.git
commit 12ec02933d404f15305003573c422b697f316e12 Author: Dave Brondsema <[email protected]> AuthorDate: Fri Feb 17 17:56:24 2023 -0500 [#8500] turbogears upgrade adjustment & warnings; only ForgeBlog's test_related_artifacts surfaced this issue :( --- Allura/allura/config/app_cfg.py | 29 +++++++++++++++++++++++++---- Allura/allura/model/index.py | 15 ++++++++++++++- Allura/allura/model/session.py | 2 +- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/Allura/allura/config/app_cfg.py b/Allura/allura/config/app_cfg.py index c00f5ab81..89d3c1a88 100644 --- a/Allura/allura/config/app_cfg.py +++ b/Allura/allura/config/app_cfg.py @@ -32,12 +32,17 @@ import logging import sys import tg +from tg.configuration import config +from tg.configurator.application import ApplicationConfigurator +from tg.configurator.components.mimetypes import MimeTypesConfigurationComponent +from tg.configurator.components.paths import PathsConfigurationComponent +from tg.configurator.components.app_globals import AppGlobalsConfigurationComponent +from tg.configurator.components.helpers import HelpersConfigurationComponent +from tg.configurator.components.dispatch import DispatchConfigurationComponent +from tg.configurator.components.rendering import TemplateRenderingConfigurationComponent from tg.renderers.jinja import JinjaRenderer from tg.renderers.mako import MakoRenderer from tg.renderers.json import JSONRenderer -from tg import MinimalApplicationConfigurator -from tg.configurator.components.rendering import TemplateRenderingConfigurationComponent -from tg.configuration import config import jinja2 from markupsafe import Markup @@ -52,7 +57,23 @@ from allura.lib.package_path_loader import PackagePathLoader log = logging.getLogger(__name__) -class ForgeConfig(MinimalApplicationConfigurator): +class MinimalApplicationConfiguratorNoRegistry(ApplicationConfigurator): + """ + Copied from tg.MinimalApplicationConfigurator but without the registry + since we use RegistryManager in a specific part of our middleware already + """ + def __init__(self): + super().__init__() + self.register(MimeTypesConfigurationComponent, after=False) + self.register(PathsConfigurationComponent, after=False) + self.register(DispatchConfigurationComponent, after=False) + self.register(AppGlobalsConfigurationComponent) + self.register(HelpersConfigurationComponent) + self.register(TemplateRenderingConfigurationComponent) + # self.register(RegistryConfigurationComponent, after=True) + + +class ForgeConfig(MinimalApplicationConfiguratorNoRegistry): def __init__(self, root_controller=None): super().__init__() diff --git a/Allura/allura/model/index.py b/Allura/allura/model/index.py index f3b1852e5..028e00c0c 100644 --- a/Allura/allura/model/index.py +++ b/Allura/allura/model/index.py @@ -27,7 +27,8 @@ from six.moves.urllib.parse import unquote import bson import pymongo -from tg import tmpl_context as c +from tg import tmpl_context as c, config +from tg.support.converters import asbool from ming import schema as S from ming.utils import LazyProperty @@ -179,6 +180,12 @@ class Shortlink(MappedClass): links_by_artifact[unquote(d['artifact'])].append(d) else: result[link] = parsed_links.pop(link) + if not project_ids: + msg = f"No project_id found in parsed_links, maybe c.project etc aren't set? {links}" + if asbool(config['debug']): + raise ValueError(msg) + else: + log.warning(msg) q = cls.query.find( dict( link={'$in': list(links_by_artifact.keys())}, @@ -248,6 +255,12 @@ class Shortlink(MappedClass): p_shortname = getattr(c.project, 'shortname', None) p_id = getattr(c.project, '_id', None) p_nbhd = c.project.neighborhood_id + if p_id is None: + msg = "c.project is not set" + if asbool(config['debug']): + raise ValueError(msg) + else: + log.warning(msg) if len(parts) == 3: p = Project.query.get(shortname=parts[0], neighborhood_id=p_nbhd) if p: diff --git a/Allura/allura/model/session.py b/Allura/allura/model/session.py index 738f4c805..15558dabe 100644 --- a/Allura/allura/model/session.py +++ b/Allura/allura/model/session.py @@ -24,10 +24,10 @@ from ming.odm.base import ObjectState from ming.odm.base import state from ming.odm.odmsession import ThreadLocalODMSession, SessionExtension from contextlib import contextmanager +from tg import tmpl_context as c from allura.lib.utils import chunked_list from allura.tasks import index_tasks -import six log = logging.getLogger(__name__)
