]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
BEE Backport bacula/src/cats/protos.h
authorEric Bollengier <eric@baculasystems.com>
Mon, 11 May 2020 15:12:48 +0000 (17:12 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 29 Apr 2021 08:44:17 +0000 (10:44 +0200)
This commit is the result of the squash of the following main commits:

Author: Eric Bollengier <eric@baculasystems.com>
Date:   Fri Apr 24 20:16:22 2020 +0200

    Reliably log user activity in a way that satisfies auditors

    Messages {
      name = Standard
      append = /tmp/bacula.log = all

      # To send the events into a log and in the catalog
      append = /tmp/audit.log = events, !events.bweb
      catalog = all, events
    }

    Users can create custom events with a console command:

    .events

    They can list events in the catalog with

    * list events
    +---------------------+------------+-----------+--------------------------------+
    | time                | type       | source    | events                         |
    +---------------------+------------+-----------+--------------------------------+
    | 2020-04-24 17:04:07 | daemon     | *Daemon*  | Director startup               |
    | 2020-04-24 17:04:12 | connection | *Console* | Connection from 127.0.0.1:8101 |
    | 2020-04-24 17:04:20 | command    | *Console* | purge jobid=1                  |
    +---------------------+------------+-----------+--------------------------------+

    The event format in the log is:

    24-Apr 17:04 Events: code=DC0001 from=zog8-dir ref=0x1fa5 type=daemon source=*Daemon* text=Director startup

    24-Apr 17:04 Events: code=DC0002 from=zog8-dir ref=0x7fb58000c4b8 type=connection source=*Console* text=Connection from 127.0.0.1:8101

    The reference (ref) is used to identify a console session, all activity
    from the same console will have the same reference.

    The source is the name of the restricted console, or *Console* if this
    is the default console.

    We have the following events:
     - cancel a job
     - delete volume
     - delete job
     - purge job
     - delete pool
     - delete client
     - daemon startup
     - daemon shutdown
     - console connection
     - console disconnection

    To add a new events:
    ua->send_events(type, format, arguments);

Author: Ana Emilia Machado de Arruda <emiliaarruda@gmail.com>
Date:   Mon Feb 24 16:47:40 2020 +0100

    Add SSL connections to database open code

Author: Eric Bollengier <eric@baculasystems.com>
Date:   Fri Oct 6 15:18:55 2017 +0200

    cats: Modify db_list_files() to accept a callback

Author: Eric Bollengier <eric@baculasystems.com>
Date:   Mon Aug 28 16:46:19 2017 +0200

    Add SQL functions to list RestoreObjects and files

Author: Eric Bollengier <eric@baculasystems.com>
Date:   Tue Apr 5 18:55:10 2016 +0200

    Implement FileMedia feature and FO_OFFSETS for plugin

     - Allow plugins to use the FO_OFFSETS option
     - Add SQL support in cats
     - Add bvfs commands
     - Add FileMedia handling in the Storage Daemon
     - Add use FO_OFFSETS option in test plugin
     - Add new sql scripts to configure.in
     - Update catalog version to 1018

Author: Eric Bollengier <eric@baculasystems.com>
Date:   Wed Mar 9 16:53:34 2016 +0100

    Add .info bconsole command to estimate job files/bytes

bacula/src/cats/protos.h

index c8634204c65da1890b3c1e68025b29aaedf78ab7..fb6a40582fcfa8cc2fdc1d86cc08965191bf0072 100644 (file)
@@ -76,11 +76,11 @@ BDB *db_init_database(JCR *jcr, const char *db_driver, const char *db_name,
 #define db_start_transaction(jcr, mdb) \
            mdb->bdb_start_transaction(jcr)
 #define db_end_transaction(jcr, mdb) \
-           if (mdb) mdb->bdb_end_transaction(jcr)
+        if (mdb) mdb->bdb_end_transaction(jcr)
 #define db_sql_query(mdb, query, result_handler, ctx) \
            mdb->bdb_sql_query(query, result_handler, ctx)
 #define db_thread_cleanup(mdb) \
-           if (mdb) mdb->bdb_thread_cleanup()
+        if (mdb)  mdb->bdb_thread_cleanup()
 
 /* sql.c */
 int db_int64_handler(void *ctx, int num_fields, char **row);
@@ -110,6 +110,10 @@ void bdb_free_restoreobject_record(JCR *jcr, ROBJECT_DBR *rr);
    mdb->bdb_get_client_pool(jcr, results)
 
 /* sql_create.c */
+#define db_create_log_record(jcr, mdb, jobid, mtime, msg)        \
+           mdb->bdb_create_log_record(jcr, jobid, mtime, msg)
+#define db_create_events_record(jcr, mdb, rec) \
+           mdb->bdb_create_events_record(jcr, rec)
 #define db_create_path_record(jcr, mdb, ar) \
            mdb->bdb_create_path_record(jcr, ar)
 #define db_create_file_attributes_record(jcr, mdb, ar) \
@@ -126,6 +130,8 @@ void bdb_free_restoreobject_record(JCR *jcr, ROBJECT_DBR *rr);
            mdb->bdb_create_pool_record(jcr, pool_dbr)
 #define db_create_jobmedia_record(jcr, mdb, jr) \
            mdb->bdb_create_jobmedia_record(jcr, jr)
+#define db_create_filemedia_record(jcr, mdb, fr) \
+           mdb->bdb_create_filemedia_record(jcr, fr)
 #define db_create_counter_record(jcr, mdb, cr) \
            mdb->bdb_create_counter_record(jcr, cr)
 #define db_create_device_record(jcr, mdb, dr) \
@@ -150,8 +156,7 @@ void bdb_free_restoreobject_record(JCR *jcr, ROBJECT_DBR *rr);
            bdb_disable_batch_insert(disable)
 #define db_create_snapshot_record(jcr, mdb, sr) \
            mdb->bdb_create_snapshot_record(jcr, sr)
-#define db_get_job_statistics(jcr, mdb, jr)      \
-           mdb->bdb_get_job_statistics(jcr, jr)
+
 
 /* sql_delete.c */
 #define db_delete_pool_record(jcr, mdb, pool_dbr) \
@@ -181,11 +186,13 @@ void bdb_free_restoreobject_record(JCR *jcr, ROBJECT_DBR *rr);
            mdb->bdb_find_failed_job_since(jcr, jr, stime, JobLevel)
 
 /* sql_get.c */
+#define db_get_file_record(jcr, mdb, jr, fr) \
+           mdb->bdb_get_file_record(jcr, jr, fr)
 #define db_get_volume_jobids(jcr, mdb, mr, lst) \
            mdb->bdb_get_volume_jobids(jcr, mr, lst)
 #define db_get_client_jobids(jcr, mdb, cr, lst) \
            mdb->bdb_get_client_jobids(jcr, cr, lst)
-#define db_get_base_file_list(jcr, mdb, use_md5, result_handler, ctx) \
+#define db_get_base_file_list(jcr, mdb, use_md5, result_handler, ctx)   \
            mdb->bdb_get_base_file_list(jcr, use_md5, result_handler, ctx)
 #define db_get_path_record(jcr, mdb) \
            mdb->bdb_get_path_record(jcr)
@@ -233,13 +240,16 @@ void bdb_free_restoreobject_record(JCR *jcr, ROBJECT_DBR *rr);
            mdb->bdb_get_used_base_jobids(jcr, jobids, result)
 #define db_get_restoreobject_record(jcr, mdb, rr) \
            mdb->bdb_get_restoreobject_record(jcr, rr)
+#define db_get_num_restoreobject_records(jcr, mdb, rr) \
+           mdb->bdb_get_num_restoreobject_records(jcr, rr)
 #define db_get_type_index(mdb) \
            mdb->bdb_get_type_index()
 #define db_get_engine_name(mdb) \
            mdb->bdb_get_engine_name()
 #define db_get_snapshot_record(jcr, mdb, sr) \
            mdb->bdb_get_snapshot_record(jcr, sr)
-
+#define db_get_job_statistics(jcr, mdb, jr)      \
+           mdb->bdb_get_job_statistics(jcr, jr)
 /* sql_list.c */
 #define db_list_pool_records(jcr, mdb, pr, sendit, ctx, type) \
            mdb->bdb_list_pool_records(jcr, pr, sendit, ctx, type)
@@ -253,7 +263,9 @@ void bdb_free_restoreobject_record(JCR *jcr, ROBJECT_DBR *rr);
            mdb->bdb_list_media_records(jcr, mdbr, sendit, ctx, type)
 #define db_list_jobmedia_records(jcr, mdb, JobId, sendit, ctx, type) \
            mdb->bdb_list_jobmedia_records(jcr, JobId, sendit, ctx, type)
-#define db_list_joblog_records(jcr, mdb, JobId, sendit, ctx, type) \
+#define db_list_filemedia_records(jcr, mdb, JobId, FI, sendit, ctx, type) \
+           mdb->bdb_list_filemedia_records(jcr, JobId, FI, sendit, ctx, type)
+#define db_list_joblog_records(jcr, mdb, JobId, sendit, ctx, type)      \
            mdb->bdb_list_joblog_records(jcr, JobId, sendit, ctx, type)
 #define db_list_sql_query(jcr, mdb, query, sendit, ctx, verbose, type) \
            mdb->bdb_list_sql_query(jcr, query, sendit, ctx, verbose, type)
@@ -261,14 +273,16 @@ void bdb_free_restoreobject_record(JCR *jcr, ROBJECT_DBR *rr);
            mdb->bdb_list_client_records(jcr, sendit, ctx, type)
 #define db_list_copies_records(jcr, mdb, limit, jobids, sendit, ctx, type) \
            mdb->bdb_list_copies_records(jcr, limit, jobids, sendit, ctx, type)
+#define db_list_events_records(jcr, mdb, rec, sendit, ctx, type) \
+           mdb->bdb_list_events_records(jcr, rec, sendit, ctx, type)
 #define db_list_base_files_for_job(jcr, mdb, jobid, sendit, ctx) \
            mdb->bdb_list_base_files_for_job(jcr, jobid, sendit, ctx)
 #define db_list_restore_objects(jcr, mdb, rr, sendit, ctx, type) \
            mdb->bdb_list_restore_objects(jcr, rr, sendit, ctx, type)
 #define db_list_snapshot_records(jcr, mdb, snapdbr, sendit, ua, llist) \
            mdb->bdb_list_snapshot_records(jcr, snapdbr, sendit, ua, llist)
-
-
+#define db_list_files(jcr, mdb, filedbr, sendit, ua) \
+           mdb->bdb_list_files(jcr, filedbr, sendit, ua);
 
 /* sql_update.c */
 #define db_update_job_start_record(jcr, mdb, jr) \