Skip to main content

aciClient

PyPi

A python wrapper to the Cisco ACI REST-API.

Python Version

We support Python 3.6 and up. Python 2 is not supported and there is no plan to add support for it.

Installation

pip install aciClient

Installation for Developing

git clone https://github.com/netcloud/aciclient.git
pip install -r requirements.txt
python setup.py develop

Usage

Initialisation

Username/password

import aciClient
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

aciclient = aciClient.ACI(apic_hostname, apic_username, apic_password, refresh=False)
try:
    aciclient.login()
    
    aciclient.getJson(uri)
    aciclient.postJson(config)
    aciclient.deleteMo(dn)
    
    aciclient.logout()
except Exception as e:
    logger.exception("Stack Trace")

For automatic authentication token refresh you can set variable refresh to True

aciclient = aciClient.ACI(apic_hostname, apic_username, apic_password, refresh=True)    

Certificate/signature

import aciClient
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

aciclient = aciClient.ACICert(apic_hostname, path_to_privatekey_file, certificate_dn)

try:
    aciclient.getJson(uri)
    aciclient.postJson(config)
    aciclient.deleteMo(dn)
except Exception as e:
    logger.exception("Stack Trace")

Examples

get config

tenants = aciclient.getJson('class/fvTenant.json?order-by=fvTenant.dn|asc')

for mo in tenants:
    print(f'tenant DN: {mo["fvTenant"]["attributes"]["dn"]}')

post config

config = {
 "fvTenant": {
  "attributes": {
   "dn": "uni/tn-XYZ"
  }
 }
}

aciclient.postJson(config)

delete MOs

aciclient.deleteMo('uni/tn-XYZ')

create snapshot

You can specify a tenant in variable target_dn or not provide any to do a fabric-wide snapshot.

aci.snapshot(description='test', target_dn='/uni/tn-test')

Testing

pip install -r requirements.txt
python -m pytest

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to this project.

Authors

  • Marcel Zehnder - Initial work
  • Andreas Graber - Migration to open source
  • Richard Strnad - Paginagtion for large requests, various small stuff
  • Dario Kaelin - Added snapshot creation

License

This project is licensed under MIT - see the LICENSE.md file for details.

Download files

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

Source Distribution

aciClient-1.5.tar.gz (7.5 kB view details)

Uploaded Source

File details

Details for the file aciClient-1.5.tar.gz.

File metadata

  • Download URL: aciClient-1.5.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for aciClient-1.5.tar.gz
Algorithm Hash digest
SHA256 9a6ad37f0fa0014f88c15c28adc01325a74cdc47d9d88e6ca7a7aec257230db3
MD5 b4bac44d4a7f55184ccd9abc7e8ef98f
BLAKE2b-256 f31308a40232ba936a4582a3b8bc7242e447908096064935d890168985f01f7e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page