Close

HPE Aruba Networking Blogs

The New World of Scripting and APIs

By Blake Krone, Blog Contributor

PythonGlue.png

We are constantly bombarded with catchy phrases and technology said to be the next big thing. This ends up simply being another block on buzzword bingo but there is one area that I feel isn't just a fad that will go away soon. That fad or buzzword is programmability. For a while now we have heard about Software Defined Networking or SDN for short and how that is going to change the networking world as we know it. However, this hasn't necessarily occurred. The statement has been to continue in this networking world you need to learn programming of some sorts, this much I completely agree with.

Let's look at a brief history lesson if we may. Back in college, I started down a Computer Science path and was bombarded with Java, C++, Scheme, Perl, etc. As I sat in those classes I thought to myself "This is really boring!" Thankfully I made a migration towards networking and thought I put all that programming behind me. While working through college I started developing web applications using Perl/CGI and then PHP. These apps were typically just tying together systems and automating repetitive tasks. Little did I know how much of an impact this would have on my future mobility career.

Fast forward to today and where we are now in the industry. If you don't know some programming language, you could struggle to finish a project. Recently at Atmosphere 2018 in Las Vegas, a lot of time in breakout sessions was spent on how you can use the various Aruba APIs to integrate various systems together. This was in contrast to less of the discussion is around the actual 802.11 hardware and standards. The shift is very pronounced and important to realize.

Customers are looking for solutions that can combine things like Aruba ClearPass with building guest systems so when a badge is created at the front desk a guest wireless account can be created as well. Emergency management personnel are looking for ways to tell if a building has been evacuated or not. Using the Meridian APIs, we can provide a large portion of that data. SDN isn't doing much of anything for Wireless networking but what is key is the programmability aspect. Companies that provide easy to use APIs allow a product to be more "sticky" (thanks Jake Snyder for the term!) and harder to replace in the long run. Extending a product or solution and integrating it with your systems is a key point in evaluation.

So how do you get started working with the Aruba APIs? The first place you usually need to start is with picking a language to use. The preferred language these days is Python. Python is fairly easy to use and learn with a lot of resources available online to help you such as http://learnpython.org.

Once you have learned the basic usage of a language you need to understand what an API is and what it isn't. If the solution only provides only SNMP information this isn't an API. An API is typically referred to as a RESTful (REpresentational State Transfer) web service. By making a specific call to a resource URI a response is elicited. This response might be XML, JSON, HTML, or other. XML and JSON both represent a formatted data structure that is easy to parse in your programming language with JSON being preferred. Let's take Aruba ClearPass as an example: a quick look at the ClearPass TechNote repository from Aruba Support gave the following guide:

https://support.arubanetworks.com/Documentation/tabid/77/DMXModule/512/Command/Core_Download/Default.aspx?Entrysrc=22490

From here, we can see how the ClearPass REST API is built, how to authenticate and how to find the API Explorer which lives at https://{server}/api-docs

Let's say we want to retrieve a guest user value, navigating to the GuestManager section in API Explorer, we find that the call we need to make is:

GET https://{server}/api/guest

where {server} is the IP address or FQDN of your ClearPass server.

When this call is successful you would receive a response with the results. For many, starting off with programming and APIs can seem daunting because when you sift through the API documentation it seems all too foreign. Thankfully people in the community have shared some of their scripts to use as starting points for creating solutions. Many developers use a system called git to manage their code. This system allows you to store files in a repository that others can have access to if you allow it. Everyone can check out the latest version of the files from the repository and even provide commits which contain fixes or modifications to the code. Aruba has a public git located on GitHub at https://github.com/aruba providing numerous examples to get you started faster with the APIs. From here you can download or checkout various code examples that you can build off instead of starting from scratch.

While I don't foresee the commoditization of the access points happening too soon I do feel that there needs to be more focus on integrations and programming as it will be the future of our mobility solutions. RF will always be a somewhat complex technology that is misunderstood and deployed incorrectly. However, integrating the systems together has been where I have seen more of the market headed in terms of needs and wants. I encourage you to look at the APIs and see what kind of interesting things you could do when combined with other APIs such as building lighting systems, physical access management, and space management. There are some really interesting integrations that you can create!