function build(){ $sock=new sockets(); $users=new usersMenus(); $ini=new Bs_IniHandler(); $_SESSION["WIZARD_CYRUS"]["LOCAL_ARTICA_SERVER"]=$_GET["LOCAL_ARTICA_SERVER"]; $ini->_params["REPLICA"]["servername"]=$_SESSION["WIZARD_CYRUS"]["REMOTE_ARTICA_SERVER"]; $ini->_params["REPLICA"]["artica_port"]=$_SESSION["WIZARD_CYRUS"]["REMOTE_ARTICA_SERVER_PORT"]; $ini->_params["REPLICA"]["username"]=$_SESSION["WIZARD_CYRUS"]["REMOTE_ARTICA_USR"]; $ini->_params["REPLICA"]["password"]=$_SESSION["WIZARD_CYRUS"]["REMOTE_ARTICA_PASS"]; $ini->_params["REPLICA"]["master_ip"]=$_SESSION["WIZARD_CYRUS"]["LOCAL_ARTICA_SERVER"]; $sock=new sockets(); $sock->SaveConfigFile($ini->toString(),"CyrusClusterReplicaInfos"); $cyrus=new cyrus_cluster(); if(!$cyrus->notify_replica()){ $tpl=new templates(); echo $tpl->javascript_parse_text("{failed}:$cyrus->error_text"); $sock->SET_INFO("EnableCyrusMasterCluster",0); $sock->SET_INFO("CyrusClusterPort","2005"); $sock->SET_INFO("CyrusClusterID",1); return; } $sock->SET_INFO("EnableCyrusMasterCluster",1); $sock->SET_INFO("CyrusClusterPort","2005"); $sock->SET_INFO("CyrusClusterID",1); }
function DelteReplica() { $cyrus = new cyrus_cluster(); if (!$cyrus->notify_disable_replica()) { $tpl = new templates(); echo $tpl->javascript_parse_text("{failed}:{$cyrus->error_text}"); return; } $sock = new sockets(); $sock->SET_INFO("EnableCyrusMasterCluster", 0); $sock->getFrameWork('cmd.php?cyrus-reconfigure=yes&force=yes'); }
function cyrus_cluster_receive() { $array = unserialize(base64_decode($_POST["cyrus-cluster"])); $users = new usersMenus(); $sock = new sockets(); $fqdn = $users->fqdn; if ($fqdn == null) { $fqdn = $users->hostname; } $_GET["admin"] = $array["admin"]; $_GET["pass"] = $array["pass"]; if (!islogged(1, 1)) { writelogs("Bad username and password", __FUNCTION__, __FILE__, __LINE__); $return["RESULT"] = "{$fqdn}: {$array["admin"]}: {username}/{password} {failed}"; $return["REPLY"] = false; echo base64_encode(serialize($return)); return; } writelogs("Username and password OK", __FUNCTION__, __FILE__, __LINE__); $users = new usersMenus(); if (!$users->cyrus_sync_installed) { $return["RESULT"] = "{$fqdn}: {sync_tools_not_compiled}"; $return["REPLY"] = false; echo base64_encode(serialize($return)); return; } if ($sock->GET_INFO("CyrusEnableImapMurderedFrontEnd") == 1) { $return["RESULT"] = "{$fqdn}: {already_a_murder_frontend}"; $return["REPLY"] = false; echo base64_encode(serialize($return)); return; } if (!function_exists("curl_init")) { $return["RESULT"] = "{$fqdn}:{error_php_curl}"; $return["REPLY"] = false; echo base64_encode(serialize($return)); return; } writelogs("Success pass tests...", __FUNCTION__, __FILE__, __LINE__); if ($array["cmd"] == "tests") { $return["RESULT"] = "{$fqdn}: {success}"; $return["REPLY"] = true; echo base64_encode(serialize($return)); return; } if ($array["cmd"] == "connect") { writelogs("Try to be a replica {$array["master_ip"]}:{$array["master_artica_port"]}", __FUNCTION__, __FILE__, __LINE__); $cyrus_cluster = new cyrus_cluster(); if (!$cyrus_cluster->test_remote_server($array["master_ip"], $array["master_artica_port"], $array["ldap_admin"], $array["ldap_password"])) { writelogs("Unable to call master server {$array["master_ip"]}:{$cyrus_cluster->error_text}", __FUNCTION__, __FILE__, __LINE__); $return["RESULT"] = $cyrus_cluster->error_text; $return["REPLY"] = false; echo base64_encode(serialize($return)); return; } writelogs("Call master server {$array["master_ip"]}: success", __FUNCTION__, __FILE__, __LINE__); $ini = new Bs_IniHandler(); $ini->set("REPLICA", "servername", $array["master_ip"]); $ini->set("REPLICA", "username", $array["ldap_admin"]); $ini->set("REPLICA", "password", $array["ldap_password"]); $ini->set("REPLICA", "artica_port", $array["master_artica_port"]); $ini->set("REPLICA", "suffix", $array["suffix"]); $sock->SaveConfigFile($ini->toString(), "CyrusReplicaLDAPConfig"); $sock->SET_INFO("EnableCyrusReplicaCluster", 1); $sock->SET_INFO("EnableCyrusMasterCluster", 0); $sock->SET_INFO("CyrusReplicaClusterPort", $array["master_cyrus_port"]); $sock->SET_INFO("CyrusReplicaClusterServer", $array["master_ip"]); $sock->getFrameWork('cmd.php?cyrus-reconfigure=yes&force=yes'); writelogs("Success Enable replica", __FUNCTION__, __FILE__, __LINE__); $return["RESULT"] = "{success}"; $return["REPLY"] = true; echo base64_encode(serialize($return)); writelogs("Success to be a replica", __FUNCTION__, __FILE__, __LINE__); $sock->getFrameWork('cmd.php?cyrus-reconfigure=yes&force=yes'); return; } if ($array["cmd"] == "disconnect") { writelogs("Try to disable replica", __FUNCTION__, __FILE__, __LINE__); $sock->SET_INFO("EnableCyrusReplicaCluster", 0); writelogs("Success disable replica", __FUNCTION__, __FILE__, __LINE__); $sock->getFrameWork('cmd.php?cyrus-reconfigure=yes&force=yes'); } if ($array["cmd"] == "isReplica") { if ($sock->GET_INFO("EnableCyrusReplicaCluster") == 1) { $return["RESULT"] = "{success}"; $return["REPLY"] = true; } else { $return["RESULT"] = "{failed}: not a replica"; $return["REPLY"] = false; } echo base64_encode(serialize($return)); } }