]> git.openstreetmap.org Git - nominatim.git/commitdiff
made age a required argument for the -clean-deleted command
authorlujoh <lucyjohnson1995@gmail.com>
Fri, 20 Oct 2023 19:31:55 +0000 (15:31 -0400)
committerlujoh <lucyjohnson1995@gmail.com>
Fri, 20 Oct 2023 19:31:55 +0000 (15:31 -0400)
docs/admin/Maintenance.md
nominatim/clicmd/admin.py
nominatim/clicmd/args.py
test/python/cli/test_cmd_admin.py

index 758ede65d80306d1769a4d8d8f42d1a65f33c833..325e6f8f22410f3d1c96ccb8b5ea7d1cb26a1ca0 100644 (file)
@@ -60,14 +60,13 @@ to finish the recomputation.
 
 ## Removing large deleted objects
 
-Command: `nominatim admin --clean-deleted --age <PostgreSQL Time Interval>`
+Command: `nominatim admin --clean-deleted <PostgreSQL Time Interval>`
 
 Nominatim refuses to delete very large areas because often these deletions are
 accidental and are reverted within hours. Instead the deletions are logged in
 the `import_polygon_delete` table and left to the administrator to clean up.
 
-To run this command you will need to pass a PostgreSQL time interval to the age 
-parameter. For example to delete any objects that have been deleted more than a 
-month ago you would run:
-`nominatim admin --clean-deleted --age '1 month'`
+To run this command you will need to pass a PostgreSQL time interval. For example to 
+delete any objects that have been deleted more than a month ago you would run:
+`nominatim admin --clean-deleted '1 month'`
 
index 9a7b92e6c4216b1b38716373bccb9f8c62e44bed..d1ce5ccc0dbf2d080130f9d6c06a5bd23ebd457d 100644 (file)
@@ -42,7 +42,7 @@ class AdminFuncs:
                           help='Print performance analysis of the indexing process')
         objs.add_argument('--collect-os-info', action="store_true",
                           help="Generate a report about the host system information")
-        objs.add_argument('--clean-deleted', action='store_true',
+        objs.add_argument('--clean-deleted', action='store', metavar='AGE',
                           help='Clean up deleted relations')
         group = parser.add_argument_group('Arguments for cache warming')
         group.add_argument('--search-only', action='store_const', dest='target',
@@ -58,8 +58,6 @@ class AdminFuncs:
         mgroup.add_argument('--place-id', type=int,
                             help='Analyse indexing of the given Nominatim object')
         group = parser.add_argument_group('Arguments for cleaning deleted')
-        group.add_argument('--age', type=str,
-                           help='Delete relations older than the given PostgreSQL time interval')
 
 
     def run(self, args: NominatimArgs) -> int:
@@ -90,11 +88,9 @@ class AdminFuncs:
             return 0
 
         if args.clean_deleted:
-            if not args.age:
-                self.parser.error('Age is required for --clean-deleted command')
             LOG.warning('Cleaning up deleted relations')
             from ..tools import admin
-            admin.clean_deleted_relations(args.config, age=args.age)
+            admin.clean_deleted_relations(args.config, age=args.clean_deleted)
             return 0
 
         return 1
index 5b4beb40ec290e202bda760798072cad07cb7211..e632e4c709c0b3c14535d285189584b89a2315b3 100644 (file)
@@ -72,12 +72,11 @@ class NominatimArgs:
     check_database: bool
     migrate: bool
     collect_os_info: bool
-    clean_deleted: bool
+    clean_deleted: str
     analyse_indexing: bool
     target: Optional[str]
     osm_id: Optional[str]
     place_id: Optional[int]
-    age: str
 
     # Arguments to 'import'
     osm_file: List[str]
index 0fe6e3270fa328acba9420e2bed3f386d2d7d3fb..45104ea6850fd75ea596bc7818774a715a17063f 100644 (file)
@@ -36,14 +36,13 @@ def test_admin_migrate(cli_call, mock_func_factory):
 def test_admin_clean_deleted_relations(cli_call, mock_func_factory):
     mock = mock_func_factory(nominatim.tools.admin, 'clean_deleted_relations')
 
-    assert cli_call('admin', '--clean-deleted', '--age', '1 month') == 0
+    assert cli_call('admin', '--clean-deleted', '1 month') == 0
     assert mock.called == 1
 
 def test_admin_clean_deleted_relations_no_age(cli_call, mock_func_factory):
     mock = mock_func_factory(nominatim.tools.admin, 'clean_deleted_relations')
 
-    with pytest.raises(SystemExit):
-        cli_call('admin', '--clean-deleted')
+    assert cli_call('admin', '--clean-deleted') == 1
 
 class TestCliAdminWithDb: