Skip to main content

Returns command results from ArubaOS HTTP API

Project description

ArubaAPI

Logs into the web UI of an Aruba Controller and issues arbitrary CLI show commands. This was created to alleviate the pain of screen-scraping ArubaOS output, especially tables.

The HTTP API used is the one that the web GUI uses to gather data. It's not terribly consistent and probably isn't guaranteed between AOS versions. Submit an issue or pull request if you see issues with the data you're receiving.

There are three types of data output from the HTTP API:

  • Table data - Key is name of the table. Value is list of {key: value} dicts.
  • Named data - Generally a key-value pair but not always. In the case of duplicate names, the value is a list of all values seen.
  • Anonymous data - Auxiallary data output. Generally unstructured lines like flag legends. Stored under the 'data' key as a list.

Config commands appear to be able to be sent through this same interface one at a time. You will receive no data back from performing a config command, but it's important to note that an invalid command will also receive no data back. It's probably a good idea to double-check that the config change stayed with a subsequent show command.

Notes

  • It really doesn't like show running-config. It will just hang and return no data.
  • Sessions will not be deleted unless close() is called or the with statement is used.
  • Invalid commands return an HTTP 200 with no data, so there's currently no way to detect them.
  • Use show user-table instead of show user to avoid parser issues due to a non-xml string being in the response of the latter.

Example

import arubaapi
from pprint import pprint

connection = arubaapi.ArubaAPI('aruba-master.example.com', 'username', 'password')
data = connection.cli('show ap database local')
connection.close()

pprint(data, 120)

Output:

{'data': ['Flags: U = Unprovisioned; N = Duplicate name; G = No such group; L = Unlicensed',
          '       I = Inactive; D = Dirty or no config; E = Regulatory Domain Mismatch',
          '       X = Maintenance Mode; P = PPPoE AP; B = Built-in AP; s = LACP striping',
          '       R = Remote AP; R- = Remote AP requires Auth; C = Cellular RAP;',
          '       c = CERT-based RAP; 1 = 802.1x authenticated AP; 2 = Using IKE version 2',
          '       u = Custom-Cert RAP; S = Standby-mode AP; J = USB cert at AP',
          '       i = Indoor; o = Outdoor',
          '       M = Mesh node; Y = Mesh Recovery'],
 'Total APs': '2',
 'AP Database': [{'AP Type': '135',
                  'Flags': None,
                  'Group': 'AP Group 1',
                  'IP Address': '10.0.0.12',
                  'Name': 'AP 1',
                  'Standby IP': '0.0.0.0',
                  'Status': 'Down',
                  'Switch IP': '10.0.0.10'},
                 {'AP Type': '277',
                  'Flags': None,
                  'Group': 'AP Group 1',
                  'IP Address': '10.0.0.99',
                  'Name': 'AP 2',
                  'Standby IP': '0.0.0.0',
                  'Status': 'Up 43d:0h:23m:54s',
                  'Switch IP': '10.0.0.10'}]}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arubaapi-0.1.3.tar.gz (6.3 kB view details)

Uploaded Source

File details

Details for the file arubaapi-0.1.3.tar.gz.

File metadata

  • Download URL: arubaapi-0.1.3.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for arubaapi-0.1.3.tar.gz
Algorithm Hash digest
SHA256 331774fd8030dbf72a211f0eb6b7b06237520b5adf3f6823cec5100045c0c2e3
MD5 5c791ab75b57bdccdf1e4c1d97b7bb44
BLAKE2b-256 0147d17999145141e2cc41b6c300f02f3b3b537a5b9e0d8c5f29dc8131fba791

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page