r3811 8021Q_WRI_AFTER_CONFT: remake into 8021Q_WRI_AFTER_CONFT_LISTSRC
authorDenis Ovsienko <infrastation@yandex.ru>
Thu, 10 Jun 2010 22:03:27 +0000 (22:03 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Thu, 10 Jun 2010 22:03:27 +0000 (22:03 +0000)
setDevice8021QConfig(): decide if config should be saved based on 8021Q_WRI_AFTER_CONFT_LISTSRC
ios12TranslatePushQueue(): accept external decision whether to save config or not
nxos4TranslatePushQueue(): idem
fdry5TranslatePushQueue(): idem
vrp53TranslatePushQueue(): idem
xos12TranslatePushQueue(): idem

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

index 9e622bc..707d69e 100644 (file)
@@ -331,7 +331,9 @@ function setDevice8021QConfig ($object_id, $pseudocode)
        if ('' == $breed = detectDeviceBreed ($object_id))
                throw new Exception ('device breed unknown', E_GW_FAILURE);
        global $gwpushxlator;
-       gwDeployDeviceConfig ($object_id, $breed, unix2dos ($gwpushxlator[$breed] ($pseudocode)));
+       $do_save = considerConfiguredConstraint (spotEntity ('object', $object_id), '8021Q_WRI_AFTER_CONFT_LISTSRC');
+       // FIXME: is it possible to do $pseudocode[] = array ('opcode' => 'save config') instead?
+       gwDeployDeviceConfig ($object_id, $breed, unix2dos ($gwpushxlator[$breed] ($pseudocode, $do_save)));
 }
 
 function gwRetrieveDeviceConfig ($object_id, $command)
@@ -1008,20 +1010,20 @@ function nxos4PickSwitchportCommand (&$work, $line)
        return __FUNCTION__;
 }
 
-function ios12TranslatePushQueue ($queue)
+function ios12TranslatePushQueue ($queue, $do_save = FALSE)
 {
        $ret = "configure terminal\n";
        $ret .= ciscoCommonTranslator ($queue);
-       if (getConfigVar ('8021Q_WRI_AFTER_CONFT') == 'yes')
+       if ($do_save)
                $ret .= "write memory\n";
        return $ret;
 }
 
-function nxos4TranslatePushQueue ($queue)
+function nxos4TranslatePushQueue ($queue, $do_save = FALSE)
 {
        $ret = "configure terminal\n";
        $ret .= ciscoCommonTranslator ($queue);
-       if (getConfigVar ('8021Q_WRI_AFTER_CONFT') == 'yes')
+       if ($do_save)
                $ret .= "copy running-config startup-config\n";
        return $ret;
 }
@@ -1077,7 +1079,7 @@ function ciscoCommonTranslator ($queue)
        return $ret;
 }
 
-function fdry5TranslatePushQueue ($queue)
+function fdry5TranslatePushQueue ($queue, $do_save = FALSE)
 {
        $ret = "conf t\n";
        foreach ($queue as $cmd)
@@ -1113,12 +1115,12 @@ function fdry5TranslatePushQueue ($queue)
                        break;
                }
        $ret .= "end\n";
-       if (getConfigVar ('8021Q_WRI_AFTER_CONFT') == 'yes')
+       if ($do_save)
                $ret .= "write memory\n";
        return $ret;
 }
 
-function vrp53TranslatePushQueue ($queue)
+function vrp53TranslatePushQueue ($queue, $do_save = FALSE)
 {
        $ret = "system-view\n";
        foreach ($queue as $cmd)
@@ -1157,12 +1159,12 @@ function vrp53TranslatePushQueue ($queue)
                        break;
                }
        $ret .= "return\n";
-       if (getConfigVar ('8021Q_WRI_AFTER_CONFT') == 'yes')
+       if ($do_save)
                $ret .= "save\nY\n";
        return $ret;
 }
 
-function xos12TranslatePushQueue ($queue)
+function xos12TranslatePushQueue ($queue, $do_save = FALSE)
 {
        $ret = '';
        foreach ($queue as $cmd)
@@ -1210,7 +1212,7 @@ function xos12TranslatePushQueue ($queue)
                case 'set mode': // NOP
                        break;
                }
-       if (getConfigVar ('8021Q_WRI_AFTER_CONFT') == 'yes')
+       if ($do_save)
                $ret .= "save configuration\ny\n";
        return $ret;
 }
index 9d90e9d..592a1ed 100644 (file)
@@ -1088,7 +1088,7 @@ function resetUIConfig()
        setConfigVar ('8021Q_DEPLOY_MINAGE', '300');
        setConfigVar ('8021Q_DEPLOY_MAXAGE', '3600');
        setConfigVar ('8021Q_DEPLOY_RETRY', '10800');
-       setConfigVar ('8021Q_WRI_AFTER_CONFT', 'no');
+       setConfigVar ('8021Q_WRI_AFTER_CONFT_LISTSRC', 'false');
        setConfigVar ('8021Q_INSTANT_DEPLOY', 'no');
        setConfigVar ('CDP_RUNNERS_LISTSRC', '');
        setConfigVar ('LLDP_RUNNERS_LISTSRC', '');
index 02b7756..64ab669 100644 (file)
@@ -400,7 +400,7 @@ INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdef
 ('8021Q_DEPLOY_MINAGE','300','uint','no','no','no','802.1Q deploy minimum age'),
 ('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_WRI_AFTER_CONFT_LISTSRC','false','string','no','no','no','802.1Q: save device configuration after deploy (RackCode)'),
 ('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'),
index 2c25411..ac19ae6 100644 (file)
@@ -733,6 +733,10 @@ CREATE TABLE `VLANValidID` (
                        $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdefined, description) VALUES ('LLDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running LLDP')";
                        $query[] = "UPDATE Config SET varvalue = '0.18.2' WHERE varname = 'DB_VERSION'";
                        break;
+               case '0.18.3':
+                       $query[] = "UPDATE Config SET varname='8021Q_WRI_AFTER_CONFT_LISTSRC', varvalue='false', description='802.1Q: save device configuration after deploy (RackCode)' WHERE varname='8021Q_WRI_AFTER_CONFT'";
+                       $query[] = "UPDATE Config SET varvalue = '0.18.3' WHERE varname = 'DB_VERSION'";
+                       break;
                default:
                        showFailure ("executeUpgradeBatch () failed, because batch '${batchid}' isn't defined", __FILE__);
                        die;