Building a CLI for VMware Cloud on AWS

Today I am really quite happy to share the latest release of the Python Client for VMware Cloud on AWS – version 2.0! This represents several months worth of work, as well as over 200 commits, over 5000 lines of new code, over 30 new commands, and support for some of the latest innovations in VMware Cloud on AWS, such as:

  • Creating a SDDC!
  • Secondary T1 gateways!
  • T1 VPN!
  • Fixed and Flexible network segments!
  • NSX Advanced Firewall IDS and IPS!
  • VMware Transit Connect attachments to DXGW and VPC!
  • FlexCompute (experimental)!

Additionally, we spent a TON of time restructuring the project into multiple modules, and refactoring all the functions to leverage a mature python module for argument handling – argparse. Leveraging argparse gives us the flexibility to handle user input in a much more elegant way than just using sys.argv, plus it is self-documenting, making it much easier to troubleshoot, extend, and change functions in the future. Finally, pretty much all the logic for how to manipulate data, return data to the user, error handling, etc has been moved to a ‘functions’ module, which allows us to keep all the code directly related to API functionality separate. The new project structure is laid out somewhat as follows:

While this is of course a community-supported project, and not an ‘official’ VMware product, nonetheless I am still very proud of the work the team has put in. This has been a fantastic learning opportunity for me, and I am looking forward to continuing to add features and functionality in the months ahead.

You can find the official release on the VMware Flings site here.

You can find the source code on Github here (including instructions on contributing to the project).

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s