r3896 copy another set of commits from maintenance
authorDenis Ovsienko <infrastation@yandex.ru>
Wed, 7 Jul 2010 14:22:13 +0000 (14:22 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Wed, 7 Jul 2010 14:22:13 +0000 (14:22 +0000)
gateways/deviceconfig/xos12.connector
inc/functions.php
inc/interface.php
inc/ophandlers.php
inc/snmp.php
syncdomain.php

index 4b16804..ae13c36 100755 (executable)
@@ -64,6 +64,6 @@ esac
 # quit, but don't save, if asked
 printf 'quit\nn\n' >> "$SESSION"
 rc=0
-nc -w30 $ENDPOINT 23 < "$SESSION" > "$outfile" || rc=4
+nc -w30 -i1 $ENDPOINT 23 < "$SESSION" > "$outfile" || rc=4
 rm -f "$SESSION"
 exit $rc
index 1f3109f..fa5a802 100644 (file)
@@ -3327,13 +3327,13 @@ function authorize8021QChangeRequests ($before, $changes)
        $ret = array();
        foreach ($changes as $pn => $change)
        {
-               $annex = array();
-               foreach (array_diff ($change['allowed'], $before[$pn]['allowed']) as $added_id)
-                       $annex[] = array ('tag' => '$tovlan_' . $added_id);
                foreach (array_diff ($before[$pn]['allowed'], $change['allowed']) as $removed_id)
-                       $annex[] = array ('tag' => '$fromvlan_' . $removed_id);
-               if (!count ($annex) or permitted (NULL, NULL, NULL, $annex))
-                       $ret[$pn] = $change;
+                       if (!permitted (NULL, NULL, NULL, array (array ('tag' => '$fromvlan_' . $removed_id))))
+                               continue 2; // next port
+               foreach (array_diff ($change['allowed'], $before[$pn]['allowed']) as $added_id)
+                       if (!permitted (NULL, NULL, NULL, array (array ('tag' => '$tovlan_' . $added_id))))
+                               continue 2; // next port
+               $ret[$pn] = $change;
        }
        return $ret;
 }
index e0a18d8..faaf838 100644 (file)
@@ -1643,7 +1643,6 @@ function showMessageOrError ()
                                189 => array ('code' => 'error', 'format' => "Unknown OID '%s'"),
                                190 => array ('code' => 'error', 'format' => "Invalid VLAN ID '%s'"),
                                191 => array ('code' => 'error', 'format' => "deploy was blocked due to conflicting configuration versions"),
-                               192 => array ('code' => 'error', 'format' => "You have to supply all the information for the bulk port function to be successful."), 
 
 // records 200~299 with warnings
                                200 => array ('code' => 'warning', 'format' => '%s'),
@@ -3997,13 +3996,12 @@ function renderVLANMembership ($object_id)
                        continue;
                $vlanpermissions[$port['vlanid']] = array();
                foreach (array_keys ($vlanlist) as $to)
-               {
-                       $annex = array();
-                       $annex[] = array ('tag' => '$fromvlan_' . $port['vlanid']);
-                       $annex[] = array ('tag' => '$tovlan_' . $to);
-                       if (permitted (NULL, NULL, 'setPortVLAN', $annex))
+                       if
+                       (
+                               permitted (NULL, NULL, 'setPortVLAN', array (array ('tag' => '$fromvlan_' . $port['vlanid']))) and
+                               permitted (NULL, NULL, 'setPortVLAN', array (array ('tag' => '$tovlan_' . $to)))
+                       )
                                $vlanpermissions[$port['vlanid']][] = $to;
-               }
        }
 
        echo '<table border=0 width="100%"><tr><td colspan=3>';
index ba46bca..d7ae44e 100644 (file)
@@ -353,15 +353,14 @@ http://www.cisco.com/en/US/products/hw/routers/ps274/products_tech_note09186a008
 }
 
 $msgcode['addBulkPorts']['OK'] = 82;
-$msgcode['addBulkPorts']['ERR'] = 192;
-
 function addBulkPorts ()
 {
-       assertUIntArg ('object_id', __FUNCTION__);
-       assertStringArg ('port_name', __FUNCTION__, TRUE);
-       assertStringArg ('port_label', __FUNCTION__, TRUE);
-       assertUIntArg('port_numbering_start', __FUNCTION__);
-       assertUIntArg('port_numbering_count', __FUNCTION__);
+       assertUIntArg ('object_id');
+       assertStringArg ('port_type_id');
+       assertStringArg ('port_name');
+       assertStringArg ('port_label', TRUE);
+       assertUIntArg ('port_numbering_start');
+       assertUIntArg ('port_numbering_count');
        
        $object_id = $_REQUEST['object_id'];
        $port_name = $_REQUEST['port_name'];
@@ -370,10 +369,6 @@ function addBulkPorts ()
        $port_numbering_start = $_REQUEST['port_numbering_start'];
        $port_numbering_count = $_REQUEST['port_numbering_count'];
        
-       if ($object_id == 0 or $port_type_id == 0 or $port_name == '' or $port_numbering_count == 0)
-       {
-               return buildRedirectURL (__FUNCTION__, 'ERR');
-       }
        $added_count = $error_count = 0;
        if(strrpos($port_name, "%u") === false )
                $port_name .= '%u';
@@ -388,7 +383,6 @@ function addBulkPorts ()
        return buildRedirectURL (__FUNCTION__, 'OK', array ($added_count, $error_count));
 }
 
-
 $msgcode['updIPv4Allocation']['OK'] = 12;
 $msgcode['updIPv4Allocation']['ERR'] = 109;
 function updIPv4Allocation ()
@@ -1622,11 +1616,11 @@ function setPortVLAN ()
                        $portname = $_REQUEST['portname_' . $i];
                        $oldvlanid = $portlist[$i]['vlanid'];
                        $newvlanid = $_REQUEST['vlanid_' . $i];
-                       // Finish the security context and evaluate it.
-                       $annex = array();
-                       $annex[] = array ('tag' => '$fromvlan_' . $oldvlanid);
-                       $annex[] = array ('tag' => '$tovlan_' . $newvlanid);
-                       if (!permitted (NULL, NULL, NULL, $annex))
+                       if
+                       (
+                               !permitted (NULL, NULL, NULL, array (array ('tag' => '$fromvlan_' . $oldvlanid))) or
+                               !permitted (NULL, NULL, NULL, array (array ('tag' => '$tovlan_' . $newvlanid)))
+                       )
                        {
                                $log['m'][] = array ('c' => 159, 'a' => array ($portname, $oldvlanid, $newvlanid));
                                continue;
index 475ba67..749b510 100644 (file)
@@ -961,6 +961,17 @@ function doSwitchSNMPmining ($objectInfo, $hostname, $community)
                break;
        case preg_match ('/^1991\.1\.3\.45\./', $sysObjectID): // snFGSFamily
        case preg_match ('/^1991\.1\.3\.54\.2\.4\.1\.1$/', $sysObjectID): // FCX 648
+               $swtype_pcre = array
+               (
+                       // FIXME: get sysDescr for IronWare 5 and add a pattern
+                       '/^Brocade Communications Systems.+, IronWare Version 07\./' => 1364,
+               );
+               foreach ($swtype_pcre as $pattern => $dict_key)
+                       if (preg_match ($pattern, $sysDescr))
+                       {
+                               updateStickerForCell ($objectInfo, 4, $dict_key);
+                               break;
+                       }
                $exact_release = preg_replace ('/^.*, IronWare Version ([^ ]+) .*$/', '\\1', $sysDescr);
                updateStickerForCell ($objectInfo, 5, $exact_release);
                # FOUNDRY-SN-AGENT-MIB::snChasSerNum.0
index 0af9d8a..6cbd12c 100755 (executable)
@@ -81,9 +81,16 @@ foreach ($mydomain['switchlist'] as $switch)
        if (in_array (detectVLANSwitchQueue (getVLANSwitchInfo ($switch['object_id'])), $todo[$options['mode']]))
        {
                $object = spotEntity ('object', $switch['object_id']);
-               $portsdone = exec8021QDeploy ($switch['object_id'], $do_push);
-               if ($portsdone or $verbose)
-                       echo "Done '${object['dname']}': ${portsdone}\n";
+               try
+               {
+                       $portsdone = exec8021QDeploy ($switch['object_id'], $do_push);
+                       if ($portsdone or $verbose)
+                               echo "Done '${object['dname']}': ${portsdone}\n";
+               }
+               catch (RackTablesError $e)
+               {
+                       echo "FAILED '${object['dname']}': " . $e->getMessage() . "\n";
+               }
                if (++$switchesdone == $max)
                {
                        if ($verbose)