function renderSLBEntityCell($cell, $highlighted = FALSE)
{
    $class = "slbcell realm-{$cell['realm']} id-{$cell['id']}";
    $a_class = $highlighted ? 'highlight' : '';
    echo "<table class='{$class}'>";
    switch ($cell['realm']) {
        case 'object':
            echo "<tr><td><a class='{$a_class}' href='index.php?page=object&object_id={$cell['id']}'>{$cell['dname']}</a>";
            echo "</td></tr><tr><td>";
            printImageHREF('LB');
            echo "</td></tr>";
            break;
        case 'ipv4vs':
            echo "<tr><td rowspan=3 width='5%'>";
            printImageHREF('VS');
            echo "</td><td>";
            echo "<a class='{$a_class}' href='index.php?page=ipv4vs&vs_id={$cell['id']}'>";
            echo $cell['dname'] . "</a></td></tr><tr><td>";
            echo $cell['name'] . '</td></tr>';
            break;
        case 'ipvs':
            echo "<tr><td rowspan=3 width='5%'>";
            printImageHREF('VS');
            echo "</td><td>";
            echo "<a class='{$a_class}' href='index.php?page=ipvs&vs_id={$cell['id']}'>";
            echo $cell['name'] . "</a></td></tr>";
            break;
        case 'ipv4rspool':
            echo "<tr><td>";
            echo "<a class='{$a_class}' href='index.php?page=ipv4rspool&pool_id={$cell['id']}'>";
            echo !strlen($cell['name']) ? "ANONYMOUS pool [{$cell['id']}]" : stringForTD($cell['name']);
            echo "</a></td></tr><tr><td>";
            printImageHREF('RS pool');
            if ($cell['rscount']) {
                echo ' <small>(' . $cell['rscount'] . ')</small>';
            }
            echo "</td></tr>";
            break;
    }
    echo "<tr><td>";
    echo count($cell['etags']) ? "<small>" . serializeTags($cell['etags']) . "</small>" : '&nbsp;';
    echo "</td></tr></table>";
}
Пример #2
0
function printTagTRs($cell, $baseurl = '')
{
    if (getConfigVar('SHOW_EXPLICIT_TAGS') == 'yes' and count($cell['etags'])) {
        echo "<tr><th width='50%' class=tagchain>Explicit tags:</th><td class=tagchain>";
        echo serializeTags($cell['etags'], $baseurl) . "</td></tr>\n";
    }
    if (getConfigVar('SHOW_IMPLICIT_TAGS') == 'yes' and count($cell['itags'])) {
        echo "<tr><th width='50%' class=tagchain>Implicit tags:</th><td class=tagchain>";
        echo serializeTags($cell['itags'], $baseurl) . "</td></tr>\n";
    }
    if (getConfigVar('SHOW_AUTOMATIC_TAGS') == 'yes' and count($cell['atags'])) {
        echo "<tr><th width='50%' class=tagchain>Automatic tags:</th><td class=tagchain>";
        echo serializeTags($cell['atags']) . "</td></tr>\n";
    }
}
Пример #3
0
 public function dispatch()
 {
     header('Content-Type: text/html; charset=UTF-8');
     echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . "\n";
     echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">' . "\n";
     echo "<head><title>RackTables: access denied</title>\n";
     printPageHeaders();
     echo "</head><body>";
     global $pageno, $tabno, $user_given_tags, $target_given_tags, $auto_tags, $expl_tags, $impl_tags;
     echo "<table border=1 cellspacing=0 cellpadding=3 width='50%' align=center>\n";
     echo '<tr><th colspan=2><h3>' . getImageHREF('DENIED') . ' access denied ';
     echo getImageHREF('DENIED') . '</h3></th></tr>';
     echo "<tr><th width='50%' class=tagchain>User given tags:</th><td class=tagchain>";
     echo serializeTags($user_given_tags) . "&nbsp;</td></tr>\n";
     echo "<tr><th width='50%' class=tagchain>Target given tags:</th><td class=tagchain>";
     echo serializeTags($target_given_tags) . "&nbsp;</td></tr>\n";
     echo "<tr><th width='50%' class=tagchain>Effective explicit tags:</th><td class=tagchain>";
     echo serializeTags($expl_tags) . "&nbsp;</td></tr>\n";
     echo "<tr><th width='50%' class=tagchain>Effective implicit tags:</th><td class=tagchain>";
     echo serializeTags($impl_tags) . "&nbsp;</td></tr>\n";
     echo "<tr><th width='50%' class=tagchain>Automatic tags:</th><td class=tagchain>";
     echo serializeTags($auto_tags) . "&nbsp;</td></tr>\n";
     echo "<tr><th width='50%' class=tdright>Requested page:</th><td class=tdleft>{$pageno}</td></tr>\n";
     echo "<tr><th width='50%' class=tdright>Requested tab:</th><td class=tdleft>{$tabno}</td></tr>\n";
     echo "<tr><td colspan=2 align=center>Click <a href='index.php?logout'>here</a> to logout.</td></tr>\n";
     echo "</table>\n";
     echo "</body></html>";
 }
function renderIPVSConvert($vs_id)
{
    $old_vs_list = callHook('getVSIDsByGroup', $vs_id);
    $grouped = array();
    $used_tags = array();
    foreach ($old_vs_list as $old_vs_id) {
        $vsinfo = spotEntity('ipv4vs', $old_vs_id);
        foreach ($vsinfo['etags'] as $taginfo) {
            $used_tags[$taginfo['id']] = $taginfo;
        }
        $port_key = $vsinfo['proto'] . '-' . $vsinfo['vport'];
        $grouped[$port_key][] = $vsinfo;
    }
    startPortlet("Found " . count($old_vs_list) . " matching VS");
    printOpFormIntro('convert');
    if (count($used_tags)) {
        echo '<p>Assign these tags to VS group:</p>';
        foreach ($used_tags as $taginfo) {
            echo '<p><label><input type=checkbox checked name="taglist[]" value="' . htmlspecialchars($taginfo['id'], ENT_QUOTES) . '""> ' . serializeTags(array($taginfo)) . '<label>';
        }
    }
    echo '<p>Import settings of these VS:</p>';
    echo '<table align=center><tr>';
    foreach ($grouped as $port_key => $list) {
        echo '<th>' . $port_key . '</th>';
    }
    echo '</tr><tr>';
    foreach ($grouped as $port_key => $list) {
        echo '<td><table>';
        foreach ($list as $vsinfo) {
            echo '<tr><td><input type=checkbox name="vs_list[]" checked value="' . htmlspecialchars($vsinfo['id'], ENT_QUOTES) . '"></td><td>';
            renderSLBEntityCell($vsinfo);
            echo '</td></tr>';
        }
        echo '</table></td>';
    }
    echo '</tr></table>';
    printImageHREF('next', "Import settings of the selected services", TRUE);
    echo '</form>';
    finishPortlet();
}
Пример #5
0
function render8021QStatus()
{
    global $dqtitle;
    echo '<table border=0 class=objectview cellspacing=0 cellpadding=0>';
    echo '<tr valign=top><td class=pcleft width="40%">';
    if (!count($vdlist = getVLANDomainStats())) {
        startPortlet('no VLAN domains');
    } else {
        startPortlet('VLAN domains (' . count($vdlist) . ')');
        echo '<table cellspacing=0 cellpadding=5 align=center class=widetable>';
        echo '<tr><th>description</th><th>VLANs</th><th>switches</th><th>';
        echo getImageHREF('net') . '</th><th>ports</th></tr>';
        $stats = array();
        $columns = array('vlanc', 'switchc', 'ipv4netc', 'portc');
        foreach ($columns as $cname) {
            $stats[$cname] = 0;
        }
        foreach ($vdlist as $vdom_id => $dominfo) {
            foreach ($columns as $cname) {
                $stats[$cname] += $dominfo[$cname];
            }
            echo '<tr align=left><td>' . mkA(niftyString($dominfo['description']), 'vlandomain', $vdom_id) . '</td>';
            foreach ($columns as $cname) {
                echo '<td>' . $dominfo[$cname] . '</td>';
            }
            echo '</tr>';
        }
        if (count($vdlist) > 1) {
            echo '<tr align=left><td>total:</td>';
            foreach ($columns as $cname) {
                echo '<td>' . $stats[$cname] . '</td>';
            }
            echo '</tr>';
        }
        echo '</table>';
    }
    finishPortlet();
    echo '</td><td class=pcleft width="40%">';
    if (!count($vstlist = listCells('vst'))) {
        startPortlet('no switch templates');
    } else {
        startPortlet('switch templates (' . count($vstlist) . ')');
        echo '<table cellspacing=0 cellpadding=5 align=center class=widetable>';
        echo '<tr><th>description</th><th>rules</th><th>switches</th></tr>';
        foreach ($vstlist as $vst_id => $vst_info) {
            echo '<tr align=left valign=top><td>';
            echo mkA(niftyString($vst_info['description']), 'vst', $vst_id);
            if (count($vst_info['etags'])) {
                echo '<br><small>' . serializeTags($vst_info['etags']) . '</small>';
            }
            echo '</td>';
            echo "<td>{$vst_info['rulec']}</td><td>{$vst_info['switchc']}</td></tr>";
        }
        echo '</table>';
    }
    finishPortlet();
    echo '</td><td class=pcright>';
    startPortlet('deploy queues');
    $total = 0;
    echo '<table border=0 cellspacing=0 cellpadding=3 width="100%">';
    foreach (get8021QDeployQueues() as $qcode => $qitems) {
        echo '<tr><th width="50%" class=tdright>' . mkA($dqtitle[$qcode], 'dqueue', $qcode) . ':</th>';
        echo '<td class=tdleft>' . count($qitems) . '</td></tr>';
        $total += count($qitems);
    }
    echo '<tr><th width="50%" class=tdright>Total:</th>';
    echo '<td class=tdleft>' . $total . '</td></tr>';
    echo '</table>';
    finishPortlet();
    echo '</td></tr></table>';
}
function renderNetCellForAlloc($cell, $needed_mask = NULL)
{
    if (empty($cell['spare_ranges']) and $cell['kidc'] == 0 and $cell['mask'] < 31) {
        $cell['spare_ranges'][$cell['mask'] + 1][] = $cell['ip_bin'];
        $cell['spare_ranges'][$cell['mask'] + 1][] = ip_last($cell) & ip4_mask($cell['mask'] + 1);
    }
    $ranges = array_keys($cell['spare_ranges']);
    sort($ranges, SORT_NUMERIC);
    foreach ($ranges as &$range) {
        $suffix = count($cell['spare_ranges'][$range]) <= 1 ? '' : '<small> x ' . count($cell['spare_ranges'][$range]) . '</small>';
        $range = '<a href="' . makeHref(array('page' => 'ipv4space', 'tab' => 'newrange', 'set-prefix' => ip_format($cell['spare_ranges'][$range][0]) . '/' . $range)) . '">/' . $range . '</a>' . $suffix;
    }
    $spare_cidr = NULL;
    if (isset($needed_mask)) {
        for ($i = $needed_mask; $i > 0; $i--) {
            if (!empty($cell['spare_ranges'][$i])) {
                $spare_cidr = ip_format($cell['spare_ranges'][$i][0]) . '/' . $needed_mask;
                break;
            }
        }
    }
    echo "<table class='slbcell vscell'><tr><td rowspan=3 width='5%'>";
    printImageHREF('NET');
    echo '</td>';
    echo "<td><a href='index.php?page={$cell['realm']}&id={$cell['id']}'>{$cell['ip']}/{$cell['mask']}</a>";
    echo getRenderedIPNetCapacity($cell);
    echo '</td></tr>';
    echo "<tr><td>";
    if (strlen($cell['name'])) {
        echo "<strong>" . niftyString($cell['name']) . "</strong>";
    } else {
        echo "<span class=sparenetwork>no name</span>";
    }
    // render VLAN
    echo '<div class="vlan">' . implode(', ', $ranges) . '</div>';
    renderNetVLAN($cell);
    echo "</td></tr>";
    echo '<tr><td>';
    echo count($cell['etags']) ? "<small>" . serializeTags($cell['etags']) . "</small>" : '&nbsp;';
    if (isset($spare_cidr)) {
        echo "<div class='vlan'><a href=\"" . makeHref(array('page' => 'ipv4space', 'tab' => 'newrange', 'set-prefix' => $spare_cidr)) . "\">Allocate /{$needed_mask}</a></div>";
    }
    echo "</td></tr></table>";
}
Пример #7
0
function lm_renderObjectCell($cell)
{
    echo "<table class='slbcell vscell'><tr><td rowspan=2 width='5%'>";
    printImageHREF('OBJECT');
    echo '</td><td>';
    echo mkA('<strong>' . niftyString($cell['dname']) . '</strong>', 'object', $cell['id']);
    echo '</td></tr><tr><td>';
    echo count($cell['etags']) ? "<small>" . serializeTags($cell['etags']) . "</small>" : '&nbsp;';
    echo "</td></tr></table>";
}
function renderMyAccount()
{
    global $remote_username, $remote_displayname, $expl_tags, $impl_tags, $auto_tags;
    startPortlet('Current user info');
    echo '<div style="text-align: left; display: inline-block;">';
    echo "<table>";
    echo "<tr><th>Login:</th><td>{$remote_username}</td></tr>\n";
    echo "<tr><th>Name:</th><td>{$remote_displayname}</td></tr>\n";
    echo "<tr><th>Explicit tags:</th><td>" . serializeTags(getExplicitTagsOnly($expl_tags)) . "</td></tr>\n";
    echo "<tr><th>Implicit tags:</th><td>" . serializeTags($impl_tags) . "</td></tr>\n";
    echo "<tr><th>Automatic tags:</th><td>" . serializeTags($auto_tags) . "</td></tr>\n";
    echo '</table></div>';
}