r2075 + start switching the gateways towards v2-logging
authorDenis Ovsienko <infrastation@yandex.ru>
Wed, 23 Jul 2008 15:33:45 +0000 (15:33 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Wed, 23 Jul 2008 15:33:45 +0000 (15:33 +0000)
inc/gateways.php
inc/interface.php
inc/ophandlers.php

index d0df624b35c29f026b64d6af3a7cee4e71a72297..26cff50e0e8403774a381e528cb93e156766fcfb 100644 (file)
@@ -159,13 +159,13 @@ function setSwitchVLANs ($object_id = 0, $setcmd)
        global $remote_username;
        $log = array();
        if ($object_id <= 0)
-               return array (array ('code' => 'error', 'message' => __FUNCTION__ . ': Invalid object_id'));
+               return array (array ('c' => 160)); // invalid arguments
        $objectInfo = getObjectInfo ($object_id);
        $endpoints = findAllEndpoints ($object_id, $objectInfo['name']);
        if (count ($endpoints) == 0)
-               return array (array ('code' => 'error', 'message' => 'Can\'t find any mean to reach current object. Please either set FQDN attribute or assign an IP address to the object.'));
+               return array (array ('c' => 161)); // endpoint not found
        if (count ($endpoints) > 1)
-               return array (array ('code' => 'error', 'message' => 'More than one IP address is assigned to this object, please configure FQDN attribute.'));
+               return array (array ('c' => 162)); // can't pick an address
        $hwtype = $swtype = 'unknown';
        foreach (getAttrValues ($object_id, TRUE) as $record)
        {
@@ -181,22 +181,25 @@ function setSwitchVLANs ($object_id = 0, $setcmd)
                array ("connect ${endpoint} ${hwtype} ${swtype} ${remote_username}", $setcmd)
        );
        if ($data == NULL)
-               return array (array ('code' => 'error', 'message' => __FUNCTION__ . ': Failed to get any response from queryGateway() or the gateway died'));
+               return array (array ('c' => 163)); // unknown gateway failure
        if (strpos ($data[0], 'OK!') !== 0)
-               return array (array ('code' => 'error', 'message' => "Gateway failure: returned code ${data[0]}."));
+               return array (array ('c' => 164, 'a' => array ($data[0]))); // gateway failure
        if (count ($data) != 2)
-               return array (array ('code' => 'error', 'message' => 'Gateway failure: malformed reply.'));
+               return array (array ('c' => 165)); // protocol violation
        // Finally we can parse the response into message array.
        $ret = array();
        foreach (split (';', substr ($data[1], strlen ('OK!'))) as $text)
        {
-               if (strpos ($text, 'I!') === 0)
-                       $code = 'success';
+               if (strpos ($text, 'C!') === 0)
+               {
+               }
+               elseif (strpos ($text, 'I!') === 0)
+                       $code = 62;
                elseif (strpos ($text, 'W!') === 0)
-                       $code = 'warning';
+                       $code = 202;
                else // All improperly formatted messages must be treated as error conditions.
-                       $code = 'error';
-               $ret[] = array ('code' => $code, 'message' => substr ($text, 2));
+                       $code = 166;
+               $ret[] = array ('c' => $code, 'a' => array (substr ($text, 2)));
        }
        return $ret;
 }
@@ -207,13 +210,13 @@ function activateSLBConfig ($object_id = 0, $configtext = '')
        global $remote_username;
        $log = array();
        if ($object_id <= 0 or empty ($configtext))
-               return array (array ('code' => 'error', 'message' => __FUNCTION__ . ': Invalid arguments'));
+               return array (array ('c' => 160)); // invalid arguments
        $objectInfo = getObjectInfo ($object_id);
        $endpoints = findAllEndpoints ($object_id, $objectInfo['name']);
        if (count ($endpoints) == 0)
-               return array (array ('code' => 'error', 'message' => 'Can\'t find any mean to reach current object. Please either set FQDN attribute or assign an IP address to the object.'));
+               return array (array ('c' => 161)); // endpoint not found
        if (count ($endpoints) > 1)
-               return array (array ('code' => 'error', 'message' => 'More than one IP address is assigned to this object, please configure FQDN attribute.'));
+               return array (array ('c' => 162)); // can't pick an address
        $hwtype = $swtype = 'unknown';
        $endpoint = str_replace (' ', '+', $endpoints[0]);
        $tmpfilename = tempnam ('', 'RackTables-slbconfig-');
@@ -227,17 +230,17 @@ function activateSLBConfig ($object_id = 0, $configtext = '')
        );
        unlink ($tmpfilename);
        if ($data == NULL)
-               return array (array ('code' => 'error', 'message' => __FUNCTION__ . ': Failed to get any response from queryGateway() or the gateway died'));
+               return array (array ('c' => 163)); // unknown gateway failure
        if (strpos ($data[0], 'OK!') !== 0)
-               return array (array ('code' => 'error', 'message' => "Gateway failure: returned code ${data[0]}."));
+               return array (array ('c' => 164, 'a' => array ($data[0]))); // gateway failure
        if (count ($data) != 2)
-               return array (array ('code' => 'error', 'message' => 'Gateway failure: malformed reply.'));
+               return array (array ('c' => 165)); // protocol violation
        // Finally we can parse the response into message array.
        $ret = array();
-       $codemap['ERR'] = 'error';
-       $codemap['OK'] = 'success';
+       $codemap['ERR'] = 166;
+       $codemap['OK'] = 62;
        list ($code, $text) = split ('!', $data[1]);
-       $ret[] = array ('code' => $codemap[$code], 'message' => $text);
+       $ret[] = array ('c' => $codemap[$code], 'a' => array ($text));
        return $ret;
 }
 
index b0c8c716bc8629beed1020f648b6eb6e7fea4694..54792f4fc92027f63e4cfeeb6ced13f36e5df6eb 100644 (file)
@@ -1323,6 +1323,7 @@ function printLog ($log)
                                59 => array ('code' => 'success', 'format' => "Created tag '%s'."),
                                60 => array ('code' => 'success', 'format' => "Updated tag '%s'."),
                                61 => array ('code' => 'success', 'format' => 'Password changed successfully.'),
+                               62 => array ('code' => 'success', 'format' => 'gw: %s'),
                                100 => array ('code' => 'error', 'format' => 'Generic error: %s'),
                                101 => array ('code' => 'error', 'format' => 'Port name cannot be empty'),
                                102 => array ('code' => 'error', 'format' => "Error creating user account '%s'"),
@@ -1381,6 +1382,18 @@ function printLog ($log)
                                155 => array ('code' => 'error', 'format' => 'Save failed.'),
                                156 => array ('code' => 'error', 'format' => 'getSwitchVLANs() failed'),
                                157 => array ('code' => 'error', 'format' => 'operation not permitted'),
+                               158 => array ('code' => 'error', 'format' => 'Ignoring malformed record #%u in form submit'),
+                               159 => array ('code' => 'error', 'format' => 'Permission denied moving port %s from VLAN%u to VLAN%u'),
+                               160 => array ('code' => 'error', 'format' => 'Invalid arguments'),
+                               161 => array ('code' => 'error', 'format' => 'Endpoint not found. Please either set FQDN attribute or assign an IP address to the object.'),
+                               162 => array ('code' => 'error', 'format' => 'More than one IP address is assigned to this object, please configure FQDN attribute.'),
+                               163 => array ('code' => 'error', 'format' => 'Failed to get any response from queryGateway() or the gateway died'),
+                               164 => array ('code' => 'error', 'format' => 'Gateway failure: returned code %u.'),
+                               165 => array ('code' => 'error', 'format' => 'Gateway failure: malformed reply.'),
+                               166 => array ('code' => 'error', 'format' => 'gw: %s'),
+                               200 => array ('code' => 'warning', 'format' => 'generic warning: %s'),
+                               201 => array ('code' => 'warning', 'format' => 'nothing happened...'),
+                               202 => array ('code' => 'warning', 'format' => 'gw: %s'),
                        );
                        // Handle the arguments. Is there any better way to do it?
                        foreach ($log['m'] as $record)
index 8a103c5504b7ed027b3ff998ac035f1eb803f9dd..306dad1cd997472bb2059722243c9c64d8e9afb6 100644 (file)
@@ -1294,7 +1294,7 @@ function setPortVLAN ()
        // for each of the rest.
        $nports = $_REQUEST['portcount'];
        $prefix = 'set ';
-       $log = array ('v' => 1);
+       $log = array ('v' => 2);
        $setcmd = '';
        for ($i = 0; $i < $nports; $i++)
                if
@@ -1303,7 +1303,7 @@ function setPortVLAN ()
                        !isset ($_REQUEST['vlanid_' . $i]) ||
                        $_REQUEST['portname_' . $i] != $portlist[$i]['portname']
                )
-                       $log[] = array ('code' => 'error', 'message' => "Ignoring malformed record #${i} in form submit");
+                       $log['m'][] = array ('c' => 158, 'a' => array ($i));
                elseif
                (
                        $_REQUEST['vlanid_' . $i] == $portlist[$i]['vlanid'] ||
@@ -1321,7 +1321,7 @@ function setPortVLAN ()
                        $annex[] = array ('tag' => '$tovlan_' . $newvlanid);
                        if (!permitted (NULL, NULL, NULL, $annex))
                        {
-                               $log[] = array ('code' => 'error', 'message' => "Permission denied moving port ${portname} from VLAN${oldvlanid} to VLAN${newvlanid}");
+                               $log['m'][] = array ('c' => 159, 'a' => array ($portname, $oldvlanid, $newvlanid));
                                continue;
                        }
                        $setcmd .= $prefix . $portname . '=' . $newvlanid;
@@ -1329,9 +1329,9 @@ function setPortVLAN ()
                }
        // Feed the gateway and interpret its (non)response.
        if ($setcmd != '')
-               $log = array_merge ($log, setSwitchVLANs ($_REQUEST['object_id'], $setcmd));
+               $log['m'] = array_merge ($log, setSwitchVLANs ($_REQUEST['object_id'], $setcmd));
        else
-               $log[] = array ('code' => 'warning', 'message' => 'nothing happened...');
+               $log['m'][] = array ('c' => 201);
        return buildWideRedirectURL ($log);
 }