summaryrefslogtreecommitdiff
path: root/innerSystemCatalog.php
blob: 95b5c2524095b8ac457fa429e83985c71d9fc596 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
 * View of the system catalog selected postgresql server
 *
 * PHP versions 4 and 5
 *
 * LICENSE: Permission to use, copy, modify, and distribute this software and
 * its documentation for any purpose and without fee is hereby
 * granted, provided that the above copyright notice appear in all
 * copies and that both that copyright notice and this permission
 * notice appear in supporting documentation, and that the name of the
 * author not be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission. The author makes no representations about the
 * suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * @author     Ryuma Ando <[email protected]>
 * @copyright  2003-2015 PgPool Global Development Group
 * @version    CVS: $Id$
 */

require_once('common.php');

/* --------------------------------------------------------------------- */
/* InnerSystemCatalog.php                                                */
/* --------------------------------------------------------------------- */

// Check login status
if (!isset($_SESSION[SESSION_LOGIN_USER])) {
    exit();
}

// Get node num
$pgCatalog = pg_escape_string($_GET['catalog']);
$nodeNum = $_GET['num'];

if ($pgCatalog == '') {
    return;
}

// Get Data From Database
$params = readConfigParams(array(
    'backend_hostname', 'backend_port', 'backend_weight',
    'health_check_user', 'health_check_password'
));
$conn = openDBConnection(array(
    'host'     => $params['backend_hostname'][$nodeNum],
    'port'     => $params['backend_port'][$nodeNum],
    'dbname'   => 'template1',
    'user'     => $params['health_check_user'],
    'password' => $params['health_check_password'],
    'connect_timeout' => _PGPOOL2_PG_CONNECT_TIMEOUT,
));

$rs = execQuery($conn, 'SHOW pool_status');

if (! pg_result_status($rs) == PGSQL_TUPLES_OK) {
    $rs = execQuery($conn, "SELECT * FROM $pgCatalog");
    $tpl->assign('catalog', $pgCatalog);

} else {
    $tpl->assign('catalog', 'pool_status');
}

if (! pg_result_status($rs) == PGSQL_TUPLES_OK) {
    $errorCode = 'e8001';
    $tpl->assign('errorCode', $errorCode);
    $tpl->display('innerError.tpl');
    exit();
}

$results = pg_fetch_all($rs);

closeDBConnection($conn);

// Set vars
$tpl->assign('hostname', $params['backend_hostname'][$nodeNum]);
$tpl->assign('port',     $params['backend_port'][$nodeNum]);
$tpl->assign('results', $results);
$tpl->assign('nodeNum', $nodeNum);

// Display
$tpl->display('innerSystemCatalog.tpl');