bareos2015: bareos-14.2 a7448323

Author Committer Branch Timestamp Parent
mvwieringen mvwieringen bareos-14.2 2013-09-04 13:10 bareos-14.2 8085e55a Pending
Affected Issues  0000220: Copy job definition requires unnecessary settings
Changeset Copy job definition requires unnecessary settings

When configuring a Migration or Copy Job you need to specify a Client
and Fileset although those items are never used in the Job as it selects
via a certain selection criterium the Jobs it needs to Migrate or Copy
and uses the Client and Fileset of that original Job.

We relaxed the configuration engine to no longer make the Client and
Fileset keyword required keywords. In the check_resources() function
we now check after the required keyword check what type of Job is
configured and when its not a Migration or Copy Job we still fail the
configuration check as for any Job not being a Migration or Copy Job we
still need the Client and Fileset.

We also needed to check in a lot of places if we have a Client or
Fileset for the current running Job as a lot of code assumes that there
always is a Client or Fileset. This is of course a bad assumption and
hopefully we found all places where these wrong assumptions are made
and the Jobs Client or Fileset pointer is dereferenced without a check.

This new code passed a full regression test both with the old configs
for Migrate and Copy with a dummy Client and Fileset and without.

Fixes 0000220: Copy job definition requires unnecessary settings
mod - src/dird/backup.c Diff File
mod - src/dird/dird.c Diff File
mod - src/dird/dird_conf.c Diff File
mod - src/dird/job.c Diff File
mod - src/dird/jobq.c Diff File
mod - src/dird/migrate.c Diff File
mod - src/dird/msgchan.c Diff File
mod - src/dird/ndmp_dma.c Diff File
mod - src/dird/protos.h Diff File
mod - src/dird/quota.c Diff File
mod - src/dird/restore.c Diff File
mod - src/dird/ua_cmds.c Diff File
mod - src/dird/ua_run.c Diff File
mod - src/dird/verify.c Diff File
mod - src/stored/askdir.c Diff File