Archives For October 2013

The primary reason I decided to revive my rusty programming skills was to automate tedious or time-consuming functions at work.  I’m a big proponent of automation whenever possible and in an age of employment where we’re all asked to do more with less, I’ll gladly invest the time required to “automate all the things”.

However, automation is only useful if embraced by everyone that can benefit from it.  Despite frequent lip service from colleagues who expressed excitement over the creation of a few of my applications, I had reservations about who may actually be using what within the team.

So I decided to have a look…

Several weeks ago I placed a small bit of code in all of my applications to capture their usage data:

import getpass # Required to read username from the command line
def trackUsage():
# This function appends a line to a file with the timestamp, user name
# and name of the application so I can see who is using what
with open("X:\path\to\file.log", "a") as appUsage:
try:
appUsage.write(str(datetime.now())+","+getpass.getuser()+","+__title__+" "+__version__+"\n")
except IOError:
pass

Of course, it could be that some of my teammates are using antiquated versions of some of my applications despite corrected bugs or limited functionality — and there certainly isn’t any way for me to determine that.  Given the frequency in which I have communicated that each person obtain the newest version AND the results I’ve outlined above — I must conclude that either my enthusiasm for improving our work flow and time management isn’t shared among my team or I hold my applications in higher regard than they’re actually worth.

This isn’t a new tool, just newly discussed on my blog. 🙂

If you’ve been following any of my other Python applications I’ve written to automate tedious tasks on a Cisco router, you might have noticed that they all seem related.  Between BuildVRFIndex.py, VRFBackupTool.py and VRFSearchTool.py — you may have wondered why all these weren’t combined into a single application.  With the exception of BuildVRFIndex.py, it was always my intention to combine the VRFBackupTool and VRFSearchTool into one application.

It’s been more than 10 years before I’ve written any meaningful amount of code and that was last done in C++.  Learning Python has been an enjoyable experience — but I’m still learning the language.  I wasn’t certain that I would be able to easily (or cleanly) create the application I had in mind with Search AND Backup functionality — so I broke these functions out into separate applications until I was certain that this would be something I could accomplish with as little frustration as possible.

Having said all that, the VRFSearchAndBackup tool is the combination of the search and backup features of the other two and, in my opinion, supersedes both of the prior tools in functionality.  You can still search for a VRF Name to determine where it is without having to back it up (the application prompts you to backup upon a successful search).

There is a lot more I could say about this application but since it’s been out several weeks now and I’m just now catching up on blogging about it, you can head on over to it’s GitHub repository if you’d like to learn more or see it in action.

This isn’t a new tool, just newly discussed on my blog. 🙂

Building on the experiences of my other Python applications (namely the VRFSearchTool), I took this knowledge to the next level and created an entirely new application.  Similar in functionality to the VRFSearchTool, the VRFBackupTool will back up the VRF VPN configuration of a Cisco router when provided with the VRF Name.  Unlike the VRFSearchTool, it does not display any information regarding the VRF Name provided — it simply locates it among the index file, connects to the router(s) holding the configuration specific to the VRF Name and backs it up to a directory specified in the configuration file.

There is a lot more I could say about this application but since it’s been out several weeks now and I’m just now catching up on blogging about it, you can head on over to it’s GitHub repository if you’d like to learn more or see it in action.

If all you ever saw of me was my blog, you might think that I took the entire month of September off… but a lot has been happening elsewhere that I intend to blog about.  For starters, I’ve published two new Python applications (and made some updates to the reset), took a vacation, attended an Information Security Conference and my 10 year work anniversary was this week.  Let’s see how much of that I can blog about…