* The purpose of these routines is to ensure that Bacula
* can limp along if no real database is loaded on the
* system.
- *
- * Kern Sibbald, January MMI
+ *
+ * Kern Sibbald, January MMI
*
* Version $Id$
*/
/*
- Copyright (C) 2001, 2002 Kern Sibbald and John Walker
+ Copyright (C) 2001-2003 Kern Sibbald and John Walker
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
#ifdef HAVE_BACULA_DB
/* Forward referenced functions */
-int db_create_pool_record(B_DB *mdb, POOL_DBR *pr);
+bool db_create_pool_record(B_DB *mdb, POOL_DBR *pr);
/* -----------------------------------------------------------------------
*
* -----------------------------------------------------------------------
*/
-int db_create_file_attributes_record(B_DB *mdb, ATTR_DBR *ar)
+int db_create_file_attributes_record(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
{
/* *****FIXME***** implement this */
return 1;
}
-int db_create_file_item(B_DB *mdb, ATTR_DBR *ar)
-{
+int db_create_file_item(JCR *jcr, B_DB *mdb, ATTR_DBR *ar)
+{
/****FIXME***** not implemented */
return 1;
}
-/*
- * Create a new record for the Job
+/*
+ * Create a new record for the Job
* This record is created at the start of the Job,
* it is updated in bdb_update.c when the Job terminates.
*
* Returns: 0 on failure
* 1 on success
*/
-int db_create_job_record(B_DB *mdb, JOB_DBR *jr)
+int db_create_job_record(JCR *jcr, B_DB *mdb, JOB_DBR *jr)
{
int len;
return 1;
}
-/* Create a JobMedia record for Volume used this job
+/* Create a JobMedia record for Volume used this job
* Returns: 0 on failure
* record-id on success
*/
-int db_create_jobmedia_record(B_DB *mdb, JOBMEDIA_DBR *jm)
+bool db_create_jobmedia_record(JCR *jcr, B_DB *mdb, JOBMEDIA_DBR *jm)
{
int len;
* Returns: 0 on failure
* 1 on success
*/
-int db_create_pool_record(B_DB *mdb, POOL_DBR *pr)
+bool db_create_pool_record(JCR *jcr, B_DB *mdb, POOL_DBR *pr)
{
int len;
POOL_DBR mpr;
memset(&mpr, 0, sizeof(mpr));
strcpy(mpr.Name, pr->Name);
- if (db_get_pool_record(mdb, &mpr)) {
+ if (db_get_pool_record(jcr, mdb, &mpr)) {
Mmsg1(&mdb->errmsg, "Pool record %s already exists\n", mpr.Name);
return 0;
}
return 1;
}
+bool db_create_device_record(JCR *jcr, B_DB *mdb, DEVICE_DBR *dr)
+{ return false; }
+
+bool db_create_storage_record(JCR *jcr, B_DB *mdb, STORAGE_DBR *dr)
+{ return false; }
+
+bool db_create_mediatype_record(JCR *jcr, B_DB *mdb, MEDIATYPE_DBR *dr)
+{ return false; }
-/*
+
+/*
* Create Unique Media record. This record
* contains all the data pertaining to a specific
* Volume.
*
* Returns: 0 on failure
* 1 on success
- */
-int db_create_media_record(B_DB *mdb, MEDIA_DBR *mr)
+ */
+int db_create_media_record(JCR *jcr, B_DB *mdb, MEDIA_DBR *mr)
{
int len;
MEDIA_DBR mmr;
+ db_lock(mdb);
memset(&mmr, 0, sizeof(mmr));
strcpy(mmr.VolumeName, mr->VolumeName);
- if (db_get_media_record(mdb, &mmr)) {
+ if (db_get_media_record(jcr, mdb, &mmr)) {
Mmsg1(&mdb->errmsg, "Media record %s already exists\n", mmr.VolumeName);
+ db_unlock(mdb);
return 0;
}
- db_lock(mdb);
mdb->control.MediaId++;
mr->MediaId = mdb->control.MediaId;
* Returns: 0 on failure
* 1 on success
*/
-int db_create_client_record(B_DB *mdb, CLIENT_DBR *cr)
+int db_create_client_record(JCR *jcr, B_DB *mdb, CLIENT_DBR *cr)
{
int len;
CLIENT_DBR lcr;
+ db_lock(mdb);
cr->ClientId = 0;
- if (db_get_client_record(mdb, cr)) {
+ if (db_get_client_record(jcr, mdb, cr)) {
Mmsg1(&mdb->errmsg, "Client record %s already exists\n", cr->Name);
+ db_unlock(mdb);
return 1;
}
- db_lock(mdb);
if (!bdb_open_client_file(mdb)) {
db_unlock(mdb);
return 0;
/*
* Create a unique FileSet record or return existing record
*
- * Note, here we write the FILESET_DBR structure
+ * Note, here we write the FILESET_DBR structure
*
* Returns: 0 on failure
* 1 on success
*/
-int db_create_fileset_record(B_DB *mdb, FILESET_DBR *fsr)
+bool db_create_fileset_record(JCR *jcr, B_DB *mdb, FILESET_DBR *fsr)
{
int len;
FILESET_DBR lfsr;
+ db_lock(mdb);
fsr->FileSetId = 0;
- if (db_get_fileset_record(mdb, fsr)) {
+ if (db_get_fileset_record(jcr, mdb, fsr)) {
Mmsg1(&mdb->errmsg, "FileSet record %s already exists\n", fsr->FileSet);
+ db_unlock(mdb);
return 1;
}
- db_lock(mdb);
if (!bdb_open_fileset_file(mdb)) {
db_unlock(mdb);
return 0;
return 1;
}
+int db_create_counter_record(JCR *jcr, B_DB *mdb, COUNTER_DBR *cr)
+{ return 0; }
+
+
#endif /* HAVE_BACULA_DB */