Package: opsdis-pycentral
pycentralAruba Central Python Package Index SDKAruba Central is an unified cloud-based network management and configuration platform for campus, branch, remote and data center networks. There are various needs for automation and programmability like automating repetitive tasks, configuring multiple devices, monitoring and more. This python package is to programmatically interact with Aruba Central via REST APIs.How To InstallIn order to run the workflow scripts, please complete the steps below:install virtual env (referhttps://docs.python.org/3/library/venv.html). Make sure python version 3 is installed in system.$ python3 -m venv centralenvActivate the virtual env$ source centralenv/bin/activate
in Windows:
$ centralenv/Scripts/activate.batInstall thepycentralpackage(centralenv)$ pip3 install pycentralTo install package withextrascolorLogwhich will display log in color(centralenv)$ pip3 install pycentral[colorLog]Now you can start making your script based on modules in pycentral or use different workflows from the subpackageworkflows.Executing ScriptsGathering variables required for the package base classArubaCentralBase.base_url: Go toAccount Home -> API Gateway -> APIs.All Published APs Tablewill show URL underDOCUMENTATIONcolumn. Truncate this to end with '.com' E.G. 'https://apigw-prod2.central.arubanetworks.com/swagger/central/' must be truncated to 'https://apigw-prod2.central.arubanetworks.com'.client_idandclient_secret: Obtain client_id and client_secret variables by creating an API Gateway client in Aruba Central. Refer the followingdocumentationfor more details.At this point, create an API access token from the API Gateway WebUI as described in the above documentation or go further to collect other variables for the Python base class to create/manage access_token viaOAUTH APIs.customer_id: Obtain thecustomer_idby clicking on the figure icon on top right corner of Aruba Central WebUI.usernameandpassword: Aruba Central user'susernameandpassword. The access token generated by the OAUTH APIs will have the same role/privileges as the provided Aruba Central user.Providing input variables to the Python scripts. One of the following options can be used.Provide variables directly to Aruba Central Base class in dictionary format.Access token approach:central_info={"base_url":"<api-gateway-domain-url>","token":{"access_token":"<api-gateway-access-token>"}}OAUTH APIs approach with capability to generate new access token:central_info={"username":"<aruba-central-account-username>","password":"<aruba-central-account-password>","client_id":"<api-gateway-client-id>","client_secret":"<api-gateway-client-secret>","customer_id":"<aruba-central-customer-id>","base_url":"<api-gateway-domain-url>"}Refer the sample scripts instep3andstep4for examples.ORProvide the required variables using JSON/YAML file. Refer input filessample_scripts/input_token_only.yamlandsample_scripts/input_credentials.yamlfor information.Usepycentral.workflows_utils.get_conn_from_file()function which accepts name of the file and returns
theArubaCentralBaseinstance object. Refer the sample script instep5for example.Making API call using pycentral base: Using the base classArubaCentralBase, any Aruba Central supported REST API calls can be made. Refer the following sample scriptsample_scripts/pycentral_base_sample.py.Obtain the HTTP Request related information from Aruba Central Swagger documentation orAPI referencespage in Aruba Developer Hub.Making API call using pycentral modules: Some API endpoints supported by Aruba Central are implemented as modules in the Python package. Refer the following sample script using modulessample_scripts/pycentral_module_sample.py.To obtain a list of implemented modules and its documentation refer thepycentral module documentation.Using pycentral workflows: Workflows are used to achieve an automation use-case which generally involves multiple API calls or dealing with scale and repetitive tasks with ease. Refer the sample script using workflowssample_scripts/pycentral_workflow_sample.py.Refer theworkflowsdirectory to know the supported workflows.Documentation:Python package documentation:pycentral module documentationUse-Cases and Workflows:Aruba Developer HubNote:The package takes one of the two approaches to gain access to Aruba Central APIs.OAUTH APIs:By taking OAUTH approach to generate new access_token, the python package will cache the tokens locally for re-use. Caching tokens locally, helps preventing creation of new access_token every time the script is run. In addition, when the access_token is expired the script will attempt to use the supplied credentials and attempt to refresh the expired token.Override theArubaCentralBase.storeToken()andArubaCentralBase.loadToken()function definitions to change this behavior of caching in local file(JSON) and manage tokens more securely.Access Token: This process is more secure. By providing only theaccess_tokeninstead of credentials, the package will not cache the tokens. But loses the ability to handle expired token and to generate new access tokens.How to contributePlease see the accompanyingCONTRIBUTIONS.mdfile for guidelines on how to contribute to this repository.Troubleshooting IssuesIf you encounter module import errors, make sure that the package has been installed correctly.Additionally, please read theRELEASE-NOTES.mdfile for the current release information and known issues.