Forum Discussion

Vadym_Chepkov's avatar
Vadym_Chepkov
Icon for Nimbostratus rankNimbostratus
Nov 24, 2015

confine iRule within a partition

I have an iRule which looks like this:

when HTTP_REQUEST {
  if {([string tolower [HTTP::uri]] starts_with "/profile")} {
        pool profile_3111
  }
  else {
        pool ecentral_4111
  }
}

default pool for the VIP is

ecentral_4111
. pool is in offline status, but the VIP is online, because pool
profile_3111
is online. That's understandable. What I don't understand, why do I get reply back, when request doesn't contain '/profile' ?

I opened a support ticket and engineer replied to me, this is because another pool with the same name but in a different partition is online. This can't be a proper behavior, is it? And if it's indeed works as expected, how do I confine traffic within a partition?

Thanks, Vadym

  • Best option to create pool with different object name & try. I guess its not bug/issue.

     

  • I think it's a bug.

     

    If you keep pools name the same you don't have to create different set of irules for each environment under source control. You can just change name of the partition.

     

  • Partitions are useful only to group configuration for user permissions, route domains, sync-only groups etc. There is not a real isolation. Using it only to organize the configuration like real directories, IMHO, is a mistake. Moreover, I don't know if it's possible to programatically redirect a VS to an offline pool and expect it to dynamically inherit the new pool state, maybe would be better to check the pool state before redirecting in order to reject the connection manually in case of errors.