]> 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
 
 
 ## 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.
 
 
 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")
                           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',
                           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')
         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:
 
 
     def run(self, args: NominatimArgs) -> int:
@@ -90,11 +88,9 @@ class AdminFuncs:
             return 0
 
         if args.clean_deleted:
             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
             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
             return 0
 
         return 1
index 5b4beb40ec290e202bda760798072cad07cb7211..e632e4c709c0b3c14535d285189584b89a2315b3 100644 (file)
@@ -72,12 +72,11 @@ class NominatimArgs:
     check_database: bool
     migrate: bool
     collect_os_info: bool
     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]
     analyse_indexing: bool
     target: Optional[str]
     osm_id: Optional[str]
     place_id: Optional[int]
-    age: str
 
     # Arguments to 'import'
     osm_file: List[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')
 
 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')
 
     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:
 
 
 class TestCliAdminWithDb: