tbrehm
2009-10-27 9adcf583066a327f7386f80aa2e52638522c1c96
Added: FS#687 - Add a replication and mirroring mode for server settings 
22 files modified
98 ■■■■ changed files
interface/web/admin/form/server.tform.php 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/en_server.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/server_edit.php 37 ●●●●● patch | view | raw | blame | history
interface/web/admin/templates/server_edit_services.htm 6 ●●●●● patch | view | raw | blame | history
interface/web/dns/form/dns_soa.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/mail/form/mail_blacklist.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/mail/form/mail_content_filter.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/mail/form/mail_domain.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/mail/form/mail_get.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/mail/form/mail_transport.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/mail/form/spamfilter_blacklist.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/mail/form/spamfilter_users.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/mail/form/spamfilter_whitelist.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/sites/form/cron.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/sites/form/database.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/sites/form/ftp_user.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/sites/form/shell_user.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/sites/form/web_aliasdomain.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/sites/form/web_domain.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/sites/form/web_subdomain.tform.php 2 ●●● patch | view | raw | blame | history
server/lib/classes/modules.inc.php 5 ●●●●● patch | view | raw | blame | history
server/server.php 10 ●●●●● patch | view | raw | blame | history
interface/web/admin/form/server.tform.php
@@ -102,6 +102,12 @@
            'default'    => '0',
            'value'        => array(0 => 0,1 => 1)
        ),
        'mirror_server_id' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'TEXT',
            'default'    => '',
            'value'        => ''
        ),
        /*
        'update' => array (
            'datatype'    => 'INTEGER',
interface/web/admin/lib/lang/en_server.lng
@@ -8,4 +8,6 @@
$wb["db_server_txt"] = 'DB-Server';
$wb["vserver_server_txt"] = 'VServer-Server';
$wb["active_txt"] = 'Active';
$wb["mirror_server_id_txt"] = 'Is mirror of Server';
$wb["- None -"] = '- None -';
?>
interface/web/admin/server_edit.php
@@ -46,8 +46,41 @@
// Loading classes
$app->uses('tpl,tform,tform_actions');
$app->load('tform_actions');
// let tform_actions handle the page
$app->tform_actions->onLoad();
class page_action extends tform_actions {
    function onShowEnd() {
        global $app, $conf;
        // Getting Servers
        $sql = "SELECT server_id,server_name FROM server WHERE 1 ORDER BY server_name";
        $mirror_servers = $app->db->queryAllRecords($sql);
        $mirror_server_select = '<option value="0">'.$app->tform->lng('- None -').'</option>';
        if(is_array($mirror_servers)) {
            foreach( $mirror_servers as $mirror_server) {
                $selected = ($mirror_server["server_id"] == $this->dataRecord['mirror_server_id'])?'SELECTED':'';
                $mirror_server_select .= "<option value='$mirror_server[server_id]' $selected>$mirror_server[server_name]</option>\r\n";
            }
        }
        $app->tpl->setVar("mirror_server_id",$mirror_server_select);
        parent::onShowEnd();
    }
    function onSubmit() {
        global $app;
        //* We do not want to mirror the the server itself
        if($this->id == $this->dataRecord['mirror_server_id']) $this->dataRecord['mirror_server_id'] = 0;
        parent::onSubmit();
    }
}
$page = new page_action;
$page->onLoad();
?>
interface/web/admin/templates/server_edit_services.htm
@@ -46,6 +46,12 @@
                    </div>
            </div>
      <div class="ctrlHolder">
        <label for="mirror_server_id">{tmpl_var name='mirror_server_id_txt'}</label>
        <select name="mirror_server_id" id="server_id" class="selectInput">
          {tmpl_var name='mirror_server_id'}
        </select>
      </div>
      <div class="ctrlHolder">
          <label for="active">{tmpl_var name='active_txt'}</label>
        <select name="active" id="active" class="selectInput formLengthBool">
                    {tmpl_var name='active'}
interface/web/dns/form/dns_soa.tform.php
@@ -62,7 +62,7 @@
            'datatype'    => 'INTEGER',
            'formtype'    => 'SELECT',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND dns_server = 1 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/mail/form/mail_blacklist.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/mail/form/mail_content_filter.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/mail/form/mail_domain.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/mail/form/mail_get.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/mail/form/mail_transport.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/mail/form/spamfilter_blacklist.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/mail/form/spamfilter_users.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/mail/form/spamfilter_whitelist.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/sites/form/cron.tform.php
@@ -62,7 +62,7 @@
            'datatype'    => 'INTEGER',
            'formtype'    => 'SELECT',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND web_server = 1 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/sites/form/database.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND db_server = 1 ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} AND db_server = 1 ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/sites/form/ftp_user.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/sites/form/shell_user.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/sites/form/web_aliasdomain.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/sites/form/web_domain.tform.php
@@ -72,7 +72,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND web_server = 1 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
interface/web/sites/form/web_subdomain.tform.php
@@ -63,7 +63,7 @@
            'formtype'    => 'SELECT',
            'default'    => '',
            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
                                        'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
                                        'keyfield'=> 'server_id',
                                        'valuefield'=> 'server_name'
                                     ),
server/lib/classes/modules.inc.php
@@ -84,7 +84,12 @@
        
        //* If its a multiserver setup
        if($app->db->dbHost != $app->dbmaster->dbHost) {
            if($conf["mirror_server_id"] > 0) {
                $sql = "SELECT * FROM sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = ".$conf["mirror_server_id"]." OR server_id = 0) ORDER BY datalog_id";
            } else {
            $sql = "SELECT * FROM sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = 0) ORDER BY datalog_id";
            }
            $records = $app->dbmaster->queryAllRecords($sql);
            foreach($records as $d) {
                
server/server.php
@@ -53,14 +53,17 @@
//* Load the server configuration
if($app->dbmaster->connect()) {
    // get the dalaog_id of the last performed record
    $server_db_record = $app->dbmaster->queryOneRecord("SELECT updated, config FROM server WHERE server_id = ".$conf["server_id"]);
    $server_db_record = $app->dbmaster->queryOneRecord("SELECT * FROM server WHERE server_id = ".$conf["server_id"]);
    $conf['last_datalog_id'] = (int)$server_db_record['updated'];
    $conf["mirror_server_id"] = (int)$server_db_record['mirror_server_id'];
    // Load the ini_parser
    $app->uses('ini_parser');
    // Get server configuration
    $conf["serverconfig"] = $app->ini_parser->parse_ini_string(stripslashes($server_db_record["config"]));
    // Set the loglevel
    $conf["log_priority"] = intval($conf["serverconfig"]["server"]["loglevel"]);
    unset($server_db_record);
}
@@ -89,7 +92,12 @@
if($app->db->connect() && $app->dbmaster->connect()) {
    // Check if there is anything to update
    if($conf["mirror_server_id"] > 0) {
        $tmp_rec = $app->dbmaster->queryOneRecord("SELECT count(server_id) as number from sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = ".$conf["mirror_server_id"]." OR server_id = 0)");
    } else {
    $tmp_rec = $app->dbmaster->queryOneRecord("SELECT count(server_id) as number from sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = 0)");
    }
    $tmp_num_records = $tmp_rec["number"];
    unset($tmp_rec);