{"id":34848000,"url":"https://github.com/allenrobel/nd-api-to-gui","last_synced_at":"2026-05-23T06:32:15.353Z","repository":{"id":321900814,"uuid":"1087575500","full_name":"allenrobel/nd-api-to-gui","owner":"allenrobel","description":"Translate Nexus Dashboard REST API keys to their corresponding fields in the Nexus Dashboard GUI.","archived":false,"fork":false,"pushed_at":"2025-11-07T19:53:31.000Z","size":92,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-03T13:29:25.841Z","etag":null,"topics":["nexus","nexusdashboard","python","python3","rest-api","restapi"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/allenrobel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-01T07:31:07.000Z","updated_at":"2025-11-07T19:53:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/allenrobel/nd-api-to-gui","commit_stats":null,"previous_names":["allenrobel/nd-api-to-gui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/allenrobel/nd-api-to-gui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenrobel%2Fnd-api-to-gui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenrobel%2Fnd-api-to-gui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenrobel%2Fnd-api-to-gui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenrobel%2Fnd-api-to-gui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/allenrobel","download_url":"https://codeload.github.com/allenrobel/nd-api-to-gui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allenrobel%2Fnd-api-to-gui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33385125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nexus","nexusdashboard","python","python3","rest-api","restapi"],"created_at":"2025-12-25T18:55:28.863Z","updated_at":"2026-05-23T06:32:15.347Z","avatar_url":"https://github.com/allenrobel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nd_api_to_gui\n\nThe intent of this repository is to provide those developing Nexus Dashboard (ND)\napplications with an easy way to correlate ND REST API parameters with their\ncorresponding fields in the ND graphical user interface.\n\nWe accomplish this with two scripts and supporting libraries, as described below.\n\n## template_names.py\n\nReturn all templates supported by ND.  This takes about 10 seconds to run\nso be patient.\n\n```bash\ncd $HOME/repos/nd-api-to-gui\nsource .venv/bin/activate\nsource env/env\n./template_names.py\n```\n\n### Example partial output for template_names.py\n\n```text\n- AI_Fabric_QOS_100G\n- AI_Fabric_QOS_25G\n- AI_Fabric_QOS_400G\n- AI_Fabric_QOS_800G\n- AI_Fabric_QOS_Classification_Custom\n- AI_Fabric_QOS_Queuing_Custom\n- Default_Network_Extension_Universal\n\netc...\n```\n\nYou could redirect the output to a file so that you have the list locally\nfor offline reference.\n\n```bash\n./template_names.py \u003e templates.txt\n```\n\n## api_to_gui.py\n\nPassing one of the above template names into api_to_gui.py using the\n`--template-name` argument returns information about the parameters\nin that template that are most useful for our purposes.\n\nNote, to save your fingers `--template-name` can be shortened to e.g.\n`--template`, `--te`, `--t`, etc, and will still work.\n\n```bash\ncd $HOME/repos/nd-api-to-gui\nsource .venv/bin/activate\nsource env/env\n./api_to_gui.py --template-name Default_Network_Extension_Universal\n```\n\n### Example partial output for api_to_gui.py\n\nFor each API key, the output contains:\n\n- Description: The description that accompanies the field in the Nexus Dashboard GUI\n- GUI Section: The tab in the ND GUI that contains the field\n- GUI Field Name: The name of the field associated with the API key\n\n```text\nAPI Key: ENABLE_NETFLOW\n  Description: Netflow is supported only if it is enabled on fabric. For NX-OS only\n  GUI Section: Advanced\n  GUI Field Name: Enable Netflow\n\nAPI Key: MULTISITE_CONN\n  Description: L2 Extension Information\n  GUI Section: MULTISITE\n  GUI Field Name: L2 Extension Information\n\nAPI Key: SVI_NETFLOW_MONITOR\n  Description: Applicable only if 'Layer 2 Only' is not enabled. Provide monitor name defined in fabric setting for Layer 3 Record. For NX-OS only\n  GUI Section: Advanced\n  GUI Field Name: Interface Vlan Netflow Monitor\n\nAPI Key: VLAN_NETFLOW_MONITOR\n  Description: Provide monitor name defined in fabric setting for Layer 3 Record. For NX-OS only\n  GUI Section: Advanced\n  GUI Field Name: Vlan Netflow Monitor\n\netc...\n```\n\nYou could also search for a specific key with the following.\n\n```bash\n./api_to_gui.py --t Easy_Fabric | grep -A4 preInterfaceConfigTor$\nAPI Key: preInterfaceConfigTor\n  Description: Additional CLIs, added before interface configurations, for all ToRs as captured from Show Running Configuration\n  GUI Section: Freeform\n  GUI Field Name: ToR Pre-Interfaces Freeform Config\n```\n\nOr display all fields located in a given GUI Section\n\n```bash\n./api_to_gui.py --t Easy_Fabric | grep \"GUI Section: Freeform\" -B3 -A1\n```\n\n## Installation and Initial Setup\n\n### Clone the repository\n\nI prefer keeping all my repositories in one place, so will use $HOME/repos in the\nexamples below.  But you can clone it anywhere you want.\n\n```bash\ncd $HOME/repos\ngit clone https://github.com/allenrobel/nd-api-to-gui.git\n```\n\n### Create a Virtual Environment and Install Dependencies\n\n```bash\ncd $HOME/repos/nd-api-to-gui\npython3 -m .venv --prompt nd-api-to-gui\nsource .venv/bin/activate\npip install uv\nuv sync\n```\n\n### Configure Environment Variables\n\nUse whatever editor you're comfortable with to modify the following file.\n\n```bash\n$HOME/repos/nd-api-to-gui/env/env\n```\n\n- Set ND_IP4 to the address of your ND controller\n- Set ND_DOMAIN to the login domain (by default, this is `local`)\n- Set ND_USERNAME to the login username (by default, this is `admin`)\n- For ND_PASSWORD, I usually set this manually in my terminal session so it's not laying around on disk.\n  But you can set it in this file if you're comfortable with that.\n- Finally, set ND_API_TO_GUI to point to this repository (in my case, that's\n  `$HOME/repos/nd-api-to-gui`)\n- Save the file\n\nThe file contains the following initially.\n\n```bash\ncd $HOME/repos/nd-api-to-gui\ncat env/env\n# Environment variables for ND-API-to-GUI project\n# Modify the following ND_* variables as needed for your Nexus Dashboard environment\nexport ND_IP4=192.168.1.1\nexport ND_DOMAIN=local\nexport ND_USERNAME=admin\n#\n# Define ND_PASSWORD in a terminal for better security or (not recommended) define here if you're in a secure environment\n# export ND_PASSWORD=MyPassword\n#\n# Path to the nd-api-to-gui repository on your local machine\nexport ND_API_TO_GUI=$HOME/repos/nd-to-api-gui\n#\n# No need to modify below this line\n#\n# Append ND_API_TO_GUI to PYTHONPATH only if not already present\n#\nif [[ \"$PYTHONPATH\" != *\":$ND_API_TO_GUI\"* ]]; then\n  export PYTHONPATH=.:$PYTHONPATH:$ND_API_TO_GUI\nfi\n```\n\nFinally, `source` the file to load these environment variables (which the\nscripts read so they have the information they need to connect to ND).\n\n```bash\ncd $HOME/repos/nd-api-to-gui\nsource .venv/bin/activate\nsource env/env\n```\n\nDone!  Now you can run the scripts, per the examples above.\n\nIf you didn't set ND_PASSWORD in the env/env file, don't forget to\nset it in your terminal session before running the scripts.\n\n```bash\nexport ND_PASSWORD=MyPassword\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallenrobel%2Fnd-api-to-gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fallenrobel%2Fnd-api-to-gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallenrobel%2Fnd-api-to-gui/lists"}