aboutsummaryrefslogtreecommitdiffstats
path: root/config/bacula-client/bacula-client.inc
diff options
context:
space:
mode:
authorMarcello Coutinho <marcellocoutinho@gmail.com>2012-06-29 16:01:03 -0300
committermarcelloc <marcellocoutinho@gmail.com>2012-06-29 16:01:03 -0300
commit3c29c5cfe7a8844bb7bea25fe00663208e6cbe2e (patch)
tree1ee0378149b191c7f2923abd37212641cfcce45a /config/bacula-client/bacula-client.inc
parent6ca5ee6a94a5bb5687a7e70f0cf56f51d45fc9be (diff)
downloadpfsense-packages-3c29c5cfe7a8844bb7bea25fe00663208e6cbe2e.tar.gz
pfsense-packages-3c29c5cfe7a8844bb7bea25fe00663208e6cbe2e.tar.bz2
pfsense-packages-3c29c5cfe7a8844bb7bea25fe00663208e6cbe2e.zip
bacula-client - fix more errors, almost done
Diffstat (limited to 'config/bacula-client/bacula-client.inc')
-rw-r--r--config/bacula-client/bacula-client.inc154
1 files changed, 51 insertions, 103 deletions
diff --git a/config/bacula-client/bacula-client.inc b/config/bacula-client/bacula-client.inc
index fd6e2d65..d64dd06b 100644
--- a/config/bacula-client/bacula-client.inc
+++ b/config/bacula-client/bacula-client.inc
@@ -4,7 +4,8 @@
/*
bacula-client.inc
part of pfSense (http://www.pfSense.com)
- Copyright (C) 2012 Marcio Carlos
+ Copyright (C) 2012 Marcio Carlos Braga Antao
+ Copyright (C) 2012 Marcello Coutinho
All rights reserved.
Based on m0n0wall (http://m0n0.ch/wall)
@@ -40,59 +41,7 @@
function baculaclient_custom_php_install_command(){
global $g, $config;
- conf_mount_rw();
- unlink_if_exists("/usr/local/etc/rc.d/bacula-fd");
- $fd = fopen("/usr/local/etc/rc.d/bacula-client.sh", "w");
- if(!$fd) {
- log_error("Could not open /usr/local/etc/rc.d/bacula-client.sh for writing.");
- return;
- }
-
- // Ensure bacula-fd has a+rx
- exec("chmod a+rx /usr/local/etc/rc.d/bacula-client.sh");
-
- $baculafd = <<<EOD
-#!/bin/sh
-#
-# $FreeBSD: ports/sysutils/bacula-server/files/bacula-fd.in,v 1.7 2012/01/14 08:56:57 dougb Exp $
-#
-# PROVIDE: bacula_fd
-# REQUIRE: DAEMON
-# KEYWORD: shutdown
-#
-# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
-# to enable this service:
-#
-# bacula_fd_enable (bool): Set to NO by default.
-# Set it to YES to enable bacula_fd.
-# bacula_fd_flags (params): Set params used to start bacula_fd.
-#
-
-. /etc/rc.subr
-
-name="bacula_fd"
-rcvar=bacula_fd_enable
-command=/usr/local/sbin/bacula-fd
-
-load_rc_config $name
-
-: \${bacula_fd_enable="YES"}
-: \${bacula_fd_flags=" -u root -g wheel -v -c /usr/local/etc/bacula-fd.conf"}
-: \${bacula_fd_pidfile="/var/run/bacula-fd.9102.pid"}
-
-pidfile="\${bacula_fd_pidfile}"
-
-run_rc_command "\$1"
-
-EOD;
-
- fwrite($fd, $baculafd);
- fclose($fd);
- conf_mount_ro();
- if (!is_array($config['installedpackages']['baculaclient'])) {
- $config['installedpackages']['baculaclient']['config'][0]['ports'] = "9102";
- $config['installedpackages']['baculaclient']['config'][0]['jobs'] = "20";
- }
+ baculaclient_custom_php_write_config();
}
function baculaclient_custom_php_deinstall_command(){
@@ -104,63 +53,62 @@ function baculaclient_custom_php_deinstall_command(){
unlink_if_exists("/usr/local/etc/bacula-fd.conf");
// 2. Re-run sshd config generation script
- exec("/usr/local/etc/rc.d/bacula-client.sh stop");
+ exec("/usr/local/etc/rc.d/bacula-fd.sh stop");
conf_mount_ro();
-
}
function baculaclient_custom_php_write_config(){
global $g, $config;
- exec("/usr/local/etc/rc.d/bacula-client.sh stop");
- $fd = fopen("/usr/local/etc/bacula-fd.conf", "w");
- if(!$fd) {
- log_error("Could not open /usr/local/etc/bacula-fd.conf for writing.");
- return;
- }
- if (is_array($config['installedpackages']['baculaclient']['config'])){
- // Mount Read-write
- conf_mount_rw();
- // Make Head
- /*
- $baculaclient_conf = <<<EOD
- # Bacula File Daemon Configuration file
- # For Bacula release 5.2.6 (21 February 2012) -- pfsense 2.0.x
- # There is not much to change here except perhaps the
- # List Directors who are permitted to contact this File daemon
- EOD;
- */
- // Read config
- foreach ($config['installedpackages']['baculaclient']['config'][0]['row'] as $bc) {
- // create Director
- if (strcmp($bc['type'],"0")) {
- $baculaclient_conf .= "Director { \n\t Name = ".$bc['director']."-dir #".$bc['description']."\n\t Password = ".'"'.$bc['password'].'"'."\n}\n";
- }
- if (strcmp($bc['type'],"2")){
- $baculaclient_conf .= "Director { \n\t Name = ".$bc['director']."-mon #".$bc['description']."\n\t Password = ".'"'.$bc['password'].'"'."\n\t Monitor = yes\n}\n";
- }
- if (strcmp($bc['type'],"1")){
- $baculaclient_conf .= "Director { \n\t Name = ".$bc['director']."-dir #".$bc['description']."\n\t Password = ".'"'.$bc['password'].'"'."\n}\n";
- $baculaclient_conf .= "Director { \n\t Name = ".$bc['director']."-mon #".$bc['description']."\n\t Password = ".'"'.$bc['password'].'"'."\n\t Monitor = yes\n}\n";
- $LocalDirector = $bc['director'];
- }
+ conf_mount_rw();
+ //check config_file
+ $startup_file="/usr/local/etc/rc.d/bacula-fd";
+ if (file_exists($startup_file)){
+ $startup_script=file_get_contents($startup_file);
+ $startup_script=preg_replace("/NO/","YES",$startup_script);
+ file_put_contents("{$startup_file}.sh",$startup_script,LOCK_EX);
+ // Ensure bacula-fd has a+rx
+ exec("chmod a+rx {$startup_file}.sh");
}
-
+
+ //check config
+ if (is_array($config['installedpackages']['baculaclient']['config'])){
+ $baculaclient_conf="";
+ foreach ($config['installedpackages']['baculaclient']['config'] as $bc) {
+ // create Director
+ switch ($bc['type']){
+ case "Director":
+ $baculaclient_conf .= "Director { \n\t Name = {$bc['director']}-dir #{$bc['description']}\n\t Password = \"{$bc['password']}\"\n\t}\n";
+ Break;
+ case "Local":
+ $baculaclient_conf .= "Director { \n\t Name = {$bc['director']}-mon #{$bc['description']}\n\t Password = \"{$bc['password']}\"\n\t Monitor = yes\n\t}\n";
+ break;
+ case "Monitor":
+ $baculaclient_conf .= "Director { \n\t Name = {$bc['director']}-dir #{$bc['description']}\n\t Password = \"{$bc['password']}\"\n\t}\n";
+ $baculaclient_conf .= "Director { \n\t Name = {$bc['director']}-mon #{$bc['description']}\n\t Password = \"{$bc['password']}\"\n\t Monitor = yes\n\t}\n";
+ }
+ $LocalDirector = $bc['director'];
+ }
+
// create Messages
- $baculaclient_conf .= "Messages { \n\t Name = Standard \n\t director = ".$LocalDirector."-dir = all, !skipped, !restored\n\t \n}\n";
+ $baculaclient_conf .= "Messages { \n\t Name = Standard \n\t director = {$LocalDirector}-dir = all, !skipped, !restored\n\t \n}\n";
// create FielDaemon
-
- $port = $config['installedpackages']['baculaclient']['config'][0]['port'];
- $jobs = $config['installedpackages']['baculaclient']['config'][0]['jobs'];
- $baculaclient_conf .= "FileDaemon { \n\t Name = ".$filedaemon."-fd #\n\t FDport = ".$port."\n\t WorkingDirectory = /var/db/bacula\n\t Pid Directory = /var/run\n\t Maximun Concurrent Jobs = ".$jobs."\n \n}\n";
- fwrite($fd, $baculaclient_conf);
- fclose($fd);
+
+ if (is_array($config['installedpackages']['baculaclientfd']['config'])){
+ $port = $config['installedpackages']['baculaclientfd']['config'][0]['port'];
+ $jobs = $config['installedpackages']['baculaclientfd']['config'][0]['jobs'];
+ $filedaemon = $config['installedpackages']['baculaclientfd']['config'][0]['name'];
+ }
+ else{
+ $filedaemon="default";
+ $port="9102";
+ $jobs="20";
+ }
+ $baculaclient_conf .= "FileDaemon { \n\t Name = {$filedaemon}-fd #\n\t FDport = {$port}\n\t WorkingDirectory = /var/db/bacula\n\t Pid Directory = /var/run\n\t Maximun Concurrent Jobs = {$jobs}\n \n}\n";
+ file_put_contents("/usr/local/etc/bacula-fd.conf",$baculaclient_conf,LOCK_EX);
+ exec("/usr/local/etc/rc.d/bacula-fd.sh restart");
+ // Mount Read-only
+ conf_mount_ro();
+ }
}
-
- exec("/usr/local/etc/rc.d/bacula-client.sh start");
-}
-
- // Mount Read-only
- conf_mount_ro();
-
?> \ No newline at end of file