Ejemplo n.º 1
0
function formatVLANPackDiff($old, $current)
{
    $ret = '';
    $new_pack = serializeVLANPack($current);
    $new_size = substr_count($new_pack, ',');
    if (!same8021QConfigs($old, $current)) {
        $old_pack = serializeVLANPack($old);
        $old_size = substr_count($old_pack, ',');
        $ret .= '<s>' . $old_pack . '</s><br>';
        // make diff
        $added = groupIntsToRanges(array_diff($current['allowed'], $old['allowed']));
        $removed = groupIntsToRanges(array_diff($old['allowed'], $current['allowed']));
        if ($old['mode'] == $current['mode'] && $current['mode'] == 'trunk') {
            if (!empty($added)) {
                $ret .= '<span class="vlan-diff diff-add">+ ' . implode(', ', $added) . '</span><br>';
            }
            if (!empty($removed)) {
                $ret .= '<span class="vlan-diff diff-rem">- ' . implode(', ', $removed) . '</span><br>';
            }
        }
    }
    $ret .= $new_pack;
    return $ret;
}
Ejemplo n.º 2
0
function queueChangesToSwitch($switch_id, $order, $before, $check_only = FALSE)
{
    global $script_mode;
    $ret = array();
    $nsaved = 0;
    foreach ($order as $portname => $portorder) {
        if (!same8021QConfigs($portorder, $before[$portname])) {
            if ($script_mode) {
                $object = spotEntity('object', $switch_id);
                print $object['name'] . " {$portname}: " . serializeVLANPack($before[$portname]) . ' -> ' . serializeVLANPack($portorder) . "\n";
            }
            if (!$check_only) {
                upd8021QPort('desired', $switch_id, $portname, $portorder);
                $nsaved++;
            }
        }
    }
    if (!$check_only && $nsaved) {
        touchVLANSwitch($switch_id);
    }
    return $nsaved;
}