|
| 1 | +# @summary |
| 2 | +# manage client configs for bareos |
| 3 | +# |
| 4 | +# @api private |
| 5 | +# |
| 6 | +class bareos::client::config ( |
| 7 | + $ensure = present, |
| 8 | + $absolute_job_timeout = undef, |
| 9 | + $allow_bandwidth_bursting = undef, |
| 10 | + $allowed_job_command = undef, |
| 11 | + $allowed_script_dir = undef, |
| 12 | + $always_use_lmdb = undef, |
| 13 | + $compatible = undef, |
| 14 | + $description = undef, |
| 15 | + $fd_address = undef, |
| 16 | + $fd_addresses = undef, |
| 17 | + $fd_port = undef, |
| 18 | + $fd_source_address = undef, |
| 19 | + $heartbeat_interval = undef, |
| 20 | + $lmdb_threshold = undef, |
| 21 | + $log_timestamp_format = undef, |
| 22 | + $maximum_bandwidth_per_job = undef, |
| 23 | + $maximum_concurrent_jobs = undef, |
| 24 | + $maximum_connections = undef, |
| 25 | + $maximum_network_buffer_size = undef, |
| 26 | + $messages = undef, |
| 27 | + $name_client = 'bareos-fd', |
| 28 | + $pid_directory = undef, |
| 29 | + $pki_cipher = undef, |
| 30 | + $pki_encryption = undef, |
| 31 | + $pki_key_pair = undef, |
| 32 | + $pki_master_key = undef, |
| 33 | + $pki_signatures = undef, |
| 34 | + $pki_signer = undef, |
| 35 | + $plugin_directory = undef, |
| 36 | + $plugin_names = undef, |
| 37 | + $scripts_directory = undef, |
| 38 | + $sd_connect_timeout = undef, |
| 39 | + $secure_erase_command = undef, |
| 40 | + $tls_allowed_cn = undef, |
| 41 | + $tls_authenticate = undef, |
| 42 | + $tls_ca_certificate_dir = undef, |
| 43 | + $tls_ca_certificate_file = undef, |
| 44 | + $tls_certificate = undef, |
| 45 | + $tls_certificate_revocation_list = undef, |
| 46 | + $tls_cipher_list = undef, |
| 47 | + $tls_dh_file = undef, |
| 48 | + $tls_enable = undef, |
| 49 | + $tls_key = undef, |
| 50 | + $tls_require = undef, |
| 51 | + $tls_verify_peer = undef, |
| 52 | + $ver_id = undef, |
| 53 | + $working_directory = undef, |
| 54 | +) { |
| 55 | + assert_private() |
| 56 | + |
| 57 | + [ |
| 58 | + "${bareos::client_config_directory}/client", |
| 59 | + "${bareos::client_config_directory}/director", |
| 60 | + "${bareos::client_config_directory}/messages", |
| 61 | + ].each |$config_directory| { |
| 62 | + file { $config_directory: |
| 63 | + ensure => directory, |
| 64 | + force => true, |
| 65 | + purge => true, |
| 66 | + recurse => true, |
| 67 | + group => $bareos::config_group, |
| 68 | + mode => $bareos::config_directory_mode, |
| 69 | + owner => $bareos::config_owner, |
| 70 | + tag => ['bareos', 'bareos_client'], |
| 71 | + } |
| 72 | + } |
| 73 | + |
| 74 | + $_resource = 'Client' |
| 75 | + $_resource_dir = 'client' |
| 76 | + |
| 77 | + if $ensure == 'present' { |
| 78 | + $_require_res_messages = $messages ? { undef => undef, default => Bareos::Client::Messages[$messages] } |
| 79 | + |
| 80 | + $_require_resource = delete_undef_values([ |
| 81 | + $_require_res_messages, |
| 82 | + ]) |
| 83 | + |
| 84 | + $_settings = bareos_settings( |
| 85 | + [$name_client, 'Name', 'name', true], |
| 86 | + [$description, 'Description', 'string', false], |
| 87 | + [$absolute_job_timeout, 'Absolute Job Timeout', 'pint32', false], |
| 88 | + [$allow_bandwidth_bursting, 'Allow Bandwidth Bursting', 'boolean', false], |
| 89 | + [$allowed_job_command, 'Allowed Job Command', 'string_list', false], |
| 90 | + [$allowed_script_dir, 'Allowed Script Dir', 'directory_list', false], |
| 91 | + [$always_use_lmdb, 'Always Use Lmdb', 'boolean', false], |
| 92 | + [$compatible, 'Compatible', 'boolean', false], |
| 93 | + [$fd_address, 'Fd Address', 'address', false], |
| 94 | + [$fd_addresses, 'Fd Addresses', 'addresses', false], |
| 95 | + [$fd_port, 'Fd Port', 'port', false], |
| 96 | + [$fd_source_address, 'Fd Source Address', 'address', false], |
| 97 | + [$heartbeat_interval, 'Heartbeat Interval', 'time', false], |
| 98 | + [$lmdb_threshold, 'Lmdb Threshold', 'pint32', false], |
| 99 | + [$log_timestamp_format, 'Log Timestamp Format', 'string', false], |
| 100 | + [$maximum_bandwidth_per_job, 'Maximum Bandwidth Per Job', 'speed', false], |
| 101 | + [$maximum_concurrent_jobs, 'Maximum Concurrent Jobs', 'pint32', false], |
| 102 | + [$maximum_connections, 'Maximum Connections', 'pint32', false], |
| 103 | + [$maximum_network_buffer_size, 'Maximum Network Buffer Size', 'pint32', false], |
| 104 | + [$messages, 'Messages', 'res', false], |
| 105 | + [$pid_directory, 'Pid Directory', 'directory', false], |
| 106 | + [$pki_cipher, 'Pki Cipher', 'encryption_cipher', false], |
| 107 | + [$pki_encryption, 'Pki Encryption', 'boolean', false], |
| 108 | + [$pki_key_pair, 'Pki Key Pair', 'directory', false], |
| 109 | + [$pki_master_key, 'Pki Master Key', 'directory_list', false], |
| 110 | + [$pki_signatures, 'Pki Signatures', 'boolean', false], |
| 111 | + [$pki_signer, 'Pki Signer', 'directory_list', false], |
| 112 | + [$plugin_directory, 'Plugin Directory', 'directory', false], |
| 113 | + [$plugin_names, 'Plugin Names', 'plugin_names', false], |
| 114 | + [$scripts_directory, 'Scripts Directory', 'directory', false], |
| 115 | + [$sd_connect_timeout, 'Sd Connect Timeout', 'time', false], |
| 116 | + [$secure_erase_command, 'Secure Erase Command', 'string', false], |
| 117 | + [$tls_allowed_cn, 'Tls Allowed Cn', 'string_list', false], |
| 118 | + [$tls_authenticate, 'Tls Authenticate', 'boolean', false], |
| 119 | + [$tls_ca_certificate_dir, 'Tls Ca Certificate Dir', 'directory', false], |
| 120 | + [$tls_ca_certificate_file, 'Tls Ca Certificate File', 'directory', false], |
| 121 | + [$tls_certificate, 'Tls Certificate', 'directory', false], |
| 122 | + [$tls_certificate_revocation_list, 'Tls Certificate Revocation List', 'directory', false], |
| 123 | + [$tls_cipher_list, 'Tls Cipher List', 'string', false], |
| 124 | + [$tls_dh_file, 'Tls Dh File', 'directory', false], |
| 125 | + [$tls_enable, 'Tls Enable', 'boolean', false], |
| 126 | + [$tls_key, 'Tls Key', 'directory', false], |
| 127 | + [$tls_require, 'Tls Require', 'boolean', false], |
| 128 | + [$tls_verify_peer, 'Tls Verify Peer', 'boolean', false], |
| 129 | + [$ver_id, 'Ver Id', 'string', false], |
| 130 | + [$working_directory, 'Working Directory', 'directory', false] |
| 131 | + ) |
| 132 | + } else { |
| 133 | + $_require_res_messages = undef |
| 134 | + } |
| 135 | + |
| 136 | + file { "${bareos::client::config_dir}/${_resource_dir}/bareos-fd.conf": |
| 137 | + ensure => $ensure, |
| 138 | + mode => $bareos::file_mode, |
| 139 | + owner => $bareos::file_owner, |
| 140 | + group => $bareos::file_group, |
| 141 | + content => template('bareos/resource.erb'), |
| 142 | + notify => Service[$bareos::client::service_name], |
| 143 | + require => $_require_res_messages, |
| 144 | + tag => ['bareos', 'bareos_client'], |
| 145 | + } |
| 146 | +} |
0 commit comments