vsg deletion
authorAlexey Andriyanov <alan@al-an.info>
Thu, 16 May 2013 16:59:00 +0000 (20:59 +0400)
committerAlexey Andriyanov <alan@al-an.info>
Sun, 19 May 2013 10:50:23 +0000 (14:50 +0400)
wwwroot/inc/navigation.php
wwwroot/inc/ophandlers.php
wwwroot/inc/slb2-interface.php
wwwroot/inc/slbv2.php

index faaa912953259b76a6f1e6e20b9439b8eb269ff7..d57be4f2bd6d1c504cf701b325a85a88b2982351 100644 (file)
@@ -424,6 +424,7 @@ $tabhandler['ipvs']['tags'] = 'renderEntityTags';
 $tabhandler['ipvs']['files'] = 'renderFilesForEntity';
 $tabhandler['ipvs']['convert'] = 'renderIPVSConvert';
 $ophandler['ipvs']['edit']['updVS'] = 'updateVS';
+$ophandler['ipvs']['edit']['del'] = 'deleteVS';
 $ophandler['ipvs']['edit']['addIP'] = 'addIPToVS';
 $ophandler['ipvs']['edit']['addPort'] = 'addPortToVS';
 $ophandler['ipvs']['edit']['updIP'] = 'updateIPInVS';
index 106447492ae9dfaf60291d8ce52ede94b03d4986..4a4bb389fda7ca9c108ecb728607f6ce01d104ad 100644 (file)
@@ -1608,6 +1608,16 @@ function deleteVService ()
        return buildRedirectURL ('ipv4slb', 'default');
 }
 
+function deleteVS()
+{
+       $vsinfo = spotEntity ('ipvs', assertUIntArg ('vs_id'));
+       if (count (getTriplets ($vsinfo)) != 0)
+               return showError ("Could not delete linked virtual service group");
+       commitDeleteVSG ($vsinfo['id']);
+       showSuccess (formatEntityName ($vsinfo) . ' deleted');
+       return buildRedirectURL ('ipv4slb', 'vs');
+}
+
 $msgcode['updateSLBDefConfig']['OK'] = 43;
 function updateSLBDefConfig ()
 {
index eb7bdc182b9929a55056ab449a1305611f17deef..1fb8213adf251390da35c62bc51b78963249574a 100644 (file)
@@ -145,6 +145,13 @@ function renderEditVS ($vs_id)
        echo '<tr><th class=tdright>RS config:</th><td class=tdleft><textarea name=rsconfig rows=3 cols=80>' . htmlspecialchars ($vsinfo['rsconfig']) . '</textarea></td></tr>';
        echo '<tr><th></th><th>';
        printImageHREF ('SAVE', 'Save changes', TRUE);
+       // delete link
+       $triplets = getTriplets ($vsinfo);
+       echo '<span style="margin-left: 2em"></span>';
+       if (count ($triplets) > 0)
+               echo getOpLink (NULL, '', 'NODESTROY', "Could not delete: there are " . count ($triplets) . " LB links");
+       else
+               echo getOpLink (array ('op' => 'del', 'id' => $vsinfo['id']), '', 'DESTROY', 'Delete', 'need-confirmation');
        echo '</th></tr>';
        echo '</table></form>';
 
index 34ef6cd0983ad219c2c7f09d106646e0df887990..22b9e84c5ffe933e9b46b6fc7b728109b9a4f0df 100644 (file)
@@ -612,3 +612,10 @@ function buildVSMigratePlan ($new_vs_id, $vs_id_list)
 
        return $ret;
 }
+
+function commitDeleteVSG ($id)
+{
+       releaseFiles ('ipvs', $id);
+       destroyTagsForEntity ('ipvs', $id);
+       usePreparedDeleteBlade ('VS', array ('id' => $id));
+}