r3624 8021Q_INSTANT_DEPLOY: new config option
authorDenis Ovsienko <infrastation@yandex.ru>
Tue, 18 May 2010 16:42:10 +0000 (16:42 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Tue, 18 May 2010 16:42:10 +0000 (16:42 +0000)
save8021QPorts(): call exec8021QDeploy(), if configured to

inc/interface.php
inc/ophandlers.php
install/init-dictbase.sql
upgrade.php

index 4a4d8c2..1bcd622 100644 (file)
@@ -1532,7 +1532,7 @@ function showMessageOrError ()
                                38 => array ('code' => 'success', 'format' => '%u real server(s) were successfully (de)activated'),
                                39 => array ('code' => 'success', 'format' => 'User account %s updated.'),
                                40 => array ('code' => 'success', 'format' => 'User account %s created.'),
-// ...
+                               41 => array ('code' => 'success', 'format' => 'uplink ports reverb queued'),
 // ...
                                43 => array ('code' => 'success', 'format' => 'Saved successfully.'),
                                44 => array ('code' => 'success', 'format' => '%s failures and %s successfull changes.'),
index e9d01ef..dbe75c2 100644 (file)
@@ -1097,6 +1097,7 @@ function resetUIConfig()
        setConfigVar ('8021Q_DEPLOY_MAXAGE', '3600');
        setConfigVar ('8021Q_DEPLOY_RETRY', '10800');
        setConfigVar ('8021Q_WRI_AFTER_CONFT', 'no');
+       setConfigVar ('8021Q_INSTANT_DEPLOY', 'no');
        return buildRedirectURL (__FUNCTION__, 'OK');
 }
 
@@ -2222,7 +2223,8 @@ function updateVLANDomain ()
        return buildRedirectURL (__FUNCTION__, $result ? 'OK' : 'ERR');
 }
 
-$msgcode['save8021QPorts']['OK'] = 63;
+$msgcode['save8021QPorts']['OK1'] = 63;
+$msgcode['save8021QPorts']['OK2'] = 41;
 $msgcode['save8021QPorts']['ERR1'] = 160;
 $msgcode['save8021QPorts']['ERR2'] = 109;
 function save8021QPorts ()
@@ -2300,9 +2302,27 @@ function save8021QPorts ()
                $query->execute (array ($sic['object_id']));
        }
        $dbxlink->commit();
+       $log = oneLiner (63, array ($npulled + $nsaved_uplinks));
        if ($nsaved_uplinks)
+       {
                initiateUplinksReverb ($vswitch['object_id'], $new_uplinks);
-       return buildRedirectURL (__FUNCTION__, 'OK', array ($npulled + $nsaved_uplinks), NULL, NULL, $extra);
+               $log = mergeLogs ($log, oneLiner (41));
+       }
+       if ($npulled + $nsaved_uplinks > 0 and getConfigVar ('8021Q_INSTANT_DEPLOY') == 'yes')
+       {
+               try
+               {
+                       if (FALSE === $done = exec8021QDeploy ($sic['object_id'], TRUE))
+                               $log = mergeLogs ($log, oneLiner (191));
+                       else
+                               $log = mergeLogs ($log, oneLiner (63, array ($done)));
+               }
+               catch (Exception $e)
+               {
+                       $log = mergeLogs ($log, oneLiner (109));
+               }
+       }
+       return buildWideRedirectURL ($log, NULL, NULL, $extra);
 }
 
 $msgcode['bindVLANtoIPv4']['OK'] = 48;
index d0dd62c..0c1d002 100644 (file)
@@ -401,6 +401,7 @@ INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdef
 ('8021Q_DEPLOY_MAXAGE','3600','uint','no','no','no','802.1Q deploy maximum age'),
 ('8021Q_DEPLOY_RETRY','10800','uint','no','no','no','802.1Q deploy retry timer'),
 ('8021Q_WRI_AFTER_CONFT','no','string','no','no','no','802.1Q: save device configuration after deploy'),
+('8021Q_INSTANT_DEPLOY','no','string','no','no','yes','802.1Q: instant deploy'),
 ('STATIC_FILTER','yes','string','no','no','yes','Enable Filter Caching'),
 ('ENABLE_BULKPORT_FORM','yes','string','no','no','yes','Enable "Bulk Port" form'),
 ('DB_VERSION','0.17.10','string','no','yes','no','Database version.');
index 03d9e44..b21ef42 100644 (file)
@@ -494,6 +494,7 @@ CREATE TABLE `UserConfig` (
                        $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdefined, description) VALUES ('8021Q_DEPLOY_MAXAGE','3600','uint','no','no','no','802.1Q deploy maximum age')";
                        $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdefined, description) VALUES ('8021Q_DEPLOY_RETRY','10800','uint','no','no','no','802.1Q deploy retry timer')";
                        $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdefined, description) VALUES ('8021Q_WRI_AFTER_CONFT','no','string','no','no','no','802.1Q: save device configuration after deploy')";
+                       $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdefined, description) VALUES ('8021Q_INSTANT_DEPLOY','no','string','no','no','yes','802.1Q: instant deploy')";
                        $query[] = "ALTER TABLE IPv4Network ENGINE=InnoDB";
                        // FIXME: add tables CachedPAV, CachedPNV, CachedPVM, PortAllowedVLAN, PortNativeVLAN, PortVLANMode, VLANDescription, VLANDomain, VLANIPv4, VLANSTRule, VLANSwitch, VLANSwitchTemplate, VLANValidID
                        for ($i = 1; $i <= 4094; $i++)