r1816 + added tagging code for virtual service, RS pools and IP address
authorDenis Ovsienko <infrastation@yandex.ru>
Sat, 22 Mar 2008 20:57:08 +0000 (20:57 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Sat, 22 Mar 2008 20:57:08 +0000 (20:57 +0000)
inc/database.php
inc/functions.php
inc/interface.php
inc/navigation.php
inc/ophandlers.php

index 36b8ef740d290ae593c09c853ade91903d8fb36c..2a551eed45c3a53c47688de2e47a4196a8d5c5f6 100644 (file)
@@ -2411,6 +2411,16 @@ function loadRackTags ($id)
        return loadEntityTags ('rack', $id);
 }
 
+function loadIPv4VSTags ($id)
+{
+       return loadEntityTags ('ipv4vs', $id);
+}
+
+function loadIPv4RSPoolTags ($id)
+{
+       return loadEntityTags ('ipv4rspool', $id);
+}
+
 function getTagList ()
 {
        $taglist = array();
index 1a98db7aa442fe854f85d3991f67162cd66d8cc4..33e64a69f90a528d41f9e9b2c6c95c29e41ba082 100644 (file)
@@ -1454,7 +1454,7 @@ function loadRackObjectAutoTags()
        $oinfo = getObjectInfo ($object_id);
        $ret = array();
        $ret[] = array ('tag' => '$id_' . $_REQUEST['object_id']);
-       $ret[] = array ('tag' => '$allobjects');
+       $ret[] = array ('tag' => '$any_object');
        return $ret;
 }
 
@@ -1464,8 +1464,10 @@ function loadIPv4PrefixAutoTags()
        $subnet = getIPRange ($_REQUEST['id']);
        $ret = array();
        $ret[] = array ('tag' => '$id_' . $_REQUEST['id']);
-       $ret[] = array ('tag' => '$allipv4nets');
        $ret[] = array ('tag' => '$ipv4net-' . str_replace ('.', '-', $subnet['ip']) . '-' . $subnet['mask']);
+       // FIXME: find and list tags for all parent networks
+       $ret[] = array ('tag' => '$any_ipv4net');
+       $ret[] = array ('tag' => '$any_net');
        return $ret;
 }
 
@@ -1474,7 +1476,38 @@ function loadRackAutoTags()
        assertUIntArg ('rack_id');
        $ret = array();
        $ret[] = array ('tag' => '$id_' . $_REQUEST['rack_id']);
-       $ret[] = array ('tag' => '$allracks');
+       $ret[] = array ('tag' => '$any_rack');
+       return $ret;
+}
+
+function loadIPv4AddressAutoTags()
+{
+       assertIPv4Arg ('ip');
+       $ret = array();
+       $ret[] = array ('tag' => '$ipv4net-' . str_replace ('.', '-', $subnet['ip']) . '-32');
+       // FIXME: find and list tags for all parent networks
+       $ret[] = array ('tag' => '$any_ipv4net');
+       $ret[] = array ('tag' => '$any_net');
+       return $ret;
+}
+
+function loadIPv4VSAutoTags()
+{
+       assertUIntArg ('id');
+       $ret = array();
+       $ret[] = array ('tag' => '$id_' . $_REQUEST['id']);
+       $ret[] = array ('tag' => '$any_ipv4vs');
+       $ret[] = array ('tag' => '$any_vs');
+       return $ret;
+}
+
+function loadIPv4RSPoolAutoTags()
+{
+       assertUIntArg ('id');
+       $ret = array();
+       $ret[] = array ('tag' => '$id_' . $_REQUEST['id']);
+       $ret[] = array ('tag' => '$any_ipv4rspool');
+       $ret[] = array ('tag' => '$any_rspool');
        return $ret;
 }
 
index 73c84d7ccefbc5c07d6352b89c95a775abf1a90e..a23419584c389740c63c9d55eaf995cb947a763e 100644 (file)
@@ -4712,6 +4712,16 @@ function renderRackTags ($id)
        renderEntityTags ('rack', 'rack_id', $id);
 }
 
+function renderIPv4VSTags ($id)
+{
+       renderEntityTags ('ip4vs', 'id', $id);
+}
+
+function renderIPv4RSPoolTags ($id)
+{
+       renderEntityTags ('ip4rspool', 'id', $id);
+}
+
 function renderEntityTags ($entity_realm = '', $bypass_name, $entity_id = 0)
 {
        if ($entity_realm == '' or $entity_id <= 0)
index 33dfaa7c352fb3c7cc68541342bdc8406ede67d6..16b7937e54d66ad01af80bd8b609438f34255d52 100644 (file)
@@ -156,6 +156,7 @@ $ophandler['iprange']['tags']['save'] = 'saveIPv4PrefixTags';
 $page['ipaddress']['title_handler'] = 'dynamic_title_ipaddress';
 $page['ipaddress']['parent'] = 'iprange';
 $page['ipaddress']['bypass'] = 'ip';
+$page['ipaddress']['autotagloader'] = 'loadIPv4AddressAutoTags';
 $tab['ipaddress']['default'] = 'Browse';
 $tab['ipaddress']['properties'] = 'Properties';
 $tab['ipaddress']['assignment'] = 'Allocation';
@@ -186,10 +187,15 @@ $page['vservice']['title_handler'] = 'dynamic_title_vservice';
 $page['vservice']['parent'] = 'vservices';
 $page['vservice']['bypass'] = 'id';
 $page['vservice']['bypass_type'] = 'uint';
+$page['vservice']['tagloader'] = 'loadIPv4VSTags';
+$page['vservice']['autotagloader'] = 'loadIPv4VSAutoTags';
 $tab['vservice']['default'] = 'View';
 $tab['vservice']['edit'] = '[Edit]';
 $tab['vservice']['editlblist'] = '[Load balancers]';
+$tab['vservice']['tags'] = 'Tags';
 $tabhandler['vservice']['default'] = 'renderVirtualService';
+$tabhandler['vservice']['tags'] = 'renderIPv4VSTags';
+$trigger['vservice']['tags'] = 'trigger_tags';
 
 $page['rspools']['title'] = 'RS pools';
 $page['rspools']['parent'] = 'ipv4slb';
@@ -205,16 +211,21 @@ $page['rspool']['title_handler'] = 'dynamic_title_rspool';
 $page['rspool']['parent'] = 'rspools';
 $page['rspool']['bypass'] = 'id';
 $page['rspool']['bypass_type'] = 'uint';
+$page['rspool']['tagloader'] = 'loadIPv4RSPoolTags';
+$page['rspool']['autotagloader'] = 'loadIPv4RSPoolAutoTags';
 $tab['rspool']['default'] = 'View';
 $tab['rspool']['edit'] = '[Edit]';
 $tab['rspool']['editlblist'] = 'Load Balancers';
 $tab['rspool']['editrslist'] = 'RS list';
 $tab['rspool']['rsinservice'] = 'RS in service';
+$tab['rspool']['tags'] = 'Tags';
 $trigger['rspool']['rsinservice'] = 'trigger_poolrscount';
+$trigger['rspool']['tags'] = 'trigger_tags';
 $tabhandler['rspool']['default'] = 'renderRSPool';
 $tabhandler['rspool']['editrslist'] = 'renderRSPoolServerForm';
 $tabhandler['rspool']['editlblist'] = 'renderRSPoolLBForm';
 $tabhandler['rspool']['rsinservice'] = 'renderRSPoolRSInServiceForm';
+$tabhandler['rspool']['tags'] = 'renderIPv4RSPoolTags';
 $ophandler['rspool']['editrslist']['addRS'] = 'addRealServer';
 $ophandler['rspool']['editrslist']['delRS'] = 'deleteRealServer';
 $ophandler['rspool']['editrslist']['updRS'] = 'updateRealServer';
index 9bef56beaf2d29f216c7c8f58c726b204a5239ca..e94ff85cbcbfd3803fb088fba3429f041aff922b 100644 (file)
@@ -1353,6 +1353,16 @@ function saveRackTags ()
        return saveEntityTags ('rack', 'rack_id');
 }
 
+function saveIPv4VSTags ()
+{
+       return saveEntityTags ('ipv4vs', 'id');
+}
+
+function saveIPv4RSPoolTags ()
+{
+       return saveEntityTags ('ipv4rspool', 'id');
+}
+
 function destroyTag ()
 {
        global $root, $pageno, $tabno;