F5 iRule Editor Help

The F5 iRule Editor is a windows editor for the iRule language.


Contents


Introduction

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!


Main Window

Menu Commands

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.

iRule Panel

Properties: Launch the Properties Dialog for the given iRule.

Connection Dialog

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.

New iRule Dialog

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.

Properties Dialog

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.

Data Groups Dialog

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.

Data Group Dialog

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.

Share Dialog

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.

What's New

0.9.1.5 - 2007/11/15

0.9.1.4 - 2007/11/12

0.9.1.3 - 2007/09/05

0.9.1.2 - 2007/08/31

0.9.0.23 - 2006/12/07

0.9.0.22 - 2006/07/27

0.9.0.20 - 2006/06/14

0.9.0.18 - 2006/06/07

0.9.0.14 - 2006/05/16

0.9.0.12 - 2006/05/09

0.9.0.7 - 2006/05/08

0.9.0.6 - 2006/05/04

0.9.0.5 - 2006/05/03

0.9.0.3 - 2006/05/01

0.9.0.0 - 2006/04/24


Disclaimers

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