r4258 genericAssertion(): add "vlan" and "vlan1" cases
authorDenis Ovsienko <infrastation@yandex.ru>
Fri, 25 Feb 2011 09:49:05 +0000 (09:49 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Fri, 25 Feb 2011 09:49:05 +0000 (09:49 +0000)
commitReduceVLANDescription(): dismiss
delVLANDescription(): dismiss
updVLANDescription(): dismiss

wwwroot/inc/database.php
wwwroot/inc/functions.php
wwwroot/inc/interface.php
wwwroot/inc/navigation.php
wwwroot/inc/ophandlers.php

index 5db65ddd441e7a124fc327c66c35fbef9c10330c..b179bb94f25a73fd2021d0cdc1da29c009efc843 100644 (file)
@@ -3875,19 +3875,6 @@ function getDomainVLANs ($vdom_id)
        return $ret;
 }
 
-function commitReduceVLANDescription ($vdom_id, $vlan_id)
-{
-       return usePreparedDeleteBlade
-       (
-               'VLANDescription',
-               array
-               (
-                       'domain_id' => $vdom_id,
-                       'vlan_id' => $vlan_id,
-               )
-       );
-}
-
 function getVLANSwitches()
 {
        $ret = array();
index f69b8927931a42e2f87c5d5d8a78c33d0863f5bb..9e2015e20c45b5377c9b16fcdb85614f5c9b29f0 100644 (file)
@@ -383,6 +383,14 @@ function genericAssertion ($argname, $argtype)
                if (!array_key_exists ($sic[$argname], getPortIIFOptions()))
                        throw new InvalidRequestArgException ($argname, $sic[$argname], 'Unknown value');
                break;
+       case 'vlan':
+       case 'vlan1':
+               genericAssertion ($argname, 'uint');
+               if ($argtype == 'vlan' and $sic[$argname] == VLAN_DFL_ID)
+                       throw new InvalidRequestArgException ($argname, $sic[$argname], 'default VLAN cannot be changed');
+               if ($sic[$argname] > VLAN_MAX_ID or $sic[$argname] < VLAN_MIN_ID)
+                       throw new InvalidRequestArgException ($argname, $sic[$argname], 'out of valid range');
+               break;
        default:
                throw new InvalidArgException ('argtype', $argtype); // comes not from user's input
        }
index 57bbfe8434c5b597ef9499d7ca35c10c194c37da..d94b81fa7f6beb728c5cfd64c731c16f27896479 100644 (file)
@@ -1801,7 +1801,6 @@ function showMessageOrError ()
                                100 => array ('code' => 'error', 'format' => '%s'),
                                102 => array ('code' => 'error', 'format' => "Error creating user account '%s'"),
                                104 => array ('code' => 'error', 'format' => "failed updating record '%s'"),
-                               105 => array ('code' => 'error', 'format' => 'default VLAN cannot be changed'),
                                107 => array ('code' => 'error', 'format' => 'Assertion failed: %s'),
                                108 => array ('code' => 'error', 'format' => 'Database error: %s'),
                                109 => array ('code' => 'error', 'format' => 'failed updating a record'),
index 57fccea441d88bd8b7ece843f593d42d8bdee0be..d417a59be15c60e7d20e4134bfe2c2d6b3a553af 100644 (file)
@@ -594,8 +594,8 @@ $tabhandler['vlandomain']['vlanlist'] = 'renderVLANDomainVLANList';
 $ophandler['vlandomain']['8021qorder']['add'] = 'add8021QOrder';
 $ophandler['vlandomain']['8021qorder']['del'] = 'del8021QOrder';
 $ophandler['vlandomain']['vlanlist']['add'] = 'tableHandler';
-$ophandler['vlandomain']['vlanlist']['del'] = 'delVLANDescription';
-$ophandler['vlandomain']['vlanlist']['upd'] = 'updVLANDescription';
+$ophandler['vlandomain']['vlanlist']['del'] = 'tableHandler';
+$ophandler['vlandomain']['vlanlist']['upd'] = 'tableHandler';
 
 $page['vlan']['parent'] = 'vlandomain';
 $page['vlan']['bypass'] = 'vlan_ck';
index 96538715564ceea0bd172910c3b4226ec472f557..fff54da86df8f7881a84ae99a6b199bb14163134 100644 (file)
@@ -373,11 +373,36 @@ $opspec_list['vlandomain-vlanlist-add'] = array
        'arglist' => array
        (
                array ('url_argname' => 'vdom_id', 'table_colname' => 'domain_id', 'assertion' => 'uint'),
-               array ('url_argname' => 'vlan_id', 'assertion' => 'uint'),
+               array ('url_argname' => 'vlan_id', 'assertion' => 'vlan'),
                array ('url_argname' => 'vlan_type', 'assertion' => 'enum/vlan_type'),
                array ('url_argname' => 'vlan_descr', 'assertion' => 'string0', 'if_empty' => 'NULL'),
        ),
 );
+$opspec_list['vlandomain-vlanlist-del'] = array
+(
+       'table' => 'VLANDescription',
+       'action' => 'DELETE',
+       'arglist' => array
+       (
+               array ('url_argname' => 'vdom_id', 'table_colname' => 'domain_id', 'assertion' => 'uint'),
+               array ('url_argname' => 'vlan_id', 'assertion' => 'vlan'),
+       ),
+);
+$opspec_list['vlandomain-vlanlist-upd'] = array
+(
+       'table' => 'VLANDescription',
+       'action' => 'UPDATE',
+       'set_arglist' => array
+       (
+               array ('url_argname' => 'vlan_type', 'assertion' => 'enum/vlan_type'),
+               array ('url_argname' => 'vlan_descr', 'assertion' => 'string0', 'if_empty' => 'NULL'),
+       ),
+       'where_arglist' => array
+       (
+               array ('url_argname' => 'vdom_id', 'table_colname' => 'domain_id', 'assertion' => 'uint'),
+               array ('url_argname' => 'vlan_id', 'assertion' => 'vlan'),
+       ),
+);
 
 // This function is DEPRECATED. Show messages through showError and showSuccess,
 // you dont need to return anything from an ophandler to redirect user back to the page containing submit form
@@ -2293,46 +2318,6 @@ function del8021QOrder ()
        return buildRedirectURL (__FUNCTION__, $result ? 'OK' : 'ERR', array(), NULL, NULL, $focus_hints);
 }
 
-$msgcode['delVLANDescription']['OK'] = 49;
-$msgcode['delVLANDescription']['ERR1'] = 105;
-$msgcode['delVLANDescription']['ERR2'] = 111;
-function delVLANDescription ()
-{
-       assertUIntArg ('vlan_id');
-       global $sic;
-       if ($sic['vlan_id'] == VLAN_DFL_ID)
-               return buildRedirectURL (__FUNCTION__, 'ERR1');
-       $result = commitReduceVLANDescription ($sic['vdom_id'], $sic['vlan_id']);
-       return buildRedirectURL (__FUNCTION__, $result ? 'OK' : 'ERR2');
-}
-
-$msgcode['updVLANDescription']['OK'] = 51;
-$msgcode['updVLANDescription']['ERR1'] = 105;
-function updVLANDescription ()
-{
-       assertUIntArg ('vlan_id');
-       assertStringArg ('vlan_type');
-       assertStringArg ('vlan_descr', TRUE);
-       global $sic;
-       if ($sic['vlan_id'] == VLAN_DFL_ID)
-               return buildRedirectURL (__FUNCTION__, 'ERR1');
-       usePreparedUpdateBlade
-       (
-               'VLANDescription',
-               array
-               (
-                       'vlan_descr' => !mb_strlen ($sic['vlan_descr']) ? NULL : $sic['vlan_descr'],
-                       'vlan_type' => $sic['vlan_type'],
-               ),
-               array
-               (
-                       'domain_id' => $sic['vdom_id'],
-                       'vlan_id' => $sic['vlan_id'],
-               )
-       );
-       return buildRedirectURL (__FUNCTION__, 'OK');
-}
-
 $msgcode['createVLANDomain']['OK'] = 48;
 $msgcode['createVLANDomain']['ERR'] = 110;
 function createVLANDomain ()