This snippet adds UI tweaks to v12 (for v13 and v14 devices, use the BETA). It's been tested by me, but use it at your own risk. :)
Here's a list of what it does:
Pool list member statuses
When the pools contains one available member the status is still green today. This script shows you icons depending on what different statuses a pool contains.
Pool details on mouse over
Hovering the mouse over a status icon shows the member details:
Custom loading screen
Got a big partition so the statuses takes a while to load? No problem, the script will let you know when it's finished.
Default options when creating a pool
Pool name suffix, action on service down, load balancing method, and select node node instead of creating a new one can be pre-populated for you by editing the configuration.
Automatically generated monitor tests
Test strings for browser, curl and netcat commands are generated automatically for http monitors.
Detecting data group lists
The when editing an iRule the script will detect the used data group lists and show them on the left hand side. Hovering the mouse over a data group list name will show it's content. Clicking on it will take you to that data group lists configuration form.
No more accidentally deleting data group list records
If you use data group lists as much as we do there's a chance that you have encountered this scenario. You need to edit a record, so you click on the "Edit" button, change the entries and then click on update. Ooops, now that record was deleted.
Instead, the script would disable the edit button after clicking on it. It won't be enabled again until either after you click add, or when you clear the text in the input fields.
The script allows you to do bulk edits to your data group lists.
Merge the lists: Takes all the records in the import text area, compares them to the active list and imports the records that does not have duplicate keys.
This means that if "apple" := "banana" exists in the active list and the import list has "apple" := "banana", then "apple" := "banana" won't be imported.
Replace the current list: Takes all the records in the import text area and replaces the active list. Duplicate records are ignored like with "Merge the lists".
Edit active list: Moves all the records from the active list to the import list.
Automatically match SSL Client profile name, certificate and key
When creating an SSL profile the script will attempt to find a matching certificate and key according to the name of the profile. So when you click on on the add button in the Client SSL Profile form you'd get everything automatically populated for you (providing that you have configured the default chain in the script).
Pre-populated profiles for creating certificate signing requests.
Click on the new script icon:
Paste the content of the js file in the window and click on the save icon (floppy drive).
Caching data group list contents when doing the popup instead of fetching them every time.
Removing old code.
Script is freakn' awesome! Works like a charm...Can't believe you got no feedback on the post. Spared me the grueling monotonous work of manual data group entry. Thank you, sir!
Thanks for the feedback. I find that in general people don't bother to do what you just did (just saying thanks). So thank you too, for the kind words! :)
Hi Very nice script. Indeed it's very helpful. Could you please add search field for partitions list. When you have a lot of partitions searching is terrible, with additional field it will be very helpfull.
Is anybody try this scripts on F5 ver. 13.1
I try use this but I don't see effects.
Thanks for informations.
I'd expect this is for v12.x only as v13 introduced a lot of new features and changes.
It would be great to see a v13 compatible version though! :)
I chose to only support v12 simply because I didn't have any v13 in use when I wrote it. However, most functions should work. It's not harder than changing a row actually. I'll add a "beta" if any of you wants to try?
Oh, and if you guys like the script, feel free to rate it. :)
I'd be game to try a v13 beta and feed back any issues etc - thank you for your time and efforts!
Thanks Dan, much appreciated! I'm adding a feature that Tom requested now. Will update with that feature and a v13 beta tomorrow.
Thanks to Tom for suggesting it.
I think most of the features should work on v13 too but I have had no time to test them. If you're willing to help here I'd be very grateful. To activate, scroll down to the bottom of the setting section and change allow13 = false; to allow13 = true;.
The previous implementation was a completely separate edition of the script. Which meant that if you wanted to enable it you'd have to switch the code and when you finally had enough snow you'd have to switch again. Annoying.
Instead, now a form would show up automatically in December where you can choose to activate or deactivate the Christmas theme.
Don't you worry, you can totally supress the theme by changing var allowChristmas = true; to var allowChristmas = false;. Can't promise Santa will bring you any presents if you do though.
A bit of an easter egg. If you set var alwaysChristmas = true; in the settings section you can enjoy the theme all year long. :)
Last week I tested script in F5 version 13. I didn't see any issues. Work perffectly.
I thank you very much especially for partition search.
No problem, thanks for reporting in regarding the v13 things too. How about you Dan? Any news?
Unfortunately I'm currently having a little fight with our company security guys over being able to install tampermonkey! Should hopefully be resolved soon!
The joys of working in a corporate environment... :o/
I can understand where they're coming from. But it's not like the code is obfuscated or automatically updated. However, Tampermonkey might be. Go sway them with some whiskey or, if that won't work perhaps a neck rub. Perhaps that'll scare them away. :)
I've got a possible bug to report. I observed this in the previous version as well as after upgrading to 2.0.7. With the script simply enabled in my browser (Firefox), the WebUI will eventually crash and restart. Because of this I only run the script on the Standby node then sync the changes to the Active node to prevent any potential outages in prod.
This seems like a bad one. Never seen it myself and we are a whole bunch of people using the script at my previous work place.
I wonder, is your configuration very large, or the specs very low? Are you often using the Read Only partition?
The only part of the script that I can think of of the top of my head that could affect the UI is the pool status. Let me create a custom version for you removing the heavy parts.
If it makes you feel better until then I can also tell you that it's safe to restart the webui process as it's separates from tmm.
Get back to you.
I'm not sure what constitutes large in the industry but my config contains north of 7000 objects. Specs seem to be fine as I haven't experienced any other performance issues.
Let's say a pool has 2 members, that would count as 3 items. A pool with 4 members counts as 5.
In that case, roughly how many do you have?
I've got 2000 pools with 1500 nodes.
Wow, at least to me that's a big config.
Have you divided it into multiple partitions? If so, do you have any partitions that is super large?
I updated with a version that removes the pool status improvements from the pool list. Could you please see if that helped?
I've got everything in the common partition.
Sure, how do I get a hold of the revised code?
Sorry about that, I forgot to click on the submit button. The code is there now. :)
Thanks! No more crashing when viewing pools. When viewing an iRule and clicking on the data group under "Detected Data group lists", it just "loads" forever. It's no big deal but just an FYI.
Ran some quick tests on v14 and it works there too. :)
Take that back. Pool status is not working for v14. :)
Nice Job Patrik!!!