Forum Discussion
Checking session subtable in IRule
What is the correct way of checking if a session subtable with given name exists in IRule ?
In the use case I am working I need to distinguish between a subtable which has no rows and a subtable which has not been created.
Appreciate any help with this.
Thanks
- What_Lies_Bene1Cirrostratus
Hmmm, the only thing I can think of is to add a test row every time you create a table. Then you can do a count for a table that is empty (1 entry) and use an if with an attempt to increment the test row value, it'll return 0 if the subtable doesn't exist. Make sense?
- What_Lies_Bene1Cirrostratus
Hmmm, the only thing I can think of is to add a test row every time you create a table. Then you can do a count for a table that is empty (1 entry) and use an if with an attempt to increment the test row value, it'll return 0 if the subtable doesn't exist. Make sense?
- samstepCirrocumulus
I don't think it is possible to distinguish, why would you need to do that? I believe a subtable with all keys removed simply ceases to exist...
if {[table keys -subtable sometable -count] ==0} { subtable is empty or does not exist }
if you really need to do this then you can place a dummy key in your subtable and ccheck for it using "-mustexist" option.
Extract from Wiki: https://devcentral.f5.com/wiki/iRules.table.ashx?lc=1
" If -mustexist is specified, and the key does not already exist, no action will be taken, and an empty string will be returned. Cannot be specified with -excl.If -excl is specified, and the key already exists, the key will not be inserted, and the existing value will be returned. Cannot be specified with -mustexist. "
Hope this helps,
Sam
- Kris82_167334Nimbostratus
Thanks for the answers. That is how I have done it so far, by placing a dummy row. My criterion is a typical one of counter number of requests in X minute interval window, however I want to differentiate between a user who is coming in for first time to one who has visited before X minutes.
I was looking if there is a more cleaner approach for testing existence of a table, rather than putting in a dummy row with indefinite lifetime.
From answers, Looks like it is not possible.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com