예제 #1
0
파일: ajax.php 프로젝트: hshoghi/cms
$repmgr = new repmgr($db_host, true);
if (!$repmgr || !$repmgr->initialized) {
    die('no cluster installed');
}
$params = count($_POST) ? $_POST : (count($_GET) ? $_GET : die('no parameters'));
switch ($params['func']) {
    case 'kill':
        $standby_node = $params['a'];
        $pid = $params['b'];
        $output = $repmgr->remote_kill($standby_node, $pid);
        $json = array('exit_status' => $exit_status = array_pop($output), 'success' => $exit_status == '0', 'output' => is_array($output) ? implode('\\n', $output) : $output, 'ps' => $repmgr->remote_ps($standby_node));
        echo json_encode($json);
        break;
    case 'start':
        $standby_node = $params['a'];
        $output = $repmgr->remote_start($standby_node);
        $json = array('exit_status' => $exit_status = array_pop($output), 'success' => $exit_status == '0', 'output' => is_array($output) ? implode('\\n', $output) : $output, 'ps' => $repmgr->remote_ps($standby_node));
        echo json_encode($json);
        break;
    case 'promote':
        #still experimental
        $new_primary_node = $params['a'];
        $output = $repmgr->promote($new_primary_node);
        $json = array('output' => $output);
        echo json_encode($json);
        break;
    case 'add_hard':
        $node = $params['a'];
        $output = $repmgr->add($node);
        $json = array('output' => $output);
        echo json_encode($json);