From: Sarah Hoffmann Date: Sun, 15 Sep 2024 09:58:55 +0000 (+0200) Subject: remove website setup X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/6bc044d9c7d0f849aeba4e5ffae0a3828d5fa010?hp=06683edaae8bfa517e488375d710ca6532336725 remove website setup The website directory was for PHP scripts only and is no longer needed. --- diff --git a/src/nominatim_db/clicmd/refresh.py b/src/nominatim_db/clicmd/refresh.py index adc7ee65..74141165 100644 --- a/src/nominatim_db/clicmd/refresh.py +++ b/src/nominatim_db/clicmd/refresh.py @@ -69,7 +69,8 @@ class UpdateRefresh: group.add_argument('--importance', action='store_true', help='Recompute place importances (expensive!)') group.add_argument('--website', action='store_true', - help='Refresh the directory that serves the scripts for the web API') + help='DEPRECATED. This function has no function anymore' + ' and will be removed in a future version.') group.add_argument('--data-object', action='append', type=_parse_osm_object, metavar='OBJECT', help='Mark the given OSM object as requiring an update' @@ -159,14 +160,8 @@ class UpdateRefresh: refresh.recompute_importance(conn) if args.website: - webdir = args.project_dir / 'website' - LOG.warning('Setting up website directory at %s', webdir) - # This is a little bit hacky: call the tokenizer setup, so that - # the tokenizer directory gets repopulated as well, in case it - # wasn't there yet. - self._get_tokenizer(args.config) - with connect(args.config.get_libpq_dsn()) as conn: - refresh.setup_website(webdir, args.config, conn) + LOG.error('WARNING: Website setup is no longer required. ' + 'This function will be removed in future version of Nominatim.') if args.data_object or args.data_area: with connect(args.config.get_libpq_dsn()) as conn: diff --git a/src/nominatim_db/clicmd/setup.py b/src/nominatim_db/clicmd/setup.py index 07a76f59..a7066ff2 100644 --- a/src/nominatim_db/clicmd/setup.py +++ b/src/nominatim_db/clicmd/setup.py @@ -88,7 +88,7 @@ class SetupAll: async def async_run(self, args: NominatimArgs) -> int: from ..data import country_info - from ..tools import database_import, refresh, postcodes, freeze + from ..tools import database_import, postcodes, freeze from ..indexer.indexer import Indexer num_threads = args.threads or psutil.cpu_count() or 1 @@ -141,11 +141,6 @@ class SetupAll: LOG.warning('Recompute word counts') tokenizer.update_statistics(args.config, threads=num_threads) - webdir = args.project_dir / 'website' - LOG.warning('Setup website at %s', webdir) - with connect(args.config.get_libpq_dsn()) as conn: - refresh.setup_website(webdir, args.config, conn) - self._finalize_database(args.config.get_libpq_dsn(), args.offline) return 0 diff --git a/src/nominatim_db/tools/refresh.py b/src/nominatim_db/tools/refresh.py index d48c4e45..557c43ae 100644 --- a/src/nominatim_db/tools/refresh.py +++ b/src/nominatim_db/tools/refresh.py @@ -11,17 +11,15 @@ from typing import MutableSequence, Tuple, Any, Type, Mapping, Sequence, List, c import csv import gzip import logging -from textwrap import dedent from pathlib import Path from psycopg import sql as pysql from ..config import Configuration from ..db.connection import Connection, connect, postgis_version_tuple,\ - drop_tables, table_exists + drop_tables from ..db.utils import execute_file from ..db.sql_preprocessor import SQLPreprocessor -from ..version import NOMINATIM_VERSION LOG = logging.getLogger() @@ -99,34 +97,6 @@ def create_functions(conn: Connection, config: Configuration, debug=enable_debug) - -WEBSITE_SCRIPTS = ( - 'deletable.php', - 'details.php', - 'lookup.php', - 'polygons.php', - 'reverse.php', - 'search.php', - 'status.php' -) - -# constants needed by PHP scripts: PHP name, config name, type -PHP_CONST_DEFS = ( - ('Database_DSN', 'DATABASE_DSN', str), - ('Default_Language', 'DEFAULT_LANGUAGE', str), - ('Log_DB', 'LOG_DB', bool), - ('Log_File', 'LOG_FILE', Path), - ('NoAccessControl', 'CORS_NOACCESSCONTROL', bool), - ('Places_Max_ID_count', 'LOOKUP_MAX_COUNT', int), - ('PolygonOutput_MaximumTypes', 'POLYGON_OUTPUT_MAX_TYPES', int), - ('Search_BatchMode', 'SEARCH_BATCH_MODE', bool), - ('Search_NameOnlySearchFrequencyThreshold', 'SEARCH_NAME_ONLY_THRESHOLD', str), - ('Use_US_Tiger_Data', 'USE_US_TIGER_DATA', bool), - ('MapIcon_URL', 'MAPICON_URL', str), - ('Search_WithinCountries', 'SEARCH_WITHIN_COUNTRIES', bool), -) - - def import_wikipedia_articles(dsn: str, data_path: Path, ignore_errors: bool = False) -> int: """ Replaces the wikipedia importance tables with new data. The import is run in a single transaction so that the new data @@ -272,46 +242,6 @@ def _quote_php_variable(var_type: Type[Any], config: Configuration, return f"'{quoted}'" -def setup_website(basedir: Path, config: Configuration, conn: Connection) -> None: - """ Create the website script stubs. - """ - if config.lib_dir.php is None: - LOG.info("Python frontend does not require website setup. Skipping.") - return - - if not basedir.exists(): - LOG.info('Creating website directory.') - basedir.mkdir() - - assert config.project_dir is not None - basedata = dedent(f"""\ - None: """ Mark the given OSM object for reindexing. When 'recursive' is set diff --git a/test/bdd/steps/nominatim_environment.py b/test/bdd/steps/nominatim_environment.py index c4b05588..dd6ecda6 100644 --- a/test/bdd/steps/nominatim_environment.py +++ b/test/bdd/steps/nominatim_environment.py @@ -110,15 +110,6 @@ class NominatimEnvironment: self.website_dir = tempfile.TemporaryDirectory() - try: - conn = self.connect_database(dbname) - except: - conn = False - refresh.setup_website(Path(self.website_dir.name) / 'website', - self.get_test_config(), conn) - if conn: - conn.close() - def get_test_config(self): cfg = Configuration(Path(self.website_dir.name), environ=self.test_env) diff --git a/test/python/cli/test_cmd_import.py b/test/python/cli/test_cmd_import.py index e47d713c..f833dde3 100644 --- a/test/python/cli/test_cmd_import.py +++ b/test/python/cli/test_cmd_import.py @@ -52,7 +52,6 @@ class TestCliImportWithDb: mock_func_factory(nominatim_db.tools.refresh, 'load_address_levels_from_config'), mock_func_factory(nominatim_db.tools.postcodes, 'update_postcodes'), async_mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_full'), - mock_func_factory(nominatim_db.tools.refresh, 'setup_website'), ] params = ['import', '--osm-file', __file__] @@ -81,7 +80,6 @@ class TestCliImportWithDb: mock_func_factory(nominatim_db.data.country_info, 'create_country_names'), mock_func_factory(nominatim_db.tools.postcodes, 'update_postcodes'), async_mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_full'), - mock_func_factory(nominatim_db.tools.refresh, 'setup_website'), mock_func_factory(nominatim_db.db.properties, 'set_property') ] @@ -98,7 +96,6 @@ class TestCliImportWithDb: async_mock_func_factory(nominatim_db.tools.database_import, 'create_search_indices'), mock_func_factory(nominatim_db.data.country_info, 'create_country_names'), async_mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_full'), - mock_func_factory(nominatim_db.tools.refresh, 'setup_website'), mock_func_factory(nominatim_db.db.properties, 'set_property') ] @@ -115,7 +112,6 @@ class TestCliImportWithDb: mocks = [ async_mock_func_factory(nominatim_db.tools.database_import, 'create_search_indices'), mock_func_factory(nominatim_db.data.country_info, 'create_country_names'), - mock_func_factory(nominatim_db.tools.refresh, 'setup_website'), mock_func_factory(nominatim_db.db.properties, 'set_property') ] diff --git a/test/python/cli/test_cmd_refresh.py b/test/python/cli/test_cmd_refresh.py index 9074b2cc..9f3d7bb2 100644 --- a/test/python/cli/test_cmd_refresh.py +++ b/test/python/cli/test_cmd_refresh.py @@ -25,7 +25,6 @@ class TestRefresh: ('address-levels', 'load_address_levels_from_config'), ('wiki-data', 'import_wikipedia_articles'), ('importance', 'recompute_importance'), - ('website', 'setup_website'), ]) def test_refresh_command(self, mock_func_factory, command, func): mock_func_factory(nominatim_db.tools.refresh, 'create_functions') diff --git a/test/python/tools/test_refresh_setup_website.py b/test/python/tools/test_refresh_setup_website.py deleted file mode 100644 index fe29dd52..00000000 --- a/test/python/tools/test_refresh_setup_website.py +++ /dev/null @@ -1,104 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -# This file is part of Nominatim. (https://nominatim.org) -# -# Copyright (C) 2024 by the Nominatim developer community. -# For a full list of authors see the git log. -""" -Tests for setting up the website scripts. -""" -import subprocess - -import pytest - -from nominatim_db.tools import refresh - -@pytest.fixture -def test_script(tmp_path): - (tmp_path / 'php').mkdir() - - website_dir = (tmp_path / 'php' / 'website') - website_dir.mkdir() - - def _create_file(code): - outfile = website_dir / 'reverse-only-search.php' - outfile.write_text('