]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Update docker plugin
authorRadosław Korzeniewski <radoslaw@korzeniewski.net>
Mon, 28 Feb 2022 17:47:21 +0000 (18:47 +0100)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:24 +0000 (09:03 +0100)
bacula/src/plugins/fd/docker/dkid.c
bacula/src/plugins/fd/docker/dkid.h
bacula/src/plugins/fd/docker/dkid_test.c
bacula/src/plugins/fd/docker/dkinfo.c
bacula/src/plugins/fd/docker/dkinfo.h
bacula/src/plugins/fd/docker/docker-fd.c
bacula/src/plugins/fd/docker/docker-fd.h

index 339003a0210dd6981e7aa688f14600f71d2575aa..a56b93aa73c3abeccb2de79ae21b31f9cd900769 100644 (file)
@@ -18,7 +18,7 @@
  */
 /**
  * @file dkid.c
- * @author Radosław Korzeniewski (radoslaw@korzeniewski.net)
+ * @author Radoslaw Korzeniewski (radoslaw@korzeniewski.net)
  * @brief This is a Bacula plugin for backup/restore Docker using native tools.
  * @version 1.2.1
  * @date 2020-01-05
@@ -27,6 +27,8 @@
  */
 
 #include "dkid.h"
+#include <string.h>
+#include <stdlib.h>
 
 /*
  * DKID class constructor, does default initialization.
@@ -34,8 +36,8 @@
 DKID::DKID() :
    ShortD(DKIDInvalid),
 #if __cplusplus > 201103L
-   Digest{0},
-   DigestShort{0},
+   Digest {0},
+   DigestShort {0},
 #endif
    shortonly(false)
 {
@@ -181,13 +183,3 @@ bool DKID::operator !=(DKID &other)
    }
    return false;
 }
-
-#ifdef DEBUG
-void DKID::dump()
-{
-   printf ("%p::ShortD: %ld\n", this, ShortD);
-   printf ("%p::Digest: %s\n", this, Digest);
-   printf ("%p::shortonly: %s\n", this, shortonly?"true":"false");
-   printf ("%p::DigestShort: %s\n", this, DigestShort);
-};
-#endif
index 61680fdf2030da6542c1eb9fd56867600db49b71..9512337d95b9659b4849b10e39b20e5775849643 100644 (file)
@@ -18,7 +18,7 @@
  */
 /**
  * @file dkid.h
- * @author Radosław Korzeniewski (radoslaw@korzeniewski.net)
+ * @author Radoslaw Korzeniewski (radoslaw@korzeniewski.net)
  * @brief This is a Bacula plugin for backup/restore Docker using native tools.
  * @version 1.2.1
  * @date 2020-01-05
@@ -52,19 +52,16 @@ public:
    ~DKID() {};
 #endif
 
-   inline int64_t id() { return ShortD; };
-   inline char *digest() { return Digest; };
-   inline char *digest_short() { return DigestShort; };
-   inline operator int64_t () { return ShortD; };
-   inline operator char* () { return Digest; };
+   inline int64_t id() { return ShortD; }
+   inline char *digest() { return Digest; }
+   inline char *digest_short() { return DigestShort; }
+   inline operator int64_t () { return ShortD; }
+   inline operator char* () { return Digest; }
    DKID& operator= (char *data);
    DKID& operator= (DKID &other);
    DKID& operator= (POOL_MEM &data);
    bool operator== (DKID &other);
    bool operator!= (DKID &other);
-#ifdef DEBUG
-   void dump();
-#endif
 
 private:
    int64_t ShortD; // default short digest on Docker is 48bits/6bytes/12hex chars
index 4a862109b88f7ef55311185c1bfda3869bee6cf4..b7cd51a8c224a1211f3cf042b24c37797c0c74c2 100644 (file)
  */
 /**
  * @file dkid_test.c
- * @author Radosław Korzeniewski (radoslaw@korzeniewski.net)
+ * @author Radoslaw Korzeniewski (radoslaw@korzeniewski.net)
  * @brief This is a Bacula plugin for backup/restore Docker using native tools - unittest.
  * @version 1.2.1
  * @date 2020-01-05
+ * This is a Bacula plugin for backup/restore Docker using native tools.
  *
  * @copyright Copyright (c) 2021 All rights reserved. IP transferred to Bacula Systems according to agreement.
  */
index 24a81bba23a5de14bdb065b7e51869a3bff26aab..1a70910037cae74cea8b659b68f0d5b477fa79cd 100644 (file)
 
    Bacula(R) is a registered trademark of Kern Sibbald.
  */
+
 /**
  * @file dkinfo.c
- * @author Radosław Korzeniewski (radoslaw@korzeniewski.net)
+ * @author Radoslaw Korzeniewski (radoslaw@korzeniewski.net)
  * @brief This is a Bacula plugin for backup/restore Docker using native tools.
  * @version 1.2.1
  * @date 2020-01-05
- *
  * @copyright Copyright (c) 2021 All rights reserved. IP transferred to Bacula Systems according to agreement.
- * TODO: add unittests
  */
 
 #include "dkinfo.h"
index faf1a9edfd7fb7355294fe42076a33b86c316cb0..ff6568dabcb5ced1db92486f76dc90f1e4a5dd77 100644 (file)
  */
 /**
  * @file dkinfo.h
- * @author Radosław Korzeniewski (radoslaw@korzeniewski.net)
+ * @author Radoslaw Korzeniewski (radoslaw@korzeniewski.net)
  * @brief This is a Bacula plugin for backup/restore Docker using native tools.
  * @version 1.2.1
  * @date 2020-01-05
  *
  * @copyright Copyright (c) 2021 All rights reserved. IP transferred to Bacula Systems according to agreement.
  */
-
 #ifndef _DKINFO_H_
 #define _DKINFO_H_
 
@@ -95,101 +94,107 @@ public:
 /*
  * The class which handles DKINFO operations
  */
-class DKINFO : public SMARTALLOC {
+class DKINFO : public SMARTALLOC
+{
  public:
-    DKINFO(DKINFO_OBJ_t t);
-    DKINFO(const DKINFO &dkinfo);
-    ~DKINFO();
-
-    /* set methods dedicated to container */
-    inline void set_container_id(DKID &id) { if (Type == DOCKER_CONTAINER){ *data.container.containerid = id; }};
-    inline void set_container_id(POOL_MEM &id) { if (Type == DOCKER_CONTAINER){ *data.container.containerid = id; }};
-    inline void set_container_id(POOLMEM *id) { if (Type == DOCKER_CONTAINER){ *data.container.containerid = (char*)id; }};
-    inline void set_container_names(POOLMEM *n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.names, n); }};
-    inline void set_container_names(POOL_MEM &n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.names, n); }};
-    inline void set_container_size(uint64_t s) { if (Type == DOCKER_CONTAINER){ data.container.size = s; }};
-    inline void set_container_imagesave(DKID &id) { if (Type == DOCKER_CONTAINER){ *data.container.imagesave = id; }};
-    inline void set_container_imagesave(POOL_MEM &id) { if (Type == DOCKER_CONTAINER){ *data.container.imagesave = id; }};
-    inline void set_container_imagesave(POOLMEM *id) { if (Type == DOCKER_CONTAINER){ *data.container.imagesave = (char*)id; }};
-    inline void set_container_imagesave_tag(POOL_MEM &n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.imagesave_tag, n); }};
-    inline void set_container_imagesave_tag(POOLMEM *n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.imagesave_tag, n); }};
-    inline void set_container_status(DOCKER_POWER_T s) { if (Type == DOCKER_CONTAINER){ data.container.status = s; }};
-    void set_container_status(POOL_MEM &s);
-    inline void set_container_mounts(POOLMEM *n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.mounts, n); }};
-    inline void set_container_mounts(POOL_MEM &n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.mounts, n); }};
-
-    /* special vols handling */
-    inline void container_append_vols(DKVOLS *dk) { if (Type == DOCKER_CONTAINER){ data.container.vols->append(dk); }};
-    inline bool container_has_vols() { return Type == DOCKER_CONTAINER ? !data.container.vols->empty() : false; };
-    inline DKVOLS *container_first_vols() { return Type == DOCKER_CONTAINER ? (DKVOLS*)data.container.vols->first() : NULL; };
-    inline DKVOLS *container_next_vols() { return Type == DOCKER_CONTAINER ? (DKVOLS*)data.container.vols->next() : NULL; };
-
-    /* set methods dedicated to image */
-    inline void set_image_id(DKID &id) { if (Type == DOCKER_IMAGE){ *data.image.imageid = id; }};
-    inline void set_image_id(POOLMEM *id) { if (Type == DOCKER_IMAGE){ *data.image.imageid = (char*)id; }};
-    inline void set_image_id(POOL_MEM &id) { if (Type == DOCKER_IMAGE){ *data.image.imageid = id; }};
-    inline void set_image_repository(POOLMEM *n) { if (Type == DOCKER_IMAGE){ pm_strcpy(data.image.repository, n); render_image_repository_tag(); }};
-    inline void set_image_repository(POOL_MEM &n) { if (Type == DOCKER_IMAGE){ pm_strcpy(data.image.repository, n); render_image_repository_tag(); }};
-    inline void set_image_tag(POOLMEM *n) { if (Type == DOCKER_IMAGE){ pm_strcpy(data.image.tag, n); render_image_repository_tag(); }};
-    inline void set_image_tag(POOL_MEM &n) { if (Type == DOCKER_IMAGE){ pm_strcpy(data.image.tag, n); render_image_repository_tag(); }};
-    inline void set_image_size(uint64_t s) { if (Type == DOCKER_IMAGE){ data.image.size = s; }};
-    inline void set_image_created(utime_t t) { if (Type == DOCKER_IMAGE){ data.image.created = t; }};
-
-    /* set methods dedicated to volume */
-    inline void set_volume_name(POOLMEM *n) { if (Type == DOCKER_VOLUME){ pm_strcpy(data.volume.name, n); }};
-    inline void set_volume_name(POOL_MEM &n) { if (Type == DOCKER_VOLUME){ pm_strcpy(data.volume.name, n); }};
-    inline void set_volume_created(utime_t t) { if (Type == DOCKER_VOLUME){ data.volume.created = t; }};
-    inline void set_volume_size(uint64_t s) { if (Type == DOCKER_VOLUME){ data.volume.size = s; }};
-    inline void set_volume_linknr(int l) { if (Type == DOCKER_VOLUME){ data.volume.linknr = l; }};
-    inline int inc_volume_linknr() { return Type == DOCKER_VOLUME ? ++data.volume.linknr : 0; };
-
-    /* scanning methods */
-    void scan_container_size(POOLMEM *str);
-    void scan_image_size(POOLMEM *str);
-    void scan_image_repository_tag(POOL_MEM &rt);
-    void scan_volume_size(POOLMEM *str);
-
-    /* get methods dedicated to container */
-    inline DKID *get_container_id() { return Type == DOCKER_CONTAINER ? data.container.containerid : NULL; };
-    inline DKID *get_container_imagesave() { return Type == DOCKER_CONTAINER ? data.container.imagesave : NULL; };
-    inline POOLMEM *get_container_names() { return Type == DOCKER_CONTAINER ? data.container.names : NULL; };
-    inline DOCKER_POWER_T get_container_status() { return Type == DOCKER_CONTAINER ? data.container.status : DKUNKNOWN; };
-    inline uint64_t get_container_size() { return Type == DOCKER_CONTAINER ? data.container.size : 0; };
-    inline POOLMEM *get_container_imagesave_tag() { return Type == DOCKER_CONTAINER ? data.container.imagesave_tag : NULL; };
-    inline POOLMEM *get_container_mounts() { return Type == DOCKER_CONTAINER ? data.container.mounts : NULL; };
-
-    /* get methods dedicated to image */
-    inline DKID *get_image_id() { return Type == DOCKER_IMAGE ? data.image.imageid : NULL; };
-    inline POOLMEM *get_image_repository() { return Type == DOCKER_IMAGE ? data.image.repository : NULL; };
-    inline POOLMEM *get_image_tag() { return Type == DOCKER_IMAGE ? data.image.tag : NULL; };
-    inline POOLMEM *get_image_repository_tag() { return Type == DOCKER_IMAGE ? data.image.repository_tag : NULL; };
-    inline uint64_t get_image_size() { return Type == DOCKER_IMAGE ? data.image.size : 0; };
-    inline utime_t get_image_created() { return Type == DOCKER_IMAGE ? data.image.created : 0; };
-
-    /* get methods dedicated to volume */
-    inline POOLMEM *get_volume_name() { return Type == DOCKER_VOLUME ? data.volume.name : NULL; };
-    inline utime_t get_volume_created() { return Type == DOCKER_VOLUME ? data.volume.created : 0; };
-    inline uint64_t get_volume_size() { return Type == DOCKER_VOLUME ? data.volume.size : 0; };
-    inline int get_volume_linknr() { return Type == DOCKER_VOLUME ? data.volume.linknr : 0; };
-
-    /* generic get methods which check dkinfo type */
-    DKID *id();
-    POOLMEM *name();
-    uint64_t size();
-    inline DKINFO_OBJ_t type() { return Type; };
-    const char *type_str();
-
- private:
-    DKINFO_OBJ_t Type;
-    DOCKER_OBJ data;
-
-    void init(DKINFO_OBJ_t t);
-    inline void render_image_repository_tag()
-    {
+   DKINFO(DKINFO_OBJ_t t);
+   DKINFO(const DKINFO &dkinfo);
+#if __cplusplus > 201103L
+   DKINFO() = delete;
+   DKINFO(DKINFO&) = delete;
+   DKINFO(DKINFO&&) = delete;
+#endif
+   ~DKINFO();
+
+   /* set methods dedicated to container */
+   inline void set_container_id(DKID &id) { if (Type == DOCKER_CONTAINER){ *data.container.containerid = id; }}
+   inline void set_container_id(POOL_MEM &id) { if (Type == DOCKER_CONTAINER){ *data.container.containerid = id; }}
+   inline void set_container_id(POOLMEM *id) { if (Type == DOCKER_CONTAINER){ *data.container.containerid = (char*)id; }}
+   inline void set_container_names(POOLMEM *n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.names, n); }}
+   inline void set_container_names(POOL_MEM &n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.names, n); }}
+   inline void set_container_size(uint64_t s) { if (Type == DOCKER_CONTAINER){ data.container.size = s; }}
+   inline void set_container_imagesave(DKID &id) { if (Type == DOCKER_CONTAINER){ *data.container.imagesave = id; }}
+   inline void set_container_imagesave(POOL_MEM &id) { if (Type == DOCKER_CONTAINER){ *data.container.imagesave = id; }}
+   inline void set_container_imagesave(POOLMEM *id) { if (Type == DOCKER_CONTAINER){ *data.container.imagesave = (char*)id; }}
+   inline void set_container_imagesave_tag(POOL_MEM &n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.imagesave_tag, n); }}
+   inline void set_container_imagesave_tag(POOLMEM *n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.imagesave_tag, n); }}
+   inline void set_container_status(DOCKER_POWER_T s) { if (Type == DOCKER_CONTAINER){ data.container.status = s; }}
+   void set_container_status(POOL_MEM &s);
+   inline void set_container_mounts(POOLMEM *n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.mounts, n); }}
+   inline void set_container_mounts(POOL_MEM &n) { if (Type == DOCKER_CONTAINER){ pm_strcpy(data.container.mounts, n); }}
+
+   /* special vols handling */
+   inline void container_append_vols(DKVOLS *dk) { if (Type == DOCKER_CONTAINER){ data.container.vols->append(dk); }}
+   inline bool container_has_vols() { return Type == DOCKER_CONTAINER ? !data.container.vols->empty() : false; }
+   inline DKVOLS *container_first_vols() { return Type == DOCKER_CONTAINER ? (DKVOLS*)data.container.vols->first() : NULL; }
+   inline DKVOLS *container_next_vols() { return Type == DOCKER_CONTAINER ? (DKVOLS*)data.container.vols->next() : NULL; }
+
+   /* set methods dedicated to image */
+   inline void set_image_id(DKID &id) { if (Type == DOCKER_IMAGE){ *data.image.imageid = id; }}
+   inline void set_image_id(POOLMEM *id) { if (Type == DOCKER_IMAGE){ *data.image.imageid = (char*)id; }}
+   inline void set_image_id(POOL_MEM &id) { if (Type == DOCKER_IMAGE){ *data.image.imageid = id; }}
+   inline void set_image_repository(POOLMEM *n) { if (Type == DOCKER_IMAGE){ pm_strcpy(data.image.repository, n); render_image_repository_tag(); }}
+   inline void set_image_repository(POOL_MEM &n) { if (Type == DOCKER_IMAGE){ pm_strcpy(data.image.repository, n); render_image_repository_tag(); }}
+   inline void set_image_tag(POOLMEM *n) { if (Type == DOCKER_IMAGE){ pm_strcpy(data.image.tag, n); render_image_repository_tag(); }}
+   inline void set_image_tag(POOL_MEM &n) { if (Type == DOCKER_IMAGE){ pm_strcpy(data.image.tag, n); render_image_repository_tag(); }}
+   inline void set_image_size(uint64_t s) { if (Type == DOCKER_IMAGE){ data.image.size = s; }}
+   inline void set_image_created(utime_t t) { if (Type == DOCKER_IMAGE){ data.image.created = t; }}
+
+   /* set methods dedicated to volume */
+   inline void set_volume_name(POOLMEM *n) { if (Type == DOCKER_VOLUME){ pm_strcpy(data.volume.name, n); }}
+   inline void set_volume_name(POOL_MEM &n) { if (Type == DOCKER_VOLUME){ pm_strcpy(data.volume.name, n); }}
+   inline void set_volume_created(utime_t t) { if (Type == DOCKER_VOLUME){ data.volume.created = t; }}
+   inline void set_volume_size(uint64_t s) { if (Type == DOCKER_VOLUME){ data.volume.size = s; }}
+   inline void set_volume_linknr(int l) { if (Type == DOCKER_VOLUME){ data.volume.linknr = l; }}
+   inline int inc_volume_linknr() { return Type == DOCKER_VOLUME ? ++data.volume.linknr : 0; }
+
+   /* scanning methods */
+   void scan_container_size(POOLMEM *str);
+   void scan_image_size(POOLMEM *str);
+   void scan_image_repository_tag(POOL_MEM &rt);
+   void scan_volume_size(POOLMEM *str);
+
+   /* get methods dedicated to container */
+   inline DKID *get_container_id() { return Type == DOCKER_CONTAINER ? data.container.containerid : NULL; }
+   inline DKID *get_container_imagesave() { return Type == DOCKER_CONTAINER ? data.container.imagesave : NULL; }
+   inline POOLMEM *get_container_names() { return Type == DOCKER_CONTAINER ? data.container.names : NULL; }
+   inline DOCKER_POWER_T get_container_status() { return Type == DOCKER_CONTAINER ? data.container.status : DKUNKNOWN; }
+   inline uint64_t get_container_size() { return Type == DOCKER_CONTAINER ? data.container.size : 0; }
+   inline POOLMEM *get_container_imagesave_tag() { return Type == DOCKER_CONTAINER ? data.container.imagesave_tag : NULL; }
+   inline POOLMEM *get_container_mounts() { return Type == DOCKER_CONTAINER ? data.container.mounts : NULL; }
+
+   /* get methods dedicated to image */
+   inline DKID *get_image_id() { return Type == DOCKER_IMAGE ? data.image.imageid : NULL; }
+   inline POOLMEM *get_image_repository() { return Type == DOCKER_IMAGE ? data.image.repository : NULL; }
+   inline POOLMEM *get_image_tag() { return Type == DOCKER_IMAGE ? data.image.tag : NULL; }
+   inline POOLMEM *get_image_repository_tag() { return Type == DOCKER_IMAGE ? data.image.repository_tag : NULL; }
+   inline uint64_t get_image_size() { return Type == DOCKER_IMAGE ? data.image.size : 0; }
+   inline utime_t get_image_created() { return Type == DOCKER_IMAGE ? data.image.created : 0; }
+
+   /* get methods dedicated to volume */
+   inline POOLMEM *get_volume_name() { return Type == DOCKER_VOLUME ? data.volume.name : NULL; }
+   inline utime_t get_volume_created() { return Type == DOCKER_VOLUME ? data.volume.created : 0; }
+   inline uint64_t get_volume_size() { return Type == DOCKER_VOLUME ? data.volume.size : 0; }
+   inline int get_volume_linknr() { return Type == DOCKER_VOLUME ? data.volume.linknr : 0; }
+
+   /* generic get methods which check dkinfo type */
+   DKID *id();
+   POOLMEM *name();
+   uint64_t size();
+   inline DKINFO_OBJ_t type() { return Type; }
+   const char *type_str();
+
+private:
+   DKINFO_OBJ_t Type;
+   DOCKER_OBJ data;
+
+   void init(DKINFO_OBJ_t t);
+   inline void render_image_repository_tag()
+   {
       pm_strcpy(data.image.repository_tag, data.image.repository);
       pm_strcat(data.image.repository_tag, ":");
       pm_strcat(data.image.repository_tag, data.image.tag);
-    };
+   }
 };
 
 #endif   /* _DKINFO_H_ */
index 6747d3a9ead1694b0b1837fbc931529f25889ecb..2364e380f6abc6145112adb7f08eaf4cefc84748 100644 (file)
    conveyed and/or propagated.
 
    Bacula(R) is a registered trademark of Kern Sibbald.
- */
+*/
 /**
  * @file docker-fd.c
- * @author Radosław Korzeniewski (radoslaw@korzeniewski.net)
+ * @author Radoslaw Korzeniewski (radoslaw@korzeniewski.net)
  * @brief This is a Bacula plugin for backup/restore Docker using native tools.
  * @version 1.2.1
  * @date 2020-01-05
- *
  * @copyright Copyright (c) 2021 All rights reserved. IP transferred to Bacula Systems according to agreement.
  */
 
@@ -80,7 +79,7 @@ static pFuncs pluginFuncs = {
    pluginIO,
    createFile,
    setFileAttributes,
-   NULL,
+   NULL,                   /* No checkFile */
    handleXACLdata
 };
 
@@ -1320,11 +1319,11 @@ bRC DOCKER::startBackupFile(bpContext *ctx, struct save_pkt *sp)
             switch (currdkinfo->type()){
                case DOCKER_CONTAINER:
                   Mmsg(fname, "%s%s/%s/%s.tar", PLUGINNAMESPACE, CONTAINERNAMESPACE,
-                        currdkinfo->name(), (char*)currdkinfo->id());
+                        currdkinfo->name(), (char*)*currdkinfo->id());
                   break;
                case DOCKER_IMAGE:
                   Mmsg(fname, "%s%s/%s/%s.tar", PLUGINNAMESPACE, IMAGENAMESPACE,
-                        currdkinfo->name(), (char*)currdkinfo->id());
+                        currdkinfo->name(), (char*)*currdkinfo->id());
                   break;
                case DOCKER_VOLUME:
                   Mmsg(fname, "%s%s/%s.tar", PLUGINNAMESPACE, VOLUMENAMESPACE,
@@ -1343,7 +1342,7 @@ bRC DOCKER::startBackupFile(bpContext *ctx, struct save_pkt *sp)
          case DOCKER_LISTING_IMAGE:
             sp->statp.st_mode = S_IFBLK | 0640;     // standard block device with 'brw-r----' permissions
          case DOCKER_LISTING_CONTAINER:
-            Mmsg(lname, "%s", param_notrunc?(char*)currdkinfo->id():currdkinfo->id()->digest_short());
+            Mmsg(lname, "%s", param_notrunc?(char*)*currdkinfo->id():currdkinfo->id()->digest_short());
             Mmsg(fname, "%s", currdkinfo->name());
             sp->link = lname;
             sp->type = FT_LNK;
index 2b78672081b6e95b8f9d9f33d4ed80343a9470d6..fc8376826b8384960ea15e184a744bf7b5f13e68 100644 (file)
  */
 /**
  * @file docker-fd.h
- * @author Radosław Korzeniewski (radoslaw@korzeniewski.net)
+ * @author Radoslaw Korzeniewski (radoslaw@korzeniewski.net)
  * @brief This is a Bacula plugin for backup/restore Docker using native tools.
  * @version 1.2.1
  * @date 2020-01-05
  *
  * @copyright Copyright (c) 2021 All rights reserved. IP transferred to Bacula Systems according to agreement.
  */
-
 #ifndef _DOCKER_FD_H_
 #define _DOCKER_FD_H_
 
@@ -100,7 +99,7 @@ class DOCKER: public SMARTALLOC {
    bRC pluginIO(bpContext *ctx, struct io_pkt *io);
    bRC createFile(bpContext *ctx, struct restore_pkt *rp);
    bRC setFileAttributes(bpContext *ctx, struct restore_pkt *rp);
-// Not used!   bRC checkFile(bpContext *ctx, char *fname);
+// Not used!  bRC checkFile(bpContext *ctx, char *fname);
    bRC handleXACLdata(bpContext *ctx, struct xacl_pkt *xacl);
    void setworkingdir(char *workdir);
    DOCKER(bpContext *bpctx);
@@ -120,7 +119,7 @@ class DOCKER: public SMARTALLOC {
    bool accurate_warning;              /* for sending accurate mode warning once */
    bool local_restore;                 /* if where parameter is set to local path then make a local restore */
    bool backup_finish;                 /* the hack to force finish backup list */
-   bool unsupportedlevel;              /* this flag show if plugin should report unsupported backup level */
+   bool unsupportedlevel;              /* this flag show if plugin should report unsupported backup level*/
    bool param_notrunc;                 /* when "notrunc" option specified, used in listing mode only */
    bool errortar;                      /* show if container tar for volume archive had errors */
    bool volumewarning;                 /* when set then a warning about remote docker volume restore was sent to user */