Adding Meraki API doc
This commit is contained in:
72
tech_docs/networking/meraki_api.md
Normal file
72
tech_docs/networking/meraki_api.md
Normal file
@@ -0,0 +1,72 @@
|
||||
Here's a comprehensive list of all the topics Todd Simmons covers across the two transcripts you provided, categorized for clarity:
|
||||
|
||||
**I. Cisco Meraki Specifics:**
|
||||
|
||||
* **Meraki Dashboard Access & Configuration:**
|
||||
* Accessing the Meraki dashboard.
|
||||
* Enabling API access for an organization.
|
||||
* Creating an API key.
|
||||
* Understanding organization settings and IDs.
|
||||
* Identifying network names and IDs within an organization.
|
||||
* Viewing existing networks in the dashboard.
|
||||
* Creating new networks via API (including required parameters like `orgId`, `name`, `productTypes`, `timeZone`, and optional `tags`, `notes`).
|
||||
* Meraki product types (Appliance, Switch, Camera) and "combined networks."
|
||||
* Meraki device data structure (e.g., `Lan IP` vs. `Wan ip1`/`Wan ip2`, `notes` section availability).
|
||||
* Limitations of Meraki dashboard export (CSV, single tab, limited common data).
|
||||
|
||||
**II. Python Programming & Libraries:**
|
||||
|
||||
* **Core Python Concepts:**
|
||||
* Variables and variable assignment.
|
||||
* For loops for iterating through data.
|
||||
* List manipulation (appending, unique values, list comprehension, popping, inserting).
|
||||
* Dictionaries (printing using `p print`).
|
||||
* String manipulation (joining list items with a delimiter).
|
||||
* Conditional statements (`if/else`).
|
||||
* Function calls (`.get()`, `.dashboard API()`, `.organizations.getOrganizationNetworks()`, `.createOrganizationNetwork()`, `.sheets.sort()`, `.join()`).
|
||||
* Error handling/defaults (`n/a` for missing keys).
|
||||
* **Python Libraries/Packages:**
|
||||
* `os` (for environment variables).
|
||||
* `pprint` (for pretty printing dictionaries/JSON).
|
||||
* `meraki` (the official Cisco Meraki Python package).
|
||||
* `requests` (mentioned as an alternative to `meraki` package).
|
||||
* `decouple` (for secure configuration management, specifically `.env` files).
|
||||
* `ic` (Ice Cream for debugging/printing, preferred over `print`).
|
||||
* `pandas` (for data manipulation and Excel integration).
|
||||
* `openpyxl` (engine used by pandas for Excel writing).
|
||||
* **API Interaction & Best Practices:**
|
||||
* Authenticating with API keys.
|
||||
* Using environment variables for secure API key storage (`OS.environ.get()`).
|
||||
* Suppressing API logging (`suppressed_logging=True`).
|
||||
* Handling API rate limiting.
|
||||
* Paginating API results (`total_pages='all'`).
|
||||
* Converting API responses (JSON) to Python data structures.
|
||||
|
||||
**III. Automation & Workflow:**
|
||||
|
||||
* **Networking Automation:** The overarching theme of using Python to automate Meraki networking tasks.
|
||||
* **Exporting Device Data:**
|
||||
* Getting all devices within an organization via API.
|
||||
* Writing API response data to JSON files.
|
||||
* Processing raw JSON data to prepare for Excel export.
|
||||
* **Excel Integration:**
|
||||
* Creating Excel workbooks (`.xlsx` files).
|
||||
* Creating multiple worksheets (tabs) within an Excel workbook based on network names.
|
||||
* Dynamically generating Excel headers from device data keys.
|
||||
* Writing data to specific sheets.
|
||||
* Appending new data rows to existing sheets (`start_row=writer.sheets[sheet_name].max_row`).
|
||||
* Overwriting vs. appending to an Excel file (`mode='w'` vs. `mode='a'`).
|
||||
* Handling the existence of sheets (`if_sheet_exists='overlay'`).
|
||||
* **Debugging & Troubleshooting:**
|
||||
* Importance of API logs for debugging.
|
||||
* Troubleshooting "invalid API key" issues (VS Code variable loading).
|
||||
|
||||
**IV. General Advice & Personal Touches:**
|
||||
|
||||
* **Community Engagement:** Special video request acknowledgment (Chris Krueger).
|
||||
* **Encouragement:** "Hey nerds," "appreciate the likes, love the subscribes," "Happy New Year."
|
||||
* **Personal Context:** Mention of moving to Memphis, wife's PA school.
|
||||
* **GitHub:** Mention of linking code on GitHub.
|
||||
* **Video Suggestions:** Encouraging viewers to suggest future video topics.
|
||||
|
||||
This detailed breakdown highlights the breadth and depth of Todd Simmons's expertise in network automation with Meraki and Python.
|
||||
Reference in New Issue
Block a user