Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/stored/dir_cmd.cc')
-rw-r--r--core/src/stored/dir_cmd.cc49
1 files changed, 25 insertions, 24 deletions
diff --git a/core/src/stored/dir_cmd.cc b/core/src/stored/dir_cmd.cc
index 078b21d1b..2047de07e 100644
--- a/core/src/stored/dir_cmd.cc
+++ b/core/src/stored/dir_cmd.cc
@@ -50,7 +50,7 @@
#include "stored/device_control_record.h"
#include "stored/sd_device_control_record.h"
#include "stored/fd_cmds.h"
-#include "stored/jcr_private.h"
+#include "stored/stored_jcr_impl.h"
#include "stored/job.h"
#include "stored/label.h"
#include "stored/ndmp_tape.h"
@@ -259,7 +259,7 @@ void* HandleDirectorConnection(BareosSocket* dir)
jcr->dir_bsock->SetJcr(jcr);
// Initialize Start Job condition variable
- errstat = pthread_cond_init(&jcr->impl->job_start_wait, NULL);
+ errstat = pthread_cond_init(&jcr->sd_impl->job_start_wait, NULL);
if (errstat != 0) {
BErrNo be;
Jmsg1(jcr, M_FATAL, 0,
@@ -269,7 +269,7 @@ void* HandleDirectorConnection(BareosSocket* dir)
}
// Initialize End Job condition variable
- errstat = pthread_cond_init(&jcr->impl->job_end_wait, NULL);
+ errstat = pthread_cond_init(&jcr->sd_impl->job_end_wait, NULL);
if (errstat != 0) {
BErrNo be;
Jmsg1(jcr, M_FATAL, 0, _("Unable to init job end cond variable: ERR=%s\n"),
@@ -302,7 +302,7 @@ void* HandleDirectorConnection(BareosSocket* dir)
found = false;
for (i = 0; cmds[i].cmd; i++) {
if (bstrncmp(cmds[i].cmd, dir->msg, strlen(cmds[i].cmd))) {
- if ((!cmds[i].monitoraccess) && (jcr->impl->director->monitor)) {
+ if ((!cmds[i].monitoraccess) && (jcr->sd_impl->director->monitor)) {
Dmsg1(100, "Command \"%s\" is invalid.\n", cmds[i].cmd);
dir->fsend(invalid_cmd);
dir->signal(BNET_EOD);
@@ -517,13 +517,14 @@ static bool CancelCmd(JobControlRecord* cjcr)
}
}
- oldStatus = jcr->JobStatus;
- jcr->setJobStatus(status);
+ oldStatus = jcr->getJobStatus();
+ jcr->setJobStatusWithPriorityCheck(status);
Dmsg2(800, "Cancel JobId=%d %p\n", jcr->JobId, jcr);
if (!jcr->authenticated
&& (oldStatus == JS_WaitFD || oldStatus == JS_WaitSD)) {
- pthread_cond_signal(&jcr->impl->job_start_wait); /* wake waiting thread */
+ pthread_cond_signal(
+ &jcr->sd_impl->job_start_wait); /* wake waiting thread */
}
if (jcr->file_bsock) {
@@ -533,23 +534,23 @@ static bool CancelCmd(JobControlRecord* cjcr)
} else {
if (oldStatus != JS_WaitSD) {
// Still waiting for FD to connect, release it
- pthread_cond_signal(&jcr->impl->job_start_wait); /* wake waiting job */
+ pthread_cond_signal(&jcr->sd_impl->job_start_wait); /* wake waiting job */
Dmsg2(800, "Signal FD connect jid=%d %p\n", jcr->JobId, jcr);
}
}
// If thread waiting on mount, wake him
- if (jcr->impl->dcr && jcr->impl->dcr->dev
- && jcr->impl->dcr->dev->waiting_for_mount()) {
- pthread_cond_broadcast(&jcr->impl->dcr->dev->wait_next_vol);
+ if (jcr->sd_impl->dcr && jcr->sd_impl->dcr->dev
+ && jcr->sd_impl->dcr->dev->waiting_for_mount()) {
+ pthread_cond_broadcast(&jcr->sd_impl->dcr->dev->wait_next_vol);
Dmsg1(100, "JobId=%u broadcast wait_device_release\n",
(uint32_t)jcr->JobId);
ReleaseDeviceCond();
}
- if (jcr->impl->read_dcr && jcr->impl->read_dcr->dev
- && jcr->impl->read_dcr->dev->waiting_for_mount()) {
- pthread_cond_broadcast(&jcr->impl->read_dcr->dev->wait_next_vol);
+ if (jcr->sd_impl->read_dcr && jcr->sd_impl->read_dcr->dev
+ && jcr->sd_impl->read_dcr->dev->waiting_for_mount()) {
+ pthread_cond_broadcast(&jcr->sd_impl->read_dcr->dev->wait_next_vol);
Dmsg1(100, "JobId=%u broadcast wait_device_release\n",
(uint32_t)jcr->JobId);
ReleaseDeviceCond();
@@ -573,7 +574,7 @@ static bool CancelCmd(JobControlRecord* cjcr)
}
}
- pthread_cond_signal(&jcr->impl->job_end_wait); /* wake waiting job */
+ pthread_cond_signal(&jcr->sd_impl->job_end_wait); /* wake waiting job */
jcr->MyThreadSendSignal(TIMEOUT_SIGNAL);
dir->fsend(_("3000 JobId=%ld Job=\"%s\" marked to be %s.\n"), jcr->JobId,
@@ -1319,14 +1320,14 @@ static inline bool GetBootstrapFile(JobControlRecord* jcr, BareosSocket* sock)
}
fclose(bs);
Dmsg0(10, "=== end bootstrap file ===\n");
- jcr->impl->read_session.bsr
+ jcr->sd_impl->read_session.bsr
= libbareos::parse_bsr(jcr, jcr->RestoreBootstrap);
- if (!jcr->impl->read_session.bsr) {
+ if (!jcr->sd_impl->read_session.bsr) {
Jmsg(jcr, M_FATAL, 0, _("Error parsing bootstrap file.\n"));
goto bail_out;
}
if (debug_level >= 10) {
- libbareos::DumpBsr(jcr->impl->read_session.bsr, true);
+ libbareos::DumpBsr(jcr->sd_impl->read_session.bsr, true);
}
/* If we got a bootstrap, we are reading, so create read volume list */
CreateRestoreVolumeList(jcr);
@@ -1654,8 +1655,8 @@ static bool ReplicateCmd(JobControlRecord* jcr)
storage_daemon_socket->SetSourceAddress(me->SDsrc_addr);
if (!jcr->max_bandwidth) {
- if (jcr->impl->director->max_bandwidth_per_job) {
- jcr->max_bandwidth = jcr->impl->director->max_bandwidth_per_job;
+ if (jcr->sd_impl->director->max_bandwidth_per_job) {
+ jcr->max_bandwidth = jcr->sd_impl->director->max_bandwidth_per_job;
} else if (me->max_bandwidth_per_job) {
jcr->max_bandwidth = me->max_bandwidth_per_job;
}
@@ -1710,7 +1711,7 @@ static bool ReplicateCmd(JobControlRecord* jcr)
connect_state(ReplicateCmdState::kAuthenticated);
Dmsg0(110, "Authenticated with SD.\n");
- jcr->impl->remote_replicate = true;
+ jcr->sd_impl->remote_replicate = true;
storage_daemon_socket.release(); /* jcr->store_bsock */
return dir->fsend(OK_replicate);
@@ -1823,10 +1824,10 @@ static bool PluginoptionsCmd(JobControlRecord* jcr)
}
UnbashSpaces(plugin_options);
- if (!jcr->impl->plugin_options) {
- jcr->impl->plugin_options = new alist<const char*>(10, owned_by_alist);
+ if (!jcr->sd_impl->plugin_options) {
+ jcr->sd_impl->plugin_options = new alist<const char*>(10, owned_by_alist);
}
- jcr->impl->plugin_options->append(strdup(plugin_options));
+ jcr->sd_impl->plugin_options->append(strdup(plugin_options));
// Send OK to Director
return dir->fsend(OKpluginoptions);