r1827 + initial code for immediate tagging
[racktables] / inc / database.php
index 093b489c08ed6c929767e86a2dbcd42431c2fadc..616ceb317d4e260405f017a2f05277efe4a790d4 100644 (file)
@@ -891,16 +891,29 @@ function getObjectAddresses ($object_id = 0)
        return $ret;
 }
 
-function getAddressspaceList ()
+function getAddressspaceList ($tagfilter = array())
 {
+       if (!count ($tagfilter))
+               $whereclause = '';
+       else
+       {
+               $whereclause = 'where ';
+               $orclause = '';
+               foreach ($tagfilter as $tag_id)
+               {
+                       $whereclause .= $orclause . 'tag_id = ' . $tag_id;
+                       $orclause = ' or ';
+               }
+       }
        $query =
                "select ".
                "id as IPRanges_id, ".
                "INET_NTOA(ip) as IPRanges_ip, ".
                "mask as IPRanges_mask, ".
                "name as IPRanges_name ".
-               "from IPRanges ".
-               "order by ip";
+               "from IPRanges left join TagStorage on IPRanges.id = TagStorage.target_id and target_realm = 'ipv4net' " .
+               $whereclause .
+               " order by ip";
        $result = useSelectBlade ($query);
        $ret=array();
        $count=0;
@@ -2406,6 +2419,21 @@ function loadIPv4PrefixTags ($id)
        return loadEntityTags ('ipv4net', $id);
 }
 
+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();
@@ -2453,7 +2481,7 @@ function commitDestroyTag ($tagid = 0)
 function wipeTags ($realm, $id)
 {
        global $dbxlink;
-       $query = "delete from TagStorage where target_realm = 'object' and target_id = ${id}";
+       $query = "delete from TagStorage where target_realm = '${realm}' and target_id = ${id}";
        $result = $dbxlink->exec ($query);
        if ($result === NULL)
                return FALSE;