Пример #1
0
function removePortFromVS()
{
    $port = array('proto' => assertStringArg('proto'), 'vport' => assertUIntArg('port', TRUE));
    $vsinfo = spotEntity('ipvs', assertUIntArg('vs_id'));
    amplifyCell($vsinfo);
    $used = 0;
    foreach (getTriplets($vsinfo) as $triplet) {
        if (isPortEnabled($port, $triplet['ports'])) {
            $used++;
        }
    }
    if (usePreparedDeleteBlade('VSPorts', array('vs_id' => $vsinfo['id']) + $port)) {
        showSuccess("Port removed" . ($used ? ", it was binded with {$used} SLBs" : ''));
    } else {
        showNotice("Nothing changed");
    }
}
function renderSLBTriplets2($cell, $editable = FALSE, $hl_ip = NULL)
{
    list($realm1, $realm2) = array_values(array_diff(array('object', 'ipvs', 'ipv4rspool'), array($cell['realm'])));
    if ($editable && getConfigVar('ADDNEW_AT_TOP') == 'yes') {
        callHook('renderNewTripletForm', $realm1, $realm2);
    }
    $fields = array('ipvs' => 'vs_id', 'object' => 'object_id', 'ipv4rspool' => 'rspool_id');
    $headers = array('ipvs' => 'VS', 'object' => 'LB', 'ipv4rspool' => 'RS pool');
    $triplets = groupTriplets(getTriplets($cell));
    // sort $headers by number of grouped cells
    $new_headers = array();
    $grouped_by = array('ipvs' => 0, 'object' => 0, 'ipv4rspool' => 0);
    foreach ($triplets as $slb) {
        if (isset($slb['span'])) {
            foreach (array_keys($slb['span']) as $realm) {
                $grouped_by[$realm]++;
            }
        }
    }
    arsort($grouped_by, SORT_NUMERIC);
    foreach (array_keys($grouped_by) as $realm) {
        $new_headers[$realm] = $headers[$realm];
    }
    $headers = $new_headers;
    // render table header
    if (count($triplets)) {
        startPortlet('VS group instances (' . count($triplets) . ')');
        echo "<table cellspacing=0 cellpadding=5 align=center class=widetable><tr><th></th>";
        foreach ($headers as $realm => $header) {
            if ($realm != $cell['realm']) {
                echo "<th>{$header}</th>";
            }
        }
        echo '<th>Ports</th>';
        echo '<th>VIPs</th>';
        echo "</tr>";
    }
    addJS('js/slb_editor.js');
    addJS('js/jquery.thumbhover.js');
    $class = 'slb-checks';
    if ($editable) {
        $class .= ' editable';
    }
    // render table rows
    global $nextorder;
    $order = 'odd';
    $span = array();
    foreach ($triplets as $slb) {
        $vs_cell = spotEntity('ipvs', $slb['vs_id']);
        amplifyCell($vs_cell);
        echo makeHtmlTag('tr', array('valign' => 'top', 'class' => "row_{$order} triplet-row", 'data-object_id' => $slb['object_id'], 'data-vs_id' => $slb['vs_id'], 'data-rspool_id' => $slb['rspool_id']));
        echo '<td><a href="#" onclick="' . "slb_config_preview(event, {$slb['object_id']}, {$slb['vs_id']}, {$slb['rspool_id']}); return false" . '">' . getImageHREF('Zoom', 'config preview') . '</a></td>';
        foreach (array_keys($headers) as $realm) {
            if ($realm == $cell['realm']) {
                continue;
            }
            if (isset($span[$realm])) {
                if (--$span[$realm] <= 0) {
                    unset($span[$realm]);
                }
            } else {
                $span_html = '';
                if (isset($slb['span'][$realm])) {
                    $span[$realm] = $slb['span'][$realm] - 1;
                    $span_html = sprintf("rowspan=%d", $slb['span'][$realm]);
                }
                echo "<td {$span_html} class=tdleft>";
                $slb_cell = spotEntity($realm, $slb[$fields[$realm]]);
                renderSLBEntityCell($slb_cell);
                echo "</td>";
            }
        }
        // render ports
        echo "<td class=tdleft><ul class='{$class}'>";
        foreach ($vs_cell['ports'] as $port) {
            echo '<li class="' . (($row = isPortEnabled($port, $slb['ports'])) ? 'enabled' : 'disabled') . '">';
            echo formatVSPort($port) . getPopupSLBConfig($row);
            if ($editable) {
                renderPopupTripletForm($slb, $port, NULL, $row);
            }
            echo '</li>';
        }
        echo '</ul></td>';
        // render VIPs
        echo "<td class=tdleft><ul class='{$class}'>";
        foreach ($vs_cell['vips'] as $vip) {
            $row = isVIPEnabled($vip, $slb['vips']);
            $li_class = $row ? 'enabled' : 'disabled';
            if ($vip['vip'] === $hl_ip && $li_class == 'enabled') {
                $li_class .= ' highlight';
            }
            echo "<li class='{$li_class}'>";
            echo formatVSIP($vip);
            if (is_array($row) && !empty($row['prio'])) {
                $prio_class = 'slb-prio slb-prio-' . preg_replace('/\\s.*/', '', $row['prio']);
                echo '<span class="' . htmlspecialchars($prio_class, ENT_QUOTES) . '">' . htmlspecialchars($row['prio']) . '</span>';
            }
            echo getPopupSLBConfig($row);
            if ($editable) {
                renderPopupTripletForm($slb, NULL, $vip, $row);
            }
            echo '</li>';
        }
        echo '<ul></td>';
        if ($editable) {
            echo '<td valign=middle>';
            printOpFormIntro('del', array('object_id' => $slb['object_id'], 'vs_id' => $slb['vs_id'], 'rspool_id' => $slb['rspool_id']));
            printImageHREF('DELETE', 'Remove triplet', TRUE);
            echo '</form></td>';
        }
        echo "</tr>\n";
        $order = $nextorder[$order];
    }
    if (count($triplets)) {
        echo "</table>\n";
        finishPortlet();
    }
    if ($editable && getConfigVar('ADDNEW_AT_TOP') != 'yes') {
        callHook('renderNewTripletForm', $realm1, $realm2);
    }
}
Пример #3
0
function buildEntityLVSConfig($cell)
{
    $ret = "#\n#\n# This configuration has been generated automatically by RackTables\n#\n#\n";
    // slbv2
    if ($cell['realm'] != 'ipv4vs') {
        $ret .= generateSLBConfig2(getTriplets($cell));
    }
    // slbv1
    if ($cell['realm'] != 'ipvs') {
        $ret .= generateSLBConfig(SLBTriplet::getTriplets($cell));
    }
    return $ret;
}
Пример #4
0
        $sql = getJackpotPerYear();
        break;
    case "mostCommonNumbers":
        $sql = getMostCommonNumbers($_GET["numRows"]);
        break;
    case "threeRuns":
        $sql = getThreeRuns($_GET["numRows"]);
        break;
    case "fourRuns":
        $sql = getFourRuns();
        break;
    case "pairs":
        $sql = getPairs($_GET["numRows"]);
        break;
    case "triplets":
        $sql = getTriplets($_GET["numRows"]);
        break;
    case "percentEvenOdd":
        $sql = getpercentEvenOdd();
        break;
    case "allEvenOrOdd":
        $sql = getAllEvenOrOdd();
        break;
    case "getTotalTuples":
        $sql = getTotalTuples();
        break;
}
//Run statement
$statement = oci_parse($connection, $sql);
oci_execute($statement);
//Statment to JSON.