Browse Source

Add MariaDB dumps metadata.

Dan Helfman 16 hours ago
parent
commit
049132377c
1 changed files with 25 additions and 4 deletions
  1. 25 4
      borgmatic/hooks/data_source/mariadb.py

+ 25 - 4
borgmatic/hooks/data_source/mariadb.py

@@ -257,11 +257,12 @@ def dump_data_sources(
     '''
     '''
     dry_run_label = ' (dry run; not actually dumping anything)' if dry_run else ''
     dry_run_label = ' (dry run; not actually dumping anything)' if dry_run else ''
     processes = []
     processes = []
+    dumps_metadata = []
 
 
     logger.info(f'Dumping MariaDB databases{dry_run_label}')
     logger.info(f'Dumping MariaDB databases{dry_run_label}')
+    dump_path = make_dump_path(borgmatic_runtime_directory)
 
 
     for database in databases:
     for database in databases:
-        dump_path = make_dump_path(borgmatic_runtime_directory)
         username = borgmatic.hooks.credential.parse.resolve_credential(
         username = borgmatic.hooks.credential.parse.resolve_credential(
             database.get('username'),
             database.get('username'),
             config,
             config,
@@ -293,10 +294,19 @@ def dump_data_sources(
 
 
             raise ValueError('Cannot find any MariaDB databases to dump.')
             raise ValueError('Cannot find any MariaDB databases to dump.')
 
 
+
         if database['name'] == 'all' and database.get('format'):
         if database['name'] == 'all' and database.get('format'):
-            for dump_name in dump_database_names:
+            for database_name in dump_database_names:
+                dumps_metadata.append(
+                    borgmatic.actions.restore.Dump(
+                        'mariadb_databases',
+                        database_name,
+                        database.get('hostname'),
+                        database.get('port'),
+                    )
+                )
                 renamed_database = copy.copy(database)
                 renamed_database = copy.copy(database)
-                renamed_database['name'] = dump_name
+                renamed_database['name'] = database_name
                 processes.append(
                 processes.append(
                     execute_dump_command(
                     execute_dump_command(
                         renamed_database,
                         renamed_database,
@@ -304,13 +314,21 @@ def dump_data_sources(
                         username,
                         username,
                         password,
                         password,
                         dump_path,
                         dump_path,
-                        (dump_name,),
+                        (database_name,),
                         environment,
                         environment,
                         dry_run,
                         dry_run,
                         dry_run_label,
                         dry_run_label,
                     ),
                     ),
                 )
                 )
         else:
         else:
+            dumps_metadata.append(
+                borgmatic.actions.restore.Dump(
+                    'mariadb_databases',
+                    database['name'],
+                    database.get('hostname'),
+                    database.get('port'),
+                )
+            )
             processes.append(
             processes.append(
                 execute_dump_command(
                 execute_dump_command(
                     database,
                     database,
@@ -326,6 +344,9 @@ def dump_data_sources(
             )
             )
 
 
     if not dry_run:
     if not dry_run:
+        dump.write_data_source_dumps_metadata(
+            borgmatic_runtime_directory, 'mariadb_databases', dumps_metadata
+        )
         patterns.append(
         patterns.append(
             borgmatic.borg.pattern.Pattern(
             borgmatic.borg.pattern.Pattern(
                 os.path.join(borgmatic_runtime_directory, 'mariadb_databases'),
                 os.path.join(borgmatic_runtime_directory, 'mariadb_databases'),