Initial import
This commit is contained in:
77
one-api/application/controllers/tools/Replication.php
Normal file
77
one-api/application/controllers/tools/Replication.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
class Replication extends MY_Controller
|
||||
{
|
||||
function __construct() {
|
||||
parent::__construct();
|
||||
$this->db = $this->load->database("regional", true);
|
||||
}
|
||||
function index() {
|
||||
echo "Replication API";
|
||||
}
|
||||
function monitor() {
|
||||
//master
|
||||
$sql = "show master status";
|
||||
$qry = $this->db->query($sql);
|
||||
if (! $qry) {
|
||||
echo json_encode( array("status" => "ERR" , "message" => "Errror Master Status : " . print_r($this->db->error(),true) ) );
|
||||
exit;
|
||||
}
|
||||
$rows = $qry->result_array();
|
||||
$master = array();
|
||||
$master["status"] = "Running";
|
||||
$master["file"] = $rows[0]["File"];
|
||||
$master["position"] = $rows[0]["Position"];
|
||||
|
||||
$sql = "select * from m_branch where m_branchIsActive = 'Y'";
|
||||
$qry = $this->db->query($sql);
|
||||
if (! $qry ) {
|
||||
echo json_encode( array("status" => "ERR" , "message" => "Error M_Branch : " . print_r($this->db->error(),true) ) );
|
||||
exit;
|
||||
}
|
||||
$rows = $qry->result_array();
|
||||
$slave = array();
|
||||
foreach($rows as $r) {
|
||||
$branchCode = $r["M_BranchCode"];
|
||||
$branchName = $r["M_BranchName"];
|
||||
$branchIP = $r["M_BranchIPAddress"];
|
||||
$slave[] = array("code" => $branchCode, "name" => $branchName );
|
||||
$idx = count($slave) - 1;
|
||||
$url = "http://$branchIP/one-api/tools/replication/slave";
|
||||
$get_rst = $this->get($url);
|
||||
$rst = json_decode($get_rst,true);
|
||||
if ($rst["status"] == "ERR" || ! $rst) {
|
||||
$slave[$idx] = array_merge($slave[$idx], array("status"=>"Connection Issue (" . $rst["message"] . ")",
|
||||
"Behind" => -1, "Table" => array(), "MasterLogFile"=> "", "ReadPosition" => 0 ));
|
||||
} else {
|
||||
$slave[$idx] = array_merge($slave[$idx], $rst);
|
||||
}
|
||||
}
|
||||
$result = array( "status" => "OK" , "master" => $master , "slave" => $slave) ;
|
||||
echo json_encode($result);
|
||||
}
|
||||
function get($url) {
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
$result = curl_exec($ch);
|
||||
if ( curl_error($ch) != "" ) {
|
||||
$result = json_encode(array("status" => "ERR", "message" => curl_error($ch) ));
|
||||
|
||||
}
|
||||
curl_close($ch);
|
||||
return $result;
|
||||
}
|
||||
function post($url,$data) {
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
|
||||
'Content-Type: application/json',
|
||||
'Content-Length: ' . strlen($data))
|
||||
);
|
||||
$result = curl_exec($ch);
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user