Age | Commit message (Collapse) | Author |
|
webui: patch zf2 to eliminate a php warning caused by zend-stdlib
|
|
Signed-off-by: Bruno Friedmann <bruno.friedmann@bareos.com>
|
|
Use break instead of continue inside switch.
See: https://github.com/zendframework/zend-stdlib/commit/d0cd1d043ba70feb503fb1015fbc94a6ca414056
|
|
webui: fix job timeline x-axis UTC timestamp issue
|
|
webui-selenium-test: use `options` instead of `chrome_options`
|
|
|
|
Eliminates deprecation warning: `use options instead of chrome_options`.
|
|
build: fix droplet_backend.cc compilation
|
|
|
|
|
|
Signed-off-by: Sebastian Lederer <sebastian.lederer@dass-it.de>
|
|
core: use distinct names for JobControlRecordPrivate
|
|
|
|
When we moved the daemon-specific functionality of the JobControlRecord
into JobControlRecordPrivate, we essentially introduced three different
types that were all named JobControlRecordPrivate - one for the
Director, one for the Storage Daemon and one for the File Daemon. This
could lead to ODR violations when you tried to link parts of the daemons
together.
In fact, that implementation already behaved like a union of the three
different types (i.e. requiring per-implementation initialisation and
teardown, undefined behaviour when accessing via the wrong type, etc.).
This patch renames the daemon's individual JobControlRecordPrivate to
DirectorJcrImpl, StoredJcrImpl and FiledJcrImpl. The impl-pointer was
changed to a union of dir_impl, sd_impl and fd_impl.
With this change applied you can now build programs that use two or more
of the JCR types.
|
|
sd: refactor the SD's backend interface
|
|
|
|
also set cmake_policy version to 3.17...3.19 enabling all policies
present in CMake up until 3.19.
CMake 3.19 contains the newest policy we require (CMP0109) which makes
find_program() only check for executability but not readability which
allows to find sudo.
|
|
webui: fix pool link in job details formatter
|
|
|
|
|
|
As we have so many kinds of plugins, we'll just call it
ImplementationFactory as it is a factory that returns implementations.
|
|
Historically, we linked against a 3rd-party package. Thus we were using
dynamic linking.
As we're shipping libdroplet ourselves and there is no other consumer
than the droplet storage backend, it is easier to link it directly into
the backend.
|
|
Previously, the baseclasses for generic tape support and chunked devices
were built as shared modules. As this code is never shared, we can just
link it all into the resulting backends with no drawbacks at all.
|
|
Previously IsTape() was called for display purposes. This patch displays
the configured Device Type instead.
|
|
This is now implemented via SeekType. The refactored code also catches
some cases when a backend does not override a required method.
|
|
This patch refactors all uses of IsFile() into individual checks that
should do what the original author intended.
|
|
|
|
|
|
Previously the droplet tests were integrated into the sd_backend tests.
With the new backend loading, we cannot configure a droplet backend if
we did not build it, thus we need to extract the droplet tests so we can
disable them completely.
|
|
Instead of returning a factory that will then provide Device*, we can
return the Device* from the PluginRegistry's factory directly. This
removes the BackendInterface layer that wrapped the factory again.
|
|
This patch removes now unused parts of the old storage backend
interface.
|
|
This patch introduces a plugin regsitry that contains all loaded
backends. Storage backends will self-register their factory either at
startup (in case the backend is statically linked into the SD) or when
the backend is loaded.
From the backend's perspective, there's no difference if it is
statically or dynamically loaded anymore.
Finally, the loading of the backends is done right after loading the
configuration, so for every device we check the presence of its backend
and fail if it is missing or cannot be loaded.
|
|
If you configure a device, the backend will be checked when the
configuration is loaded. Thus a lot of the existing test configurations
need to be adapted to either use existing storge backends or to have
BackendDirectory configured.
|
|
This patch turns the SD's device_type into a std::string, so we can use
arbitrary backend names without registering them in a central list of
backends.
|
|
Previously the device-type for a device where the type was not specified
was determined when it was first used. Now we do the check for every
device right after the configuration was loaded and fail early if
needed.
|
|
|
|
This patch removes the remaining traces of these three removed backends
from the codebase.
|
|
|
|
|
|
Instead of building unix_file_device/win32_file_device directory into
libbareossd, this patch builds them as a dynamic backend and removes
special handling for them.
Also move all backend build configuration into the backends directory.
|
|
remove the unused FlushDevice() function from the backend interface and
all interfaces.
|
|
this patch amends the SD configuration in every systemtest to have the
correct BackendDirectory set, so we can load dynamic backends during
testing.
It also removed the BackendDirectory when built without dynamic
backends.
|
|
Prepare Bareos for an upgrade to the C++20 standard
|
|
|
|
C++20 supports designated initializers. However, it doesn't allow
mixing of named and unnamed initialization. As we need to use the
PyVarObject_HEAD_INIT() macro, which doesn't name the attributes it
sets, we have to downgrade the compiler to C++17, so designated
initializers are handled as compiler extension, which will allow the
mixing that occurs here.
See also: https://github.com/python/cpython/issues/99202
|
|
Certain compilers we use in our containers seem to not support std::construct_at
|
|
|
|
|
|
replace problematic accesses to JobStatus with getter
|
|
|