+/*
+ Bacula(R) - The Network Backup Solution
+
+ Copyright (C) 2000-2016 Kern Sibbald
+
+ The original author of Bacula is Kern Sibbald, with contributions
+ from many others, a complete list can be found in the file AUTHORS.
+
+ You may use this file and others of this release according to the
+ license defined in the LICENSE file, which includes the Affero General
+ Public License, v3.0 ("AGPLv3") and some additional permissions and
+ terms pursuant to its AGPLv3 Section 7.
+
+ This notice must be preserved when any source code is
+ conveyed and/or propagated.
+
+ Bacula(R) is a registered trademark of Kern Sibbald.
+*/
/*
*
* Program to test cache path
*
- * Eric Bollengier, March 2007
+ * Eric Bollengier, August 2009
*
*
- * Version $Id$
*/
-/*
- Bacula® - The Network Backup Solution
-
- Copyright (C) 2001-2006 Free Software Foundation Europe e.V.
-
- The main author of Bacula is Kern Sibbald, with contributions from
- many others, a complete list can be found in the file AUTHORS.
- This program is Free Software; you can redistribute it and/or
- modify it under the terms of version two of the GNU General Public
- License as published by the Free Software Foundation and included
- in the file LICENSE.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301, USA.
-
- Bacula® is a registered trademark of Kern Sibbald.
- The licensor of Bacula is the Free Software Foundation Europe
- (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
- Switzerland, email:ftf@fsfeurope.org.
-*/
#include "bacula.h"
#include "cats/cats.h"
#include "findlib/find.h"
/* Local variables */
-static B_DB *db;
-static char *file="COPYRIGHT";
+static BDB *db;
+static const char *file = "COPYRIGHT";
static DBId_t fnid=0;
static const char *db_name = "regress";
static const char *db_user = "regress";
static const char *db_password = "";
static const char *db_host = NULL;
+static const char *db_ssl_mode = NULL;
+static const char *db_ssl_key = NULL;
+static const char *db_ssl_cert = NULL;
+static const char *db_ssl_ca = NULL;
+static const char *db_ssl_capath = NULL;
+static const char *db_ssl_cipher = NULL;
static void usage()
{
fprintf(stderr, _(
PROG_COPYRIGHT
-"\nVersion: %s (%s)\n"
+"\n%sVersion: %s (%s)\n"
" -d <nn> set debug level to <nn>\n"
" -dt print timestamp in debug output\n"
" -n <name> specify the database name (default bacula)\n"
" -u <user> specify database user name (default bacula)\n"
" -P <password specify database password (default none)\n"
" -h <host> specify database host (default NULL)\n"
+" -k <sslkey> path name to the key file (default NULL)\n"
+" -e <sslcert> path name to the certificate file (default NULL)\n"
+" -a <sslca> path name to the CA certificate file (default NULL)\n"
" -w <working> specify working directory\n"
" -j <jobids> specify jobids\n"
" -p <path> specify path\n"
" -l <limit> maximum tuple to fetch\n"
" -T truncate cache table before starting\n"
" -v verbose\n"
-" -? print this message\n\n"), 2001, VERSION, BDATE);
+" -? print this message\n\n"), 2001, "", VERSION, BDATE);
exit(1);
}
{
Bvfs *vfs = (Bvfs *)ctx;
ATTR *attr = vfs->get_attr();
- char *empty = "A A A A A A A A A A A A A A";
+ char empty[] = "A A A A A A A A A A A A A A";
memset(&attr->statp, 0, sizeof(struct stat));
decode_stat((row[BVFS_LStat] && row[BVFS_LStat][0])?row[BVFS_LStat]:empty,
- &attr->statp, &attr->LinkFI);
+ &attr->statp, sizeof(attr->statp), &attr->LinkFI);
- if (fields == BVFS_DIR_RECORD || fields == BVFS_FILE_RECORD) {
+ if (bvfs_is_dir(row) || bvfs_is_file(row)) {
/* display clean stuffs */
- if (fields == BVFS_DIR_RECORD) {
+ if (bvfs_is_dir(row)) {
pm_strcpy(attr->ofname, bvfs_basename_dir(row[BVFS_Name]));
} else {
/* if we see the requested file, note his filenameid */
if (bstrcmp(row[BVFS_Name], file)) {
- fnid = str_to_int64(row[BVFS_Id]);
+ fnid = str_to_int64(row[BVFS_FilenameId]);
}
pm_strcpy(attr->ofname, row[BVFS_Name]);
}
} else {
Pmsg5(0, "JobId=%s FileId=%s\tMd5=%s\tVolName=%s\tVolInChanger=%s\n",
- row[BVFS_JobId], row[BVFS_Id], row[BVFS_Md5], row[BVFS_VolName],
+ row[BVFS_JobId], row[BVFS_FileId], row[BVFS_Md5], row[BVFS_VolName],
row[BVFS_VolInchanger]);
pm_strcpy(attr->ofname, file);
int main (int argc, char *argv[])
{
int ch;
- char *jobids="1", *path=NULL, *client=NULL;
+ char *jobids = (char *)"1";
+ char *path=NULL, *client=NULL;
uint64_t limit=0;
bool clean=false;
setlocale(LC_ALL, "");
OSDependentInit();
- while ((ch = getopt(argc, argv, "h:c:l:d:n:P:Su:vf:w:?j:p:f:T")) != -1) {
+ while ((ch = getopt(argc, argv, "h:o:k:e:a:c:l:d:n:P:Su:vf:w:?j:p:f:T")) != -1) {
switch (ch) {
case 'd': /* debug level */
if (*optarg == 't') {
db_host = optarg;
break;
+ case 'o':
+ db_ssl_mode = optarg;
+ break;
+
+ case 'k':
+ db_ssl_key= optarg;
+ break;
+
+ case 'e':
+ db_ssl_cert= optarg;
+ break;
+
+ case 'a':
+ db_ssl_ca= optarg;
+ break;
+
case 'n':
db_name = optarg;
break;
}
JCR *bjcr = new_jcr(sizeof(JCR), NULL);
bjcr->JobId = getpid();
- bjcr->set_JobType(JT_CONSOLE);
- bjcr->set_JobLevel(L_FULL);
+ bjcr->setJobType(JT_CONSOLE);
+ bjcr->setJobLevel(L_FULL);
bjcr->JobStatus = JS_Running;
bjcr->client_name = get_pool_memory(PM_FNAME);
pm_strcpy(bjcr->client_name, "Dummy.Client.Name");
bstrncpy(bjcr->Job, "bvfs_test", sizeof(bjcr->Job));
- if ((db=db_init_database(NULL, db_name, db_user, db_password,
- db_host, 0, NULL, 0)) == NULL) {
+ if ((db = db_init_database(NULL, NULL, db_name, db_user, db_password,
+ db_host, 0, NULL,
+ db_ssl_mode, db_ssl_key,
+ db_ssl_cert, db_ssl_ca,
+ db_ssl_capath, db_ssl_cipher,
+ false, false)) == NULL) {
Emsg0(M_ERROR_TERM, 0, _("Could not init Bacula database\n"));
}
- Dmsg1(0, "db_type=%s\n", db_get_type());
+ Dmsg1(0, "db_type=%s\n", db_get_engine_name(db));
if (!db_open_database(NULL, db)) {
Emsg0(M_ERROR_TERM, 0, db_strerror(db));
if (clean) {
Pmsg0(0, "Clean old table\n");
- db_sql_query(db, "DELETE FROM brestore_pathhierarchy", NULL, NULL);
- db_sql_query(db, "DELETE FROM brestore_knownjobid", NULL, NULL);
- db_sql_query(db, "DELETE FROM brestore_pathvisibility", NULL, NULL);
+ db_sql_query(db, "DELETE FROM PathHierarchy", NULL, NULL);
+ db_sql_query(db, "UPDATE Job SET HasCache=0", NULL, NULL);
+ db_sql_query(db, "DELETE FROM PathVisibility", NULL, NULL);
bvfs_update_cache(bjcr, db);
}