diff --git a/debian/bareos-director.dirs b/debian/bareos-director.dirs index b2ef0f1e08b..e4c5e03af25 100644 --- a/debian/bareos-director.dirs +++ b/debian/bareos-director.dirs @@ -13,4 +13,5 @@ /etc/bareos/bareos-dir.d/schedule /etc/bareos/bareos-dir.d/storage /etc/bareos/bareos-dir-export/ +/etc/bareos/bareos-dir-export/client /usr/lib/bareos diff --git a/src/dird/Makefile.in b/src/dird/Makefile.in index 13096daf6ca..5696818c85d 100644 --- a/src/dird/Makefile.in +++ b/src/dird/Makefile.in @@ -170,7 +170,7 @@ install: all fi; \ done; \ done - $(MKDIR) ${DESTDIR}${confdir}/bareos-dir-export/bareos-fd.d/director/ + $(MKDIR) ${DESTDIR}${confdir}/bareos-dir-export/client/ @if test -f ${DESTDIR}${scriptdir}/query.sql; then \ echo " ==> Saving existing query.sql to query.sql.old"; \ $(MV) -f ${DESTDIR}${scriptdir}/query.sql ${DESTDIR}${scriptdir}/query.sql.old; \ diff --git a/src/dird/ua_configure.c b/src/dird/ua_configure.c index 42372083aa2..a1315f3be8d 100644 --- a/src/dird/ua_configure.c +++ b/src/dird/ua_configure.c @@ -216,6 +216,10 @@ static inline bool configure_create_fd_resource_string(POOL_MEM &resource, const return true; } +/* + * Create a bareos-fd director resource file + * that corresponds to our client definition. + */ static inline bool configure_create_fd_resource(UAContext *ua, const char *clientname) { POOL_MEM resource(PM_MESSAGE); @@ -223,6 +227,7 @@ static inline bool configure_create_fd_resource(UAContext *ua, const char *clien POOL_MEM filename(PM_FNAME); POOL_MEM basedir(PM_FNAME); POOL_MEM temp(PM_MESSAGE); + const char *dirname = NULL; const bool error_if_exists = false; const bool create_directories = true; @@ -230,15 +235,21 @@ static inline bool configure_create_fd_resource(UAContext *ua, const char *clien return false; } + /* + * Get the path where the resource should get stored. + */ basedir.bsprintf("bareos-dir-export/client/%s/bareos-fd.d", clientname); - if (!my_config->get_path_of_new_resource(filename, temp, basedir.c_str(), "director", clientname, - error_if_exists, create_directories)) { + dirname = GetNextRes(R_DIRECTOR, NULL)->name; + if (!my_config->get_path_of_new_resource(filename, temp, basedir.c_str(), "director", + dirname, error_if_exists, create_directories)) { ua->error_msg("%s", temp.c_str()); return false; - } else { - filename_tmp.strcpy(temp); } + filename_tmp.strcpy(temp); + /* + * Write resource to file. + */ if (!configure_write_resource(filename.c_str(), "filedaemon-export", clientname, resource.c_str())) { ua->error_msg("failed to write filedaemon config resource file\n"); return false;