Package: dnac
DNAC-Python-WrapperA python wrapper for easily accessing a Cisco DNA Center (DNAC) cluster.PurposeThe modules herein simplify placing calls to Cisco's DNA Center.  They handle all the complexity involved with making CRUD calls to Cisco DNAC including:Automatically logging in and getting an XAuth tokenFormatting URLs and filters to control requests to Cisco DNACParsing responses from Cisco DNAC and converting from json text into python objectsInstallation and UsageIn addition to the source files available through Cisco DevNet and GitHub, the Cisco DNAC wrapper may be installed from thedistribution package on PiPy.First, use the commandpip install dnacto download the package and install it in your python site package listing.Then, edit the wrapper's configuration file,dnac_config.py, with your Cisco DNA Center cluster information.  Look in the directorypython-root-dir/Lib/site-packages/dnac/for the configuration file.After installing the wrapper, import the Dnac class directly from the package but treat the various API modules as sub-packages.  For example:from dnac import Dnac

d = Dnac()

from dnac.networkdevice import NetworkDevice

switch = NetworkDevice(d, "mySwitch")VersioningIn order to remain consistent with Cisco's DNA Center release cycle, this package follows DNAC's versioning.  In order for PyPi to treat this as the latest release, no more subversioning can be given; hence subversions will be listed in this README under the Current State and History sections.  The current subversion is 1.3.1.4.d.LicenseThis project is licensed by Cisco Systems according to the terms stated in the project'sLICENSEfile.Modulesinit.py: Contains the base Dnac class and controls the dnac package.basicauth.py: HTTP basic authentication class, BasicAuth, used by Dnac to perform a login.client.py: Retrieves a client's state from Cisco DNAC for the time specified.commandrunner.py: Runs read-only, i.e. show commands, on Cisco DNA Center.commandrunner_task.py: Task handler for CommandRunner objects.config_archive.py: Manages Cisco DNA Center's configuration archive.config_archive_settings.py: Manages Cisco DNA Center's configuration archive settings.crud.py: Crud class provides generic GET, PUT, POST and DELETE functions and is wrapped by DnacApi.ctype.py: Stores the content type for API calls, e.g. application/json.deployment.py: Monitors the progress of applying a CLI template to a network device.device_archive.py: Manages the configuration archive for a specific network device.device_archive_task.py: Manages the configuration archive tasks for a DeviceArchive object.dnac_config.py: Configuration file for instantiating a Dnac object.dnacapi.py: DnacApi virtual class from which all API calls inherit.file.py: Retrieves the output created by completed tasks.networkdevice.py: Manages devices in Cisco DNA Center, e.g. routers, switches, WLCs.project.py: Retrieves a configuration template project.site.py: A representation of a site's attributes and state.site_hierarchy.py: Builds a representation of the sites in Cisco DNA Center's Network Hierarchy.task.py: Manages tasks executing on Cisco DNAC.template.py: Manages CLI templates.timestamp.py: Converts the system's time in UTC into milliseconds for pulling client and site state information from Cisco DNA Center.version.py: A representation of a specific version of a network device's archive.xauthtoken.py: X-auth-token class, XAuthToken, used by Dnac to authorize commands after a successful login.Examplescommandrunner_example.py: An example script showing how to use the CommandRunner class.config_archive.py: An HTTP server for managing device archives.export_project.py: Exports a configuration template project to a file.export_template.py: Exports a configuration template and all its versions to files.import_project.py: Imports a configuration template project from a file.import_template.py: Imports a configuration template and all its versions from files.networkdevice_example.py: An example script that shows how to use a NetworkDevice object.network_hierarchy_replicator: An HTTP server for replicating sites in the network design hierarchy from one cluster to another.template_example.py: An example script demonstrating how to use the Template class.template_replicator.py: An HTTP server for replicating configuration templates and projects.DocumentationDetailed documentation for each module, its classes, attributes and functions can be found inthis project's HTML filesor the docstrings contained within the modules themselves as well as inCisco DNA Center References.A summary diagram of the class hierarchy and their inter-relationships can be found in fileCisco DNAC Wrapper UML.Current Statev.1.3.1.4.d: 16 Apr 2020Fixed errors in CommandRunner classCommandRunner class now uses CommandRunnerTaskRoadmapMove unit test code from being embedded in modules to a test package structure.Interface classRemove support for Cisco DNA Center 1.2.8.Historyv.1.3.1.4.c: 23 Mar 2020Converted all modules to docstring formatEnhanced Site classAdded SiteHeirarchy and SiteNode classes in new module: site_hierarchy.pyAdded network_design_hierarchy exampleUpdated UML documentationRemoved all unit testing from each modulev.1.3.1.4.b: 7 Mar 2020Overhauled Task and Deployment classesFixed bugs in Template classv.1.3.1.4.a: 17 Jan 2020Overhauled Template class and added methods to export, import and commit templatesNew modules for managing device configuration archives: config_archive, config_archive_settings, device_archive, device_archive_taskNew example for managing device configuration archives: config_archiverNew example for exporting/importing configuration templates and projects: export_project, export_template, import_project, import_templateBegan adopting standard doc string formatsv.1.2.10.3: 2 Jun 2019Fixed defect in networkdevice modulev.1.2.10.2: 24 May 2019Added client, site, and timestamp classesFixed various defectsAdjusted template class to handle behavior changes from 1.2.8 to 1.2.10v.1.2.10.1: 13 Mar 2019Completed packaging for distribution on PiPy and renamed the package to 'dnac'.Updated README.v.1.2.10.0: 7 Mar 2019Modified version numbering to match Cisco DNA Center release cycle.Most attributes are now protected (read-only) with only a handful being private or public.Changed TaskResults class to File class in order to match Cisco DNAC's schema.Moved documentation and examples into subpackages.Added setuptools structure to support distribution in PyPI as 'cisco-dna-center'.v.1.2.8.0: 31 Jan 2019Added a generic Crud class and wrapped it in DnacApi for use by all children instancesAdded CLI templates using Template and Deployment classesCreated exceptions and applied them throughoutUpdated UML documentationProvided examples for NetworkDevice, CommandRunner and TemplateUpdated module documentationv.0.1: 21 Jan 2019
The initial contribution containing the base dnac module with its support for authentication and authorization when communicating with a Cisco DNA Center cluster, namely basicauth and xauthtoken.  In addition, five modules for performing API calls can be found:dnacapi - API base classnetworkdevice - handles network equipment managed by Cisco DNACcommandrunner - executes read-only commands on devices managed by Cisco DNACtask - monitors tasks running on Cisco DNACtaskresults - pulls the output created by completed tasks