#
# This is stored config by a client and then collected on the storage
#
-# @param client The name of the client (relevant for device names, media type names, etc.)
+# @param director_server The director for this client
+# @param client The name of the client (relevant for device names, media type names, etc.)
define bacula::storage::client(
+ String $director_server,
String $client = $name
) {
include bacula::storage
+ $device_name = "${bacula::storage::filestor_device}-${client}"
+ $media_type_name = "${bacula::storage::filestor_name}-${client}"
+ $directory = "${bacula::storage::backup_path}/${client}"
+
file {
"/etc/bacula/storage-conf.d/${client}.conf":
content => template('bacula/storage/sd-per-client.conf.erb'),
group => bacula,
notify => Exec['bacula-sd restart-when-idle'],
;
- "${bacula::storage::backup_path}/${client}":
+ $directory:
ensure => directory,
mode => '0755',
owner => bacula,
group => bacula,
;
}
-}
+ # enable the director to make (client, storage) specific configuration
+ @@bacula::director::client_from_storage { $::fqdn:
+ tag => "bacula::to-director::${director_server}",
+ storage_address => $::fqdn,
+ port_sd => $bacula::storage::port_sd,
+ storage_secret => $bacula::storage::storage_secret,
+ storage_device_name => $device_name,
+ storage_media_type_name => $media_type_name,
+ }
+}