Exemplo n.º 1
0
function ion_AdminServicesTabFields($params)
{
    $hostname = urlencode($params['domain']);
    $pid = ion_mcrypt($params['serviceid']);
    $fieldsarray = array();
    //-------------------Server ID
    $ion_sid = null;
    $result = select_query('ion_module', 'ion_sid', array('whmcs_sid' => $params['serviceid']));
    if (mysql_num_rows($result) > 0) {
        $ion_sid = mysql_fetch_array($result)[0];
        $hash_ion_sid = ion_mcrypt($ion_sid);
    }
    $sList = APIClient::serverList(ION_API);
    if (key($sList) == 'error') {
        return '';
    }
    $sl = '';
    foreach ($sList as $v) {
        if ($ion_sid == $v['server_id']) {
            $sl .= "<option selected='selected' value='{$v['server_id']}'>{$v['server_id']} - {$v[hostname]}</option>";
        } else {
            $sl .= "<option value='{$v['server_id']}'>{$v['server_id']} - {$v['hostname']}</option>";
        }
    }
    if (is_null($ion_sid)) {
        return array('Server List' => '<select name="ion_sid"><option value="0">None</option>' . $sl . '</select> <span style="color: red;">* Please select associated server</span>');
    }
    $fieldsarray['Associated Server'] = '<select name="ion_sid"  style="min-width: 300px;"><option value="0">None</option>' . $sl . '</select>';
    $clients = APIClient::resellerUserList(ION_API);
    $access = null;
    if (key($clients) !== 'error') {
        $cl = '';
        $ruid = '';
        $comment = '<span style="color:red;">* Required For Client VPN</span>';
        $result = select_query('ion_module', 'ruid,acl', array('ion_sid' => $ion_sid, 'whmcs_sid' => $params['serviceid']));
        if (mysql_num_rows($result) > 0) {
            $row = mysql_fetch_array($result, MYSQL_NUM);
            $ruid = $row[0];
            $acl = unserialize($row[1]);
            $fvpn = $acl['vpn'] ? 'checked' : '';
            $fsi = $acl['server_info'] ? 'checked' : '';
            $fsos = $acl['server_os'] ? 'checked' : '';
            $fgraph = $acl['bw_graph'] ? 'checked' : '';
            $frdns = $acl['rdns'] ? 'checked' : '';
            $fipmi = $acl['ipmi'] ? 'checked' : '';
            $fstatics = $acl['bw_statics'] ? 'checked' : '';
            $fip = $acl['ip'] ? 'checked' : '';
            $freboot = $acl['reboot'] ? 'checked' : '';
        }
        foreach ($clients as $v) {
            if ($ruid == $v['id']) {
                $comment = '';
                $cl .= "<option selected='selected' value='{$v['id']}'>{$v['id']} - {$v['email']}</option>";
            } else {
                $cl .= '<option value="' . $v['id'] . '">' . $v['id'] . ' - ' . $v['email'] . '</option>';
            }
        }
        $access = "<label for='ch_vpn'>VPN</label> <input type='checkbox' name='ch_vpn' id='ch_vpn' {$fvpn}> <label for='ch_ipmi'>IPMI</label> <input type='checkbox' name='ch_ipmi' id='ch_ipmi' {$fipmi}> <label for='ch_graph'>Bandwidth Graph</label> <input type='checkbox' name='ch_graph' id='ch_graph' {$fgraph}> <label for='ch_statics'>Bandwidth Statics</label> <input type='checkbox' name='ch_statics' id='ch_statics' {$fstatics}> <label for='ch_os'>OS</label> <input type='checkbox' name='ch_os' id='ch_os' {$fsos}> <label for='ch_ip'>IP</label> <input type='checkbox' name='ch_ip' id='ch_ip' {$fip}> <label for='ch_reboot'>Reboot</label> <input type='checkbox' name='ch_reboot' id='ch_reboot' {$freboot}> <label for='ch_info'>Server Info</label> <input type='checkbox' name='ch_info' id='ch_info' {$fsi}> <label for='ch_rdns'>rDNS</label> <input type='checkbox' name='ch_rdns' id='ch_rdns' {$frdns}> ";
        $fieldsarray['Reseller User ID'] = '<select name="ruid"  style="min-width: 300px;"><option value="0">None</option>' . $cl . '</select> ' . $comment;
    }
    echo '3';
    $serverInfo = APIClient::serverInfo(ION_API, array('serverID' => $ion_sid));
    if (key($serverInfo) != 'error') {
        $fieldsarray['Server Specification'] = "<table class='datatable' width='40%'><tbody><tr><th width='30%'>Name</th><th>Value</th></tr></tbody><tr><td>Hostname:</td><td>" . ion_metafilter($serverInfo['hostname']) . "</td></tr><tr><td>Chassis</td><td>" . ion_metafilter($serverInfo['chassis']) . "</td></tr><tr><td>Main board</td><td>" . ion_metafilter($serverInfo['mainboard']) . "</td></tr><tr><td>Processor</td><td>" . ion_metafilter($serverInfo['processor']) . "</td></tr><tr><td>Memory</td><td>" . ion_metafilter($serverInfo['memory']) . "</td></tr><tr><td>Total Memory</td><td>" . ion_metafilter($serverInfo['total_memory']) . "</td></tr><tr><td>Internal Hard Drive:</td><td>" . ion_metafilter($serverInfo['drive0']) . "</td></tr><tr><td>Drive1</td><td>" . ion_metafilter($serverInfo['drive1']) . "</td></tr><tr><td>Drive2</td><td>" . ion_metafilter($serverInfo['drive2']) . "</td></tr><tr><td>Drive3</td><td>" . ion_metafilter($serverInfo['drive3']) . "</td></tr><tr><td>Drive4</td><td>" . ion_metafilter($serverInfo['drive4']) . "</td></tr><tr><td>Raid Level</td><td>" . ion_metafilter($serverInfo['raid_level']) . "</td></tr><tr><td>Uplink</td><td>" . ion_metafilter($serverInfo['uplink']) . "</td></tr></table>";
    }
    $os = APIClient::serverOS(ION_API, array('serverID' => $ion_sid));
    if (key($os) != 'error') {
        $fieldsarray['Server OS'] = !is_array($os) ? '<b>' . $os . '</b>' : '';
    }
    $ip = APIClient::serverAllIPs(ION_API, array('serverID' => $ion_sid));
    if (key($ip) != 'error') {
        $ips = '';
        foreach ($ip as $v) {
            $ips .= '<tr><td>' . $v . '</td></tr>';
        }
        $fieldsarray['Server IPs'] = $ips != '' ? '<table class="datatable" width="50%"><tbody><tr><th width="30%">IP</th></tr></tbody>' . $ips . '</table>' : '';
    }
    $bws = APIClient::serverBwStatics(ION_API, array('serverID' => $ion_sid, 'period' => 'current'));
    if (key($clients) != 'error') {
        $bws['method'] = $bws['method'] == '95th' ? '95th Percentile' : $bws['method'];
        $pbws = APIClient::serverBwStatics(ION_API, array('serverID' => $ion_sid, 'period' => 'prev'));
        $pbws['method'] = $pbws['method'] == '95th' ? '95th Percentile' : $pbws['method'];
        $bws['95th_outbound'] = formatBytes($bws['95th_outbound']);
        $pbws['95th_outbound'] = formatBytes($pbws['95th_outbound']);
        $bws['95th_inbound'] = formatBytes($bws['95th_inbound']);
        $pbws['95th_inbound'] = formatBytes($pbws['95th_inbound']);
        $bws['outbound_traffic'] = formatBytes($bws['outbound_traffic']);
        $pbws['outbound_traffic'] = formatBytes($pbws['outbound_traffic']);
        $bws['inbound_traffic'] = formatBytes($bws['inbound_traffic']);
        $pbws['inbound_traffic'] = formatBytes($pbws['inbound_traffic']);
        $fieldsarray['Bandwidth Statics'] = "<table class=\"datatable\" width='100%'><tr><th width='30%' ></th><th width='30%'>Current</th><th width='30%'>Previous</th></tr><tr><td>Date Range:</td><td>{$bws['date_range']}</td><td>{$pbws['date_range']}</td></tr><tr><td>Included Bandwidth:</td><td>{$bws['included_bandwidth']}</td><td>{$pbws['included_bandwidth']}</td></tr><tr><td>Inbound Traffic:</td><td>{$bws['inbound_traffic']}</td><td>{$pbws['inbound_traffic']}</td></tr><tr><td>Outbound Traffic:</td><td>{$bws['outbound_traffic']}</td><td>{$pbws['outbound_traffic']}</td></tr><tr><td>95th Inbound:</td><td>{$bws['95th_inbound']}</td><td>{$pbws['95th_inbound']}</td></tr><tr><td>95th Outbound:</td><td>{$bws['95th_outbound']}</td><td>{$pbws['95th_outbound']}</td></tr><tr><td>Overage Rate:</td><td>{$bws['overage_rate']}</td><td>{$pbws['overage_rate']}</td></tr></table>";
    }
    $fieldsarray['IPMI Console'] = '<b> <input type="button" onclick="location.href=\'../modules/servers/ion/ipmi.php?hostname=' . $hostname . '&sid=' . $hash_ion_sid . '\'" value="Launch IPMI Console"> * VPN Connection is required.</b>';
    $fieldsarray['Bandwidth Graph'] = '<br><script>function showGraph() {var periodel = document.getElementById("period");var gimg = document.getElementById("gimg");var url;var period = periodel.options[periodel.selectedIndex].value;gimg.src ="../modules/servers/ion/graph.php?pid=' . $pid . '&title=' . $hostname . '&period=" + period;}</script><img id="gimg" width="65%" src="../modules/servers/ion/graph.php?period=hour&title=' . $hostname . '&pid=' . $pid . '"><br><br><b>Period:</b> <select style="width: 200px;" id="period" onchange="showGraph()"><option value="hour">Hour</option><option value="day">Day</option><option value="week">Week</option><option value="month">Month</option></select><br><br>';
    if (!is_null($access)) {
        $fieldsarray['Access List'] = $access;
    }
    return $fieldsarray;
}