Package: businessready
business_readyA Python CLI that transforms Cisco CLIs and REST APIs into "Business Ready" DocumentsGetting StartedBusiness Ready has two modes of operation:Cisco Command Line Interface (CLI) output transformation using pyATS (Linux required)Cisco REST API output transformation using Python Requests (Windows or Linux friendly)Each Business Ready Function provides the user with 5 output files:Comma-separated values (CSV) - Spreadsheets!HyperText Markup Language (HTML) - Webpages!Markdown (tabular) - GitHub Ready Tables!Markdown (markmap) - Mind Maps!JavaScript Object Notation (JSON) - The Raw payloadThe VS Code Terminal can be used, either with Windows (REST APIs) or WSL Ubuntu (pyATS), to create a Python virtual environment and run Business Ready.The following extensions can be used to maximize the user experience:Markmap (MD files)Markdown Preview (MD files)Excel Preview (CSV files)Open in Default Browser (HTML files)Installation GuidesCisco IOS / NXOS CLILinux and pyATS RequiredThe following instructions are based on Windows WSL2 and Ubuntu however any flavour of Linux will work with possibly slightly different commands.Confirm Python 3.9 is installed$python3-VPython 3.9.10Create and activate a virtual environment$sudoaptinstallpython3-venv$python3-mvenvdemo$sourcedemo/bin/activate(demo)$Install pyATS[full](demo)$pipinstallpyats[full]Install businessready(demo)$pipinstallbusinessreadyCisco REST APIs - Windows or Linux CompatibleConfirm Python 3.9 is installedDownload PythonCreate and activate a virtual environmentC:\>python3 -m venv demoC:\>demo\Scripts\activate(demo)C:\>Install businessready(demo)C:\>pip install buisnessreadyUsageOnce businessready is installed it can be used from the Python command-linePython CLILinux(demo)$python3>>> import businessreadyWindows(demo)C:\>python3>>> import businessreadyCisco CLIConnecting - Business Ready functions that extend pyATS require 4 parametershostnameusernamepasswordIP / DNS AddressCisco IOS-XEAll - You can run all IOS-XE Learn And Show functions to fully document a device with one command>>> import businessready>>> businessready.IOS_all("hostname","username","password","IP / DNS Address")Learn All - You can run all IOS-XE Learn functions to fully learn a device with one command>>> import businessready>>> businessready.IOS_learn_all("hostname","username","password","IP / DNS Address")Show All - You can run all IOS-XE Show functions to fully parse a device with one command>>> import businessready>>> businessready.IOS_show_all("hostname","username","password","IP / DNS Address")Individual Learn / Show Functions - You can run individual learn or show commands as well if you are looking for something specific>>> import businessready>>> businessready.IOS_learn_{{ function }}("hostname","username","password","IP / DNS Address")>>> businessready.IOS_show_{{ show command }}("hostname","username","password","IP / DNS Address")Cisco NXOSAll - You can run all NXOS Learn And Show functions to fully document a device with one command>>> import businessready>>> businessready.NXOS_all("hostname","username","password","IP / DNS Address")Learn All - You can run all NXOS Learn functions to fully learn a device with one command>>> import businessready>>> businessready.NXOS_learn_all("hostname","username","password","IP / DNS Address")Show All - You can run all NXOS-XE Show functions to fully parse a device with one command>>> import businessready>>> businessready.NXOS_show_all("hostname","username","password","IP / DNS Address")Individual Learn / Show Functions - You can run individual learn or show commands as well if you are looking for something specific>>> import businessready>>> businessready.NXOS_learn_{{ function }}("hostname","username","password","IP / DNS Address")>>> businessready.NXOS_show_{{ show command }}("hostname","username","password","IP / DNS Address")Cisco Digital Network Architecture Center (DNAC)Connecting - Business Ready functions that extend DNAC REST APIs require 3 parametersDNAC URLusernamepasswordIP / DNS AddressAll - You can run all DNAC REST API functions to fully document a device with one command>>> import businessready>>> businessready.DNAC_all("url","username","password")Individual REST APIs - You can run individual REST API as well if you are looking for something specific>>> import businessready>>> businessready.DNAC_{{ REST API }}("url","username","password")Meraki DashboardConnecting - Business Ready functions that extend Meraki Dashboard REST APIs require 3 parametersMeraki URLDashboard TokenAll - You can run all Meraki REST API functions to fully document a device with one command>>> import businessready>>> businessready.Meraki_all("url","Dashboard Token")Individual REST APIs - You can run individual REST API as well if you are looking for something specific>>> import businessready>>> businessready.Meraki_{{ REST API }}("url","Dashboard Token")In DevelopmentCisco Identity Services Engine (ISE)In DevelopmentTopology ExamplesIf you have more than one device you want to transform Business Ready can handle multiple devices in a variety of waysPython Array SourceThe included python_for_loop_example.py fileimportbusinessreadydevice01_info=["dist-rtr01","cisco","cisco","10.10.20.175"]device02_info=["dist-rtr02","cisco","cisco","10.10.20.176"]device_list=[device01_info,device02_info]fordeviceindevice_list:businessready.NXOS_learn_all(*device)pyATS YAML Testbed SourceThe included from_testbed_example.pyimportbusinessreadyimportyamlwithopen('testbed.yml')asinfo:info_dict=yaml.safe_load(info)fordeviceininfo_dict['devices']:ifinfo_dict['devices'][device]['os']=="iosxe":businessready.IOS_learn_all(device,info_dict['devices'][device]['credentials']['default']['username'],info_dict['devices'][device]['credentials']['default']['password'],info_dict['devices'][device]['connections']['cli']['ip'])elifinfo_dict['devices'][device]['os']=="nxos":businessready.NXOS_learn_all(device,info_dict['devices'][device]['credentials']['default']['username'],info_dict['devices'][device]['credentials']['default']['password'],info_dict['devices'][device]['connections']['cli']['ip'])CSV SourceThe included from_csv_example.pyimportbusinessreadyimportcsvwithopen('spreadsheet.csv')asinfo:forlineincsv.DictReader(info):info_dict=lineprint(info_dict)ifinfo_dict['os']=="iosxe":businessready.IOS_all(info_dict['hostname'],info_dict['username'],info_dict['password'],info_dict['ip'])elifinfo_dict['os']=="nxos":businessready.NXOS_all(info_dict['hostname'],info_dict['username'],info_dict['password'],info_dict['ip'])Function LibaryIOS-XEAllbusinessready.IOS_all()businessready.IOS_learn_all()businessready.IOS_show_all()Learnbusinessready.IOS_learn_all()businessready.IOS_learn_acl()businessready.IOS_learn_arp()businessready.IOS_learn_bgp()businessready.IOS_learn_dot1x()businessready.IOS_learn_hsrp()businessready.IOS_learn_interface()businessready.IOS_learn_lldp()businessready.IOS_learn_ntp()businessready.IOS_learn_ospf(hobusinessready.IOS_learn_routing()businessready.IOS_learn_stp()businessready.IOS_learn_vlan()businessready.IOS_learn_vrf()Showbusinessready.IOS_show_all()businessready.IOS_show_access_lists()businessready.IOS_show_cdp_neighbors()businessready.IOS_show_cdp_neighbors_detail()businessready.IOS_show_environment_all()businessready.IOS_show_etherchannel_summary()businessready.IOS_show_interfaces()businessready.IOS_show_interfaces_status()businessready.IOS_show_interfaces_trunk()businessready.IOS_show_inventory_9000()businessready.IOS_show_ip_arp()businessready.IOS_show_ip_interface_brief()businessready.IOS_show_ip_ospf()businessready.IOS_show_ip_ospf_database()businessready.IOS_show_ip_ospf_interface()businessready.IOS_show_ip_ospf_neighbor()businessready.IOS_show_ip_ospf_neighbor_detail()businessready.IOS_show_ip_route()businessready.IOS_show_license_summary()businessready.IOS_show_mac_address_table()businessready.IOS_show_ntp_associations()businessready.IOS_show_wlan_all()businessready.IOS_show_wlan_client_stats()businessready.IOS_show_wlan_summary()businessready.IOS_show_wireless_profile_summary()businessready.IOS_show_wireless_profile_detailed()businessready.IOS_show_version()businessready.IOS_show_vlan()businessready.IOS_show_vrf()NXOSAllbusinessready.NXOS_all()businessready.NXOS_learn_all()businessready.NXOS_show_all()Learnbusinessready.NXOS_learn_all()businessready.NXOS_learn_acl()businessready.NXOS_learn_arp()businessready.NXOS_learn_bgp()businessready.NXOS_learn_hsrp()businessready.NXOS_learn_interface()businessready.NXOS_learn_ospf()businessready.NXOS_learn_platform()businessready.NXOS_learn_routing()businessready.NXOS_learn_vlan()businessready.NXOS_learn_vrf()Showbusinessready.NXOS_show_access_lists()businessready.NXOS_show_bgp_process_vrf_all()businessready.NXOS_show_bgp_sessions()businessready.NXOS_show_cdp_neighbors()businessready.NXOS_show_cdp_neighbors_detail()businessready.NXOS_show_environment()businessready.NXOS_show_interface()businessready.NXOS_show_interface_status()businessready.NXOS_show_interface_transceiver()businessready.NXOS_show_inventory()businessready.NXOS_show_ip_arp_vrf()businessready.NXOS_show_ip_interface_brief()businessready.NXOS_show_ip_ospf()businessready.NXOS_show_ip_ospf_interface()businessready.NXOS_show_ip_ospf_neighbors_deta)businessready.NXOS_show_ip_ospf_neighbors_detail_vrf()businessready.NXOS_show_ip_ospf_vrf()businessready.NXOS_show_ip_ospf_interface_vrf()businessready.NXOS_show_ip_route()businessready.NXOS_show_ip_route_vrf()businessready.NXOS_show_mac_address_table()businessready.NXOS_show_port_channel_summary()businessready.NXOS_show_version()businessready.NXOS_show_vlan()businessready.NXOS_show_vrf()businessready.NXOS_show_vrf_all_detail()businessready.NXOS_show_vrf_all_interface()businessready.NXOS_show_vrf_detail()DNACbusinessready.DNAC_sites()businessready.DNAC_sites()businessready.DNAC_site_health()businessready.DNAC_site_member()businessready.DNAC_vlan()businessready.DNAC_vlan_topology()businessready.DNAC_physical_topology()businessready.DNAC_routing_topology()businessready.DNAC_network_health()businessready.DNAC_device()businessready.DNAC_swim()businessready.DNAC_projects()businessready.DNAC_templates()businessready.DNAC_rf_profiles()businessready.DNAC_assurance_tests()businessready.DNAC_flow_analysis()Merakibusinessready.Meraki_all()businessready.Meraki_organizations()businessready.Meraki_organization_devices()businessready.Meraki_organization_licenses()businessready.Meraki_organization_adaptive_policies()businessready.Meraki_organization_admins()businessready.Meraki_organization_alert_profiles()businessready.Meraki_organization_branding_policy()businessready.Meraki_organization_clients()