r4138 commitResetObject(): use appropriate function for DELETE
authorDenis Ovsienko <infrastation@yandex.ru>
Sun, 16 Jan 2011 10:05:42 +0000 (10:05 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Sun, 16 Jan 2011 10:05:42 +0000 (10:05 +0000)
updateV6Address(): idem
unbindIPv6FromObject(): idem
bindIPv6ToObject(): likewise, for INSERT
updateV6Address(): idem
processGridForm(): likewise, for UPDATE
updateIPv6Bond(): idem
commitUpdateUserAccount(): idem
commitSetInService(): idem

commitUpdateDictionary(): dismiss
commitUpdateChapter(): dismiss
commitUpdateVLANDescription(): dismiss
storeConfigVar(): dismiss
setConfigVar(): update
changeAttribute(): dismiss
commitUpdateAttribute(): dismiss
commitUseupPort(): dismiss
deleteUserConfigVar(): dismiss
resetUserConfigVar(): update
storeUserConfigVar(): dismiss
saveThumbCache(): dismiss
resetThumbCache(): dismiss

updateDictionary(): update respectively
updateChapter(): idem
updVLANDescription(): idem
useupPort(): idem
setUserConfigVar(): idem
updateObject(): idem
deleteObject(): idem
resetObject(): idem
updateRack(): idem
processGridForm(): idem
render_image.php: idem

inc/config.php
inc/database.php
inc/navigation.php
inc/ophandlers.php
render_image.php

index b7b3fa8..25da955 100644 (file)
@@ -135,7 +135,7 @@ function setConfigVar ($varname = '', $varvalue = '', $softfail = FALSE)
        if (mb_strlen ($varvalue) && $configCache[$varname]['vartype'] == 'uint' && (!is_numeric ($varvalue) or $varvalue < 0 ))
                throw new InvalidRequestArgException ('$varvalue', $varvalue, "'${varname}' can accept UINT values only");
        // Update cache only if the changes went into DB.
-       storeConfigVar ($varname, $varvalue);
+       usePreparedUpdateBlade ('Config', array ('varvalue' => $varvalue), array ('varname' => $varname));
        $configCache[$varname]['varvalue'] = $varvalue;
 }
 
@@ -160,7 +160,11 @@ function setUserConfigVar ($varname = '', $varvalue = '')
        if (mb_strlen ($varvalue) && $configCache[$varname]['vartype'] == 'uint' && (!is_numeric ($varvalue) or $varvalue < 0 ))
                throw new InvalidRequestArgException ('$varvalue', $varvalue, "'${varname}' can accept UINT values only");
        // Update cache only if the changes went into DB.
-       storeUserConfigVar ($remote_username, $varname, $varvalue);
+       usePreparedExecuteBlade
+       (
+               'REPLACE UserConfig SET varvalue=?, varname=?, user=?',
+               array ($varvalue, $varname, $remote_username)
+       );
        $configCache[$varname]['varvalue'] = $varvalue;
 }
 
@@ -181,7 +185,7 @@ function resetUserConfigVar ($varname = '')
        if ($configCache[$varname]['is_hidden'] != 'no')
                throw new InvalidRequestArgException ('$varname', $varname, 'a hidden variable cannot be changed by user');
        // Update cache only if the changes went into DB.
-       deleteUserConfigVar ($remote_username, $varname);
+       usePreparedDeleteBlade ('UserConfig', array ('varname' => $varname, 'user' => $remote_username));
 }
 
 ?>
index b10f001..d11957a 100644 (file)
@@ -673,8 +673,8 @@ function commitResetObject ($object_id = 0)
        // Rack space
        usePreparedExecuteBlade ('DELETE FROM Atom WHERE molecule_id IN (SELECT new_molecule_id FROM MountOperation WHERE object_id = ?)', array ($object_id));
        usePreparedExecuteBlade ('DELETE FROM Molecule WHERE id IN (SELECT new_molecule_id FROM MountOperation WHERE object_id = ?)', array ($object_id));
-       usePreparedExecuteBlade ('DELETE FROM MountOperation WHERE object_id = ?', array ($object_id));
-       usePreparedExecuteBlade ('DELETE FROM RackSpace WHERE object_id = ?', array ($object_id));
+       usePreparedDeleteBlade ('MountOperation', array ('object_id' => $object_id));
+       usePreparedDeleteBlade ('RackSpace', array ('object_id' => $object_id));
        // 802.1Q
        usePreparedDeleteBlade ('PortVLANMode', array ('object_id' => $object_id));
        usePreparedDeleteBlade ('PortNativeVLAN', array ('object_id' => $object_id));
@@ -771,11 +771,16 @@ function processGridForm (&$rackData, $unchecked_state, $checked_state, $object_
                        if ($newstate == 'T' and $object_id != 0)
                        {
                                // At this point we already have a record in RackSpace.
-                               $r = usePreparedExecuteBlade
+                               $r = usePreparedUpdateBlade
                                (
-                                       'UPDATE RackSpace SET object_id=? ' .
-                                       'WHERE rack_id=? AND unit_no=? AND atom=?',
-                                       array ($object_id, $rack_id, $unit_no, $atom)
+                                       'RackSpace',
+                                       array ('object_id' => $object_id),
+                                       array
+                                       (
+                                               'rack_id' => $rack_id,
+                                               'unit_no' => $unit_no,
+                                               'atom' => $atom,
+                                       )
                                );
                                if ($r === FALSE)
                                        return array ('code' => 500, 'message' => "${rack_name}: Rack ID ${rack_id}, unit ${unit_no}, atom '${atom}' failed to set object_id to '${object_id}'");
@@ -785,7 +790,7 @@ function processGridForm (&$rackData, $unchecked_state, $checked_state, $object_
        }
        if ($rackchanged)
        {
-               resetThumbCache ($rack_id);
+               usePreparedUpdateBlade ('Rack', array ('thumb_data' => NULL), array ('id' => $rack_id));
                return array ('code' => 200, 'message' => "${rack_name}: All changes were successfully saved.");
        }
        else
@@ -1372,10 +1377,10 @@ function bindIpToObject ($ip = '', $object_id = 0, $name = '', $type = '')
 
 function bindIPv6ToObject ($ip = '', $object_id = 0, $name = '', $type = '')
 {
-       return usePreparedExecuteBlade
+       return usePreparedInsertBlade
        (
-               'INSERT INTO IPv6Allocation (ip, object_id, name, type) VALUES (?, ?, ?, ?)',
-               array ($ip, $object_id, $name, $type)
+               'IPv6Allocation',
+               array ('ip' => $ip, 'object_id' => $object_id, 'name' => $name, 'type' => $type)
        );
 }
 
@@ -1437,14 +1442,14 @@ function updateV4Address ($ip = 0, $name = '', $reserved = 'no')
 
 function updateV6Address ($ip, $name = '', $reserved = 'no')
 {
-       usePreparedExecuteBlade ('DELETE FROM IPv6Address WHERE ip = ?', array ($ip));
+       usePreparedDeleteBlade ('IPv6Address', array ('ip' => $ip));
        // INSERT may appear not necessary.
        if ($name == '' and $reserved == 'no')
                return '';
-       $ret = usePreparedExecuteBlade
+       $ret = usePreparedInsertBlade
        (
-               'INSERT INTO IPv6Address (name, reserved, ip) VALUES (?, ?, ?)',
-               array ($name, $reserved, $ip)
+               'IPv6Address',
+               array ('name' => $name, 'reserved' => $reserved, 'ip' => $ip)
        );
        return $ret !== FALSE ? '' : (__FUNCTION__ . 'query failed');
 }
@@ -1460,10 +1465,19 @@ function updateBond ($ip='', $object_id=0, $name='', $type='')
 
 function updateIPv6Bond ($ip='', $object_id=0, $name='', $type='')
 {
-       return usePreparedExecuteBlade
+       return usePreparedUpdateBlade
        (
-               'UPDATE IPv6Allocation SET name=?, type=? WHERE ip=? AND object_id=?',
-               array ($name, $type, $ip, $object_id)
+               'IPv6Allocation',
+               array
+               (
+                       'name' => $name,
+                       'type' => $type,
+               ),
+               array
+               (
+                       'ip' => $ip,
+                       'object_id' => $object_id,
+               )
        );
 }
 
@@ -1478,10 +1492,10 @@ function unbindIpFromObject ($ip, $object_id)
 
 function unbindIPv6FromObject ($ip, $object_id)
 {
-       return usePreparedExecuteBlade
+       return usePreparedDeleteBlade
        (
-               'DELETE FROM IPv6Allocation WHERE ip=? AND object_id=?',
-               array ($ip, $object_id)
+               'IPv6Allocation',
+               array ('ip' => $ip, 'object_id' => $object_id)
        );
 }
 
@@ -1957,11 +1971,16 @@ function commitCreateUserAccount ($username, $realname, $password)
 
 function commitUpdateUserAccount ($id, $new_username, $new_realname, $new_password)
 {
-       return usePreparedExecuteBlade
+       return usePreparedUpdateBlade
        (
-               'UPDATE UserAccount SET user_name=?, user_realname=?, user_password_hash=? ' .
-               'WHERE user_id=?',
-               array ($new_username, $new_realname, $new_password, $id)
+               'UserAccount',
+               array
+               (
+                       'user_name' => $new_username,
+                       'user_realname' => $new_realname,
+                       'user_password_hash' => $new_password,
+               ),
+               array ('user_id' => $id)
        );
 }
 
@@ -2101,27 +2120,6 @@ mysql> select tag_id from TagStorage left join TagTree on tag_id = id where id i
 
 */
 
-// chapter_no is a must, see at @commitReduceDictionary() why
-function commitUpdateDictionary ($chapter_no = 0, $dict_key = 0, $dict_value = '')
-{
-       return usePreparedExecuteBlade
-       (
-               'UPDATE Dictionary SET dict_value=? WHERE chapter_id=? AND dict_key=?',
-               array ($dict_value, $chapter_no, $dict_key)
-       );
-}
-
-function commitUpdateChapter ($chapter_no = 0, $chapter_name = '')
-{
-       if (!strlen ($chapter_name))
-               throw new InvalidArgException ('$chapter_name', $chapter_name);
-       return usePreparedExecuteBlade
-       (
-               'UPDATE Chapter SET name=? WHERE id=? AND sticky="no"',
-               array ($chapter_name, $chapter_no)
-       );
-}
-
 function commitDeleteChapter ($chapter_no = 0)
 {
        return usePreparedDeleteBlade ('Chapter', array ('id' => $chapter_no, 'sticky' => 'no'));
@@ -2221,11 +2219,6 @@ function getAttrMap ()
        return $ret;
 }
 
-function commitUpdateAttribute ($attr_id = 0, $attr_name = '')
-{
-       return usePreparedExecuteBlade ('UPDATE Attribute SET name=? WHERE id=?', array ($attr_name, $attr_id));
-}
-
 // FIXME: don't store garbage in chapter_no for non-dictionary types.
 function commitSupplementAttrMap ($attr_id = 0, $objtype_id = 0, $chapter_no = 0)
 {
@@ -2374,11 +2367,6 @@ function commitUpdateAttrValue ($object_id = 0, $attr_id = 0, $value = '')
        return TRUE;
 }
 
-function commitUseupPort ($port_id = 0)
-{
-       return usePreparedExecuteBlade ('UPDATE Port SET reservation_comment=NULL WHERE id=?', array ($port_id));
-}
-
 function convertPDOException ($e)
 {
        switch ($e->getCode() . '-' . $e->errorInfo[1])
@@ -2533,38 +2521,6 @@ function loadUserConfigCache ($username = NULL)
        return $cache;
 }
 
-function deleteUserConfigVar ($username = NULL, $varname = NULL)
-{
-        usePreparedDeleteBlade ('UserConfig', array ('varname' => $varname, 'user' => $username));
-}
-
-function storeUserConfigVar ($username = NULL, $varname = NULL, $varvalue = NULL)
-{
-       if (!strlen ($username))
-               throw new InvalidArgException ('$username', $username);
-       if (!strlen ($varname))
-               throw new InvalidArgException ('$varname', $varname);
-       if ($varvalue === NULL)
-               throw new InvalidArgException ('$varvalue', $varvalue);
-       return usePreparedExecuteBlade
-       (
-               'REPLACE UserConfig SET varvalue=?, varname=?, user=?',
-               array ($varvalue, $varname, $username)
-       );
-}
-
-// setConfigVar() is expected to perform all necessary filtering
-function storeConfigVar ($varname = NULL, $varvalue = NULL)
-{
-       if ($varvalue === NULL)
-               throw new InvalidArgException ('$varvalue', $varvalue);
-       return usePreparedExecuteBlade
-       (
-               'UPDATE Config SET varvalue=? WHERE varname=?',
-               array ($varvalue, $varname)
-       );
-}
-
 // Database version detector. Should behave corretly on any
 // working dataset a user might have.
 function getDatabaseVersion ()
@@ -2713,18 +2669,6 @@ function loadThumbCache ($rack_id = 0)
        return $ret;
 }
 
-function saveThumbCache ($rack_id = 0, $cache = NULL)
-{
-       if ($cache == NULL)
-               throw new InvalidArgException ('$cache', $cache);
-       usePreparedExecuteBlade ('UPDATE Rack SET thumb_data=? WHERE id=?', array (base64_encode ($cache), $rack_id));
-}
-
-function resetThumbCache ($rack_id = 0)
-{
-       usePreparedExecuteBlade ('UPDATE Rack SET thumb_data=NULL WHERE id=?', array ($rack_id));
-}
-
 // Return the list of attached RS pools for the given object. As long as we have
 // the LB-VS UNIQUE in IPv4LB table, it is Ok to key returned records
 // by vs_id, because there will be only one RS pool listed for each VS of the
@@ -2858,9 +2802,9 @@ function getSLBDefaults ($do_cache_result = FALSE) {
 
 function commitSetInService ($rs_id = 0, $inservice = '')
 {
-       if (!strlen ($inservice))
+       if (! in_array ($inservice, array ('yes', 'no')))
                throw new InvalidArgException ('$inservice', $inservice);
-       return usePreparedExecuteBlade ('UPDATE IPv4RS SET inservice=? WHERE id=?', array ($inservice, $rs_id));
+       return usePreparedUpdateBlade ('IPv4RS', array ('inservice' => $inservice), array ('id' => $rs_id));
 }
 
 function executeAutoPorts ($object_id = 0, $type_id = 0)
@@ -3782,21 +3726,6 @@ function commitReduceVLANDescription ($vdom_id, $vlan_id)
        );
 }
 
-function commitUpdateVLANDescription ($vdom_id, $vlan_id, $vlan_type, $vlan_descr)
-{
-       return usePreparedExecuteBlade
-       (
-               'UPDATE VLANDescription SET vlan_descr=?, vlan_type=? WHERE domain_id=? AND vlan_id=?',
-               array
-               (
-                       !mb_strlen ($vlan_descr) ? NULL : $vlan_descr,
-                       $vlan_type,
-                       $vdom_id,
-                       $vlan_id,
-               )
-       );
-}
-
 function getVLANSwitches()
 {
        $ret = array();
index 22ba665..4be9109 100644 (file)
@@ -444,7 +444,7 @@ $tabhandler['attrs']['editattrs'] = 'renderEditAttributesForm';
 $tabhandler['attrs']['editmap'] = 'renderEditAttrMapForm';
 $ophandler['attrs']['editattrs']['add'] = 'tableHandler';
 $ophandler['attrs']['editattrs']['del'] = 'tableHandler';
-$ophandler['attrs']['editattrs']['upd'] = 'changeAttribute';
+$ophandler['attrs']['editattrs']['upd'] = 'tableHandler';
 $ophandler['attrs']['editmap']['add'] = 'supplementAttrMap';
 $ophandler['attrs']['editmap']['del'] = 'tableHandler';
 
index ca8263f..b66b065 100644 (file)
@@ -233,6 +233,19 @@ $opspec_list['attrs-editattrs-del'] = array
                array ('url_argname' => 'attr_id', 'table_colname' => 'id', 'assertion' => 'uint'),
        ),
 );
+$opspec_list['attrs-editattrs-upd'] = array
+(
+       'table' => 'Attribute',
+       'action' => 'UPDATE',
+       'set_arglist' => array
+       (
+               array ('url_argname' => 'attr_name', 'table_colname' => 'name', 'assertion' => 'string'),
+       ),
+       'where_arglist' => array
+       (
+               array ('url_argname' => 'attr_id', 'table_colname' => 'id', 'assertion' => 'uint'),
+       ),
+);
 $opspec_list['dict-chapters-add'] = array
 (
        'table' => 'Chapter',
@@ -934,27 +947,43 @@ function updateUser ()
 }
 
 $msgcode['updateDictionary']['OK'] = 51;
-$msgcode['updateDictionary']['ERR'] = 109;
 function updateDictionary ()
 {
        assertUIntArg ('dict_key');
        assertStringArg ('dict_value');
-       if (FALSE !== commitUpdateDictionary ($_REQUEST['chapter_no'], $_REQUEST['dict_key'], $_REQUEST['dict_value']))
-               return buildRedirectURL (__FUNCTION__, 'OK');
-       else
-               return buildRedirectURL (__FUNCTION__, 'ERR');
+       // this request must be built with chapter_no
+       usePreparedUpdateBlade
+       (
+               'Dictionary',
+               array ('dict_value' => $sic['dict_value']),
+               array
+               (
+                       'chapter_id' => $sic['chapter_no'],
+                       'dict_key' => $sic['dict_key'],
+               )
+       );
+       return buildRedirectURL (__FUNCTION__, 'OK');
 }
 
 $msgcode['updateChapter']['OK'] = 51;
-$msgcode['updateChapter']['ERR'] = 109;
 function updateChapter ()
 {
        assertUIntArg ('chapter_no');
        assertStringArg ('chapter_name');
-       if (FALSE !== commitUpdateChapter ($_REQUEST['chapter_no'], $_REQUEST['chapter_name']))
-               return buildRedirectURL (__FUNCTION__, 'OK');
-       else
-               return buildRedirectURL (__FUNCTION__, 'ERR');
+       usePreparedUpdateBlade
+       (
+               'Chapter',
+               array
+               (
+                       'name' => $chapter_name,
+               ),
+               array
+               (
+                       'id' => $chapter_no,
+                       'sticky' => 'no', // note this constant, it protects system chapters
+               )
+       );
+       return buildRedirectURL (__FUNCTION__, 'OK');
 }
 
 $msgcode['delChapter']['OK'] = 49;
@@ -968,18 +997,6 @@ function delChapter ()
                return buildRedirectURL (__FUNCTION__, 'ERR');
 }
 
-$msgcode['changeAttribute']['OK'] = 51;
-$msgcode['changeAttribute']['ERR'] = 109;
-function changeAttribute ()
-{
-       assertUIntArg ('attr_id');
-       assertStringArg ('attr_name');
-       if (FALSE !== commitUpdateAttribute ($_REQUEST['attr_id'], $_REQUEST['attr_name']))
-               return buildRedirectURL (__FUNCTION__, 'OK');
-       else
-               return buildRedirectURL (__FUNCTION__, 'ERR');
-}
-
 $msgcode['supplementAttrMap']['OK'] = 48;
 $msgcode['supplementAttrMap']['ERR1'] = 154;
 $msgcode['supplementAttrMap']['ERR2'] = 110;
@@ -1152,7 +1169,7 @@ function updateObject ()
 
        // Invalidate thumb cache of all racks objects could occupy.
        foreach (getResidentRacksData ($_REQUEST['object_id'], FALSE) as $rack_id)
-               resetThumbCache ($rack_id);
+               usePreparedUpdateBlade ('Rack', array ('thumb_data' => NULL), array ('id' => $rack_id));
 
        return buildRedirectURL (__FUNCTION__, 'OK');
 }
@@ -1244,7 +1261,7 @@ function deleteObject ()
        $racklist = getResidentRacksData ($_REQUEST['object_id'], FALSE);
        commitDeleteObject ($_REQUEST['object_id']);
        foreach ($racklist as $rack_id)
-               resetThumbCache ($rack_id);
+               usePreparedUpdateBlade ('Rack', array ('thumb_data' => NULL), array ('id' => $rack_id));
        return buildRedirectURL (__FUNCTION__, 'OK', array ($oinfo['dname']));
 }
 
@@ -1256,19 +1273,29 @@ function resetObject ()
        $racklist = getResidentRacksData ($_REQUEST['object_id'], FALSE);
        commitResetObject ($_REQUEST['object_id']);
        foreach ($racklist as $rack_id)
-               resetThumbCache ($rack_id);
+               usePreparedUpdateBlade ('Rack', array ('thumb_data' => NULL), array ('id' => $rack_id));
        return buildRedirectURL (__FUNCTION__, 'OK');
 }
 
 $msgcode['useupPort']['OK'] = 49;
-$msgcode['useupPort']['ERR'] = 111;
 function useupPort ()
 {
+       global $sic;
        assertUIntArg ('port_id');
-       if (FALSE !== commitUseupPort ($_REQUEST['port_id']))
-               return buildRedirectURL (__FUNCTION__, 'OK');
-       else
-               return buildRedirectURL (__FUNCTION__, 'ERR');
+       usePreparedUpdateBlade
+       (
+               'Port',
+               array
+               (
+                       'reservation_comment' => NULL,
+               ),
+               array
+               (
+                       'object_id' => $sic['object_id'],
+                       'id' => $sic['port_id'],
+               )
+       );
+       return buildRedirectURL (__FUNCTION__, 'OK');
 }
 
 $msgcode['updateUI']['OK'] = 51;
@@ -1951,7 +1978,8 @@ function updateRack ()
        assertStringArg ('rack_name');
        assertStringArg ('rack_comment', TRUE);
 
-       resetThumbCache ($_REQUEST['rack_id']);
+       global $sic;
+       usePreparedUpdateBlade ('Rack', array ('thumb_data' => NULL), array ('id' => $sic['rack_id']));
        if (TRUE === commitUpdateRack ($_REQUEST['rack_id'], $_REQUEST['rack_name'], $_REQUEST['rack_height'], $_REQUEST['rack_row_id'], $_REQUEST['rack_comment']))
                return buildRedirectURL (__FUNCTION__, 'OK', array ($_REQUEST['rack_name']));
        else
@@ -2247,7 +2275,6 @@ function delVLANDescription ()
 
 $msgcode['updVLANDescription']['OK'] = 51;
 $msgcode['updVLANDescription']['ERR1'] = 105;
-$msgcode['updVLANDescription']['ERR2'] = 109;
 function updVLANDescription ()
 {
        assertUIntArg ('vlan_id');
@@ -2256,14 +2283,21 @@ function updVLANDescription ()
        global $sic;
        if ($sic['vlan_id'] == VLAN_DFL_ID)
                return buildRedirectURL (__FUNCTION__, 'ERR1');
-       $result = commitUpdateVLANDescription
+       usePreparedUpdateBlade
        (
-               $sic['vdom_id'],
-               $sic['vlan_id'],
-               $sic['vlan_type'],
-               $sic['vlan_descr']
+               '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__, $result !== FALSE ? 'OK' : 'ERR2');
+       return buildRedirectURL (__FUNCTION__, 'OK');
 }
 
 $msgcode['createVLANDomain']['OK'] = 48;
index 7955b01..b3d4976 100644 (file)
@@ -157,7 +157,7 @@ function renderRackThumb ($rack_id = 0)
                $capture = ob_get_clean();
                header("Content-type: image/png");
                echo $capture;
-               saveThumbCache ($rack_id, $capture);
+               usePreparedUpdateBlade ('Rack', array ('thumb_data' => base64_encode ($capture)), array ('id' => $rack_id));
                return;
        }
        // error text in the buffer