Learn F5 Technologies, Get Answers & Share Community Solutions Join DevCentral

Filter by:
  • Solution
  • Technology
code share

WebUI Tweaks

Problem this snippet solves:

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 improvements

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.

  • If all members are disabled, the color is black.
  • If the pool contains both available and members being down, the circle is half green, half red.

Image Text

Pool details on mouse over

Hovering the mouse over a status icon shows the member details:

Image Text

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.

Image Text

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.

Image Text

iRule improvements

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.

Image Text

Data group list improvements

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.

Image Text

Bulk import

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.

Client SSL Profile improvements

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).

Image Text

SSL CSR improvements

Pre-populated profiles for creating certificate signing requests.

Image Text

Other small things

  • Larger select fields when ie. choosing monitors, editing data group lists.
  • Mark objects in the current partition with bold text to distinguish them from the common partition.
  • Adds a link to the default pool in the virtual server resources configuration page.

Beta

  • The script parses the LTM log and displays the content in the top bar.

Image Text

How to use this snippet:

Installation instructions

  1. Download Tampermonkey for Chrome or Firefox.
  2. Download the script from https://github.com/epacke/F5-UI-FrontendEnhancements or if you want to be on the edge, the beta version fromhttps://github.com/epacke/F5-UI-FrontendEnhancements/blob/master/F5-Frontend-Enhancements-beta.js
  3. Click on the small icon at the top right corner of your browser and select "Dashboard".
  4. Click on the new script icon: Image Text

  5. Paste the content of the js file in the window and click on the save icon (floppy drive).

Done.

Comments on this Snippet
Comment made 30-Dec-2017 by Patrik Jonsson 3488

Version 2.0.3

  • Making data group list parsing in iRules ~10x faster.
  • Now matching data group lists across all partitions instead of just common and current.
  • Only loading data group list content when the user hovers the mouse over a data group list name.

/Patrik

0
Comment made 31-Dec-2017 by Patrik Jonsson 3488

Version 2.0.4

Caching data group list contents when doing the popup instead of fetching them every time.

/Patrik

0
Comment made 31-Dec-2017 by Patrik Jonsson 3488

Version 2.0.5

Removing old code.

0
Comment made 07-Feb-2018 by atatps 44

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!

0
Comment made 07-Feb-2018 by Patrik Jonsson 3488

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! :)

0
Comment made 02-Mar-2018 by Tom 109

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.

Regards. Tomek M.

0
Comment made 02-Mar-2018 by Tom 109

Hi again. Is anybody try this scripts on F5 ver. 13.1 I try use this but I don't see effects.

Thanks for informations.

Reards Tom

0
Comment made 02-Mar-2018 by Dan Bowman 187

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! :)

0
Comment made 02-Mar-2018 by Patrik Jonsson 3488

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. :)

1
Comment made 02-Mar-2018 by Dan Bowman 187

I'd be game to try a v13 beta and feed back any issues etc - thank you for your time and efforts!

0
Comment made 02-Mar-2018 by Patrik Jonsson 3488

Thanks Dan, much appreciated! I'm adding a feature that Tom requested now. Will update with that feature and a v13 beta tomorrow.

/Patrik

0
Comment made 02-Mar-2018 by Patrik Jonsson 3488

Version 2.0.7

Added partition filter at the top right corner

  • Simply write to filter the partition drop down menu.
  • Hitting enter while in the filter box activates the currently selected option.
  • Any filter entered is saved and re-entered upon partition change. So if you have a prefix in your partitions and only want to use with ie. partitions named "Bank-Backend", "Bank-Frontend" and "Bank-CDE" you can simply enter "Bank-".

Thanks to Tom for suggesting it.

Option to activate the script on v13

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;.

Christmas edition is build in to the script

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.

For those real grinches out there (or 100% professional consultants wanting to keep thing legit):

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.

And for Devcentral member Boneyard

A bit of an easter egg. If you set var alwaysChristmas = true; in the settings section you can enjoy the theme all year long. :)

0
Comment made 08-Mar-2018 by Tom 109

Hi 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.

Regards Tom

0
Comment made 09-Mar-2018 by Patrik Jonsson 3488

No problem, thanks for reporting in regarding the v13 things too. How about you Dan? Any news?

/Patrik

0
Comment made 09-Mar-2018 by Dan Bowman 187

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/

0
Comment made 09-Mar-2018 by Patrik Jonsson 3488

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. :)

/Patrik

2
Comment made 13-Mar-2018 by atatps 44

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.

Image Text

0
Comment made 13-Mar-2018 by Patrik Jonsson 3488

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.

/Patrik

0
Comment made 13-Mar-2018 by atatps 44

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.

0
Comment made 13-Mar-2018 by Patrik Jonsson 3488

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?

/Patrik

0
Comment made 13-Mar-2018 by atatps 44

I've got 2000 pools with 1500 nodes.

0
Comment made 13-Mar-2018 by Patrik Jonsson 3488

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?

/Patrik

0
Comment made 14-Mar-2018 by atatps 44

I've got everything in the common partition.

Sure, how do I get a hold of the revised code?

0
Comment made 20-Mar-2018 by Patrik Jonsson 3488

Hi Atatps

Sorry about that, I forgot to click on the submit button. The code is there now. :)

/Patrik

0
Comment made 22-Mar-2018 by atatps 44

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.

Image Text

0
Comment made 3 months ago by Patrik Jonsson 3488

Ran some quick tests on v14 and it works there too. :)

0
Comment made 3 months ago by Patrik Jonsson 3488

Take that back. Pool status is not working for v14. :)

/Patrik

0
Comment made 2 months ago by Patrik Jonsson 3488

Fixed.

/Patrik

0
Comment made 2 months ago by youssef 3383

Nice Job Patrik!!!

0