The F5 iRule Editor is a windows editor for the iRule language.
The F5 iRule Editor is a windows graphical editor for iRules on your BIG-IP. It makes use of F5's iControl interfaces to remotely manage iRules and their deployment on Virtual Servers. The main goal here was to show the power of what you can do with iControl in a very short amount of time.
History
I've been keeping my eye out for a good lexical editor control for a long time and there are plenty on the market but it's been hard to find one with built-in TCL support. I've been a big fan of the Scintilla Control ever since I switched to Notepad2 for my Notepad.exe replacement. I downloaded the latest sources and what do you know, someone has contributed a TCL parser to the codebase.
Now, I didn't have any excuse not to give a few hours to this pet project of mine to see where it would take me. I spent the most part of the first day digging into the scintilla control and it's exposed API set to find out the extent of what it could do. Day 2 was spent on building in the main application logic. And by Day 3 I had a working build of what you see on the main window.
Nothing beats syntax highlighting and auto-complete, but a few things stuck out as missing. An editor is great for creating, editing, and saving iRules, but what about deployment? So, I spent one more day on building an iRule property page that includes the logic to deploy the iRules to virtual servers as well as displaying their statistics. The final missing piece was the GUI to create and manage Data Groups. These are lists of strings, integers, or addresses that can be used in conjuction with our findclass and matchclass methods. Another few hours over the weekend got the final piece in place.
A bit about the Application
Now, that I've got the history out of the way, here's a bit of info on the application and methodology behind it. The majority of the iRule Editor's features are only valid with a partnership with a BIG-IP v9.x system. While you can make use of the syntax highlighting and hotspots without a valid connection, you won't be able to check the syntax or save them.
Enjoy!
File Menu
Connect/Disconnect : Establish a relationship with a BIG-IP. A connection must be established before you can perform any commands. New : Create a new iRule with the Template wizard. Save : Save the current iRule to the BIG-IP. Delete : Delete the current iRule from the BIG-IP. Archive.Export : Export the iRules to your local computer. Archive.Import : Import the iRules from your local archive folder. Archive.Open Archive Folder : Open the local archive folder for viewing. Exit : Exit the application Edit Menu
Undo : Undo last text editing action. Redo : Redo last Undo action. Cut : Remove the selected text and place it in the clipboard. Copy : Copy the selected text to the clipboard. Paste : Paste the contents of the clipboard into the selection. Delete : Remove the selected text. Select All : Select the entire text contents. View Menu
Line Numbers : Show or Hide the line numbers margin in the text editor. Indention Guides : Show or hide the visual guides for where indentions (tabs) are placed. Margin : Show or hide the left margin spacer in the text editor. Fold Margin : Show or hide the folding margin in the text editor. This area allows collapsing of sections of code. Word Wrap : Enable or disable the end of line word wrapping in the text editor. Whitespace : Show or hide the visual guides for spaces and tabs in the text editor. End of Line : View the end of line markers Bookmarks : Clear the bookmarks from a syntax check operation. Auto Complete : Enable or disable the Auto Completion of event declarations. Hotspots : Enable or disable clickable keyword hotspots. Status : Show or hide the status panel. Tools Menu
Data Group Editor : Launch the Data Group Editor Dialog to allow you to create and modify Data Groups. Share your iRule : Why not take some credit for your great work. By sharing your iRule, you will be contributing to the F5 DevCentral user community. Great Karma awaits... Check for Updates : Contact DevCentral.f5.com for template updates. Reload Config : Reload the lexer configuration file. Help Menu
F5 iRule Editor Help : Open a web browser to this page! DevCentral.f5.com : Open a web browser to the DevCentral Home Page. DevCentral Forums : Open a web browser to the DevCentral Support Forums. iRule Reference : Open a web browser to the iRule Documentation on DevCentral. TCL Reference : Open a web browser to the TCL Reference Manual. About F5 iRule Editor : Show the About box.
Properties : Launch the Properties Dialog for the given iRule.
Fields
Hostname : The IP address or DNS hostname of the target BIG-IP. Port : The management port on the BIG-IP. This will always be 443. Endpoint : The iControl endpoint on the BIG-IP. This will always be /iControl/iControlPortal.cgi Username : The BIG-IP username. Password : The BIG-IP password Buttons
OK : Attempt to establish a connection to the given BIG-IP with the supplied parameters. Cancel : Cancel the connection process.
Fields
Name : Enter the name for your iRule. Tabs
Templates
Available Templates : This list contains user contributed sample templates to help get you started. Custom
Available Events : This list consists of all iRule events. Keep in mind that certain events require specific profiles to be associated with the virtual before you can assign it. Buttons
OK : Attempt to establish a connection to the given BIG-IP with the supplied parameters. Cancel : Cancel the connection process.
Tabs
Membership
Virtual Servers : You can use this section to see a list of virtual servers using and not using this rule. Use the buttons to switch Virtual Servers use of the given iRule. Pools : This list box will contain references to pools from within the give iRule. Refresh : Refresh the dialog with information from the BIG-IP. Statistics
Statistics List : This list will show all events that the iRule contains as well as performance metrics for each event. If you include the "timing on" command you will be able to see CPU cycle statistics as well. Refresh : Refresh the statistics with information from the BIG-IP from the BIG-IP. Reset Statistics : This will perform a reset of all statistics for this iRule. All statistics will be set back to zero. Buttons
OK : Attempt to establish a connection to the given BIG-IP with the supplied parameters. Cancel : Cancel the connection process.
List Boxes
Address : This list contains a list the address Data Groups on the BIG-IP. Integer : This list contains a list of the integer (value) Data Groups on the BIG-IP. String : This list contains a list of the string Data Groups on the BIG-IP. Buttons
Add : This will launch the Data Group Dialog to create a new Data Group of the specified type. Edit : This will launch the Data Group Dialog to edit the existing Data Group of the specified type. Delete : This will delete the specified Data Group from the BIG-IP. Beware - this is not reversible! Refresh : Refresh the Data Group lists from the BIG-IP. OK : Attempt to establish a connection to the given BIG-IP with the supplied parameters. Cancel : Cancel the connection process.
Fields
Name : The name of the Data Group. This field is read-only in edit mode. Value : Depending on the type of Data Group, this will either be a address/netmask, integer, or string field. Data Group Members : This list contains the current members of the given Data Group. Buttons
Add : This will add the current value into the Data Group Members list box. Edit : This will remove the selected value from the Data Group Members list box and place it in the value edit field. Delete : This will remove the selected value from the Data Group Members list box. Create/Update : This button will either create the new Data Group or update the changes made to an existing one. Cancel : Cancel the connection process.
Fields
iRule Name : This is the name for your iRule. Make it something descriptive. Author Name : Give yourself some credit for your awesome work! Description : A brief summary of what your iRule does. iRule : The contents of the iRule for submission. This field is read-only. I Accept the Terms and Conditions : To help protect everyone, please accept the terms and conditions for sharing your iRule. Buttons
Share : This button will submit your iRule to DevCentral to share with the other DevCentral users. Cancel : Exit the Share Dialog without sharing your iRule.
0.9.1.5 - 2007/11/15
- FIX: Fixed the File.Archive.Open Archive Folder command.
0.9.1.4 - 2007/11/12
- ENH: Add support for iRules names starting with underscores.
- ENH: Add Enhanced CPU Statistics Reporting.
- FIX: Corrected SIP events.
0.9.1.3 - 2007/09/05
- ENH: Auto Indenting/Indention Settings
0.9.1.2 - 2007/08/31
- ENH: Support for Administrative Partitions.
- FIX: Disable creation of duplication named iRules.
- FIX: Added character validation in the iRule Name.
- FIX: Fixed String Data Group's support of slash characters.
- FIX: Add Horizontal Scrollbars to iRule Property dialog listboxes.
0.9.0.23 - 2006/12/07
- Fixed issue with editor not being visible after shutting down when minimized.
- Long awaited GTM support.
- Regenerated ClickOnce certificate to hopefully avoid install issues on certain machines.
0.9.0.22 - 2006/07/27
- Rules are now correctly sorted in list.
- Added new Local Traffic node to rules in preparation for GTM support.
- Added History to connection dialog.
- Fixed syntax errors on wrong rule when save all selected.
- Fixed minPanelSize exception.
- Added HTTP Header support for the Data Generation utility.
- Fixed save_configuration() error for v9.1.2 systems.
0.9.0.20 - 2006/06/14
- Cleared status window on successful save operation.
- Fixed GET requests in the Traffic Generation Dialog.
- Added support to disable splash screen (ShowSplashScreen reg key).
0.9.0.18 - 2006/06/07
- Fixed launched browsers to use default browser.
- Updated to latest scintilla sources to fix string allocation error..
- Optimized modification handling to increase performance.
0.9.0.14 - 2006/05/16
- Randomized tips of the day.
- Added CIDR shortcut format support to the Address Data Group Dialog.
- Fixed crash when modifying an existing Address Data Group.
0.9.0.12 - 2006/05/09
- Added Search/Find commands.
- Added Tools.Reset config menu item to reset the color highlighting configuration.
- Implemented Import functionality.
- Fixed buffer allocation error when refreshing list.
- Fixed Save All overwrite of all iRules with contents of text window.
0.9.0.7 - 2006/05/08
- Added Export functionality.
- You can now drag and drop your iRules.
- Created mini toolbar for the iRules pane.
0.9.0.6 - 2006/05/04
- Added "Share" functionality.
- After configuration updates, saved configuration to bigip.conf.
- Added bookmarks for syntax checks.
0.9.0.5 - 2006/05/03
- Added Splash Screen.
- Removed link panel and replaced it with a toolbar.
- Implemented auto-complete for all keywords.
- Fixed Auto-Complete.
0.9.0.3 - 2006/05/01
- Added Data Group Management
- Changed the startup template auto-upate procedure to only contact DevCentral once per day.
- Added iRule Properties Virtual Server Management
0.9.0.0 - 2006/04/24
- Initial Beta Release
Copyright (c) 1996-2006, F5 Networks, Inc., Seattle, Washington. All rights reserved.
F5, F5 Networks, the F5 logo, BIG-IP, 3-DNS, iControl, GLOBAL-SITE, SEE-IT, EDGE-FX, FireGuard, Internet Control Architecture, IP Application Switch, iRules, PACKET VELOCITY, SYN Check, CONTROL YOUR WORLD, OneConnect, ZoneRunner, uRoam, FirePass, and TrafficShield are registered trademarks or trademarks of F5 Networks, Inc., in the U.S. and certain other countries.
All other trademarks mentioned in this document are the property of their respective owners. F5 Networks' trademarks may not be used in connection with any product or service except as permitted in writing by F5.
Portions of this application make use of the scintilla text editor control (http://www.scintilla.org) which is Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>.