ltm rule command findclassΒΆ

iRule(1)		      BIG-IP TMSH Manual		      iRule(1)



findclass
       Searches a data group list for a member that starts with the specified
       string and returns the data-group member string.

SYNOPSIS
       findclass STRING DATA_GROUP (SEPARATOR)?

DESCRIPTION
       Searches a data group list for a member whose key matches the specified
       string, and if a match is found, returns the data-group member string.

       Note: findclass has been deprecated in v10 in favor of the new class
       commands. The class command offers better functionality and performance
       than findclass Only the key value of the data group list member (the
       portion up to the first separator character, which defaults to space
       unless otherwise specified) is compared to the specified string to
       determine a match.

       If a match is found, and no separator character is specified, the
       command returns the entire member value associated with the matched key
       (including the key).

       If a match is found and a separator is specified, the data group member
       is split at the first separator, and the portion of the list member
       following the first separator is returned.  Note that you should not
       use a $:: or :: prefix on the datagroup name when using the class
       command (or in any datagroup reference on 9.4.4 or later).

       In v9.4.4 - 10, using $::datagroup_name will work but demote the
       virtual server from running on all TMMs. For details, see the CMP
       compatibility page.

       In v11, using $::datagroup_name will result in a runtime error and TCP
       reset being sent to the client!

       Syntax

       findclass  

	    * Searches for a member whose key exactly matches . If a match is
	      found, it returns the entire data group list member intact,
	      including the key and the separator.

       findclass   

	    * Searches for a member whose key exactly matches . If a match is
	      found, it returns the portion of the data group list member
	      following the first instance of .

RETURN VALUE
VALID DURING
       ANY_EVENT

EXAMPLES
	class dest_pairs_dg {
	  "8080 proxy"
	  "8020 snatpool2"
	  "8081 proxy2"
	  "8084 proxy3"
	  "8140 snatpool6"
	}

	when CLIENT_ACCEPTED {
	  set my_spool [findclass [TCP::local_port] dest_pairs_dg " "]
	  if { $my_spool ne "" } {
	    snatpool $my_spool
	  }
	}


	class URIredirects_dg {
	  "/dir1/dir2/dir3/ http://somehost.somewhere.com/redirect_target.html"
	  "/dir4/dir5/dir6/ http://someotherhost.nowhere.com/redirect_target.html"
	}

	when HTTP_REQUEST {
	  set location [findclass [HTTP::uri] URIredirects_dg " "]
	  if { $location ne "" } {
	    HTTP::redirect $location
	  }
	}


	class myRedirects_dg {
	  "host1.domain.com 302 https://securehost.domain.com"
	  "host2.domain.com 301 https://securehost2.domain.com"
	}

	when HTTP_REQUEST {

	   # Check if there is a class entry which starts with the requested URI
	set row [findclass [string tolower [HTTP::host]] myRedirects_dg]

	   # Check if there was a matched row
	if { $row ne "" }{

	      # Send a response using the status and location from the class
	      HTTP::respond [getfield $row " " 2] Location [getfield $row " " 3][HTTP::uri] Connection Close

	      # Clear the row variable
	      unset row
	   }
	}

HINTS
SEE ALSO
CHANGE LOG
       @BIGIP-9.0.0 --First introduced the command.



BIG-IP				  2017-01-31			      iRule(1)